1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source4/libnet/composite.h
Rafal Szczesniak 16b5eac38d r15625: Partial commit of my current work. It makes libnet api functions
a bit more smart and more aware of what libnet_context can offer.
The context is a help when some of the arguments are not passed
(programmer counts on using sensible defaults) and stores some of
results so that similar subsequent calls don't need to reopen some
of policy handles, pipes, etc. again. It also helps to hide some
of details the library user don't really want to know much about.

Also, change domain open function to be part of public api, as
it is going to be used in ejsnet interface.

Note, this is work in progress. Comments are welcome.

rafal
(This used to be commit 1ed80c594c)
2007-10-10 14:07:24 -05:00

114 lines
3.1 KiB
C

/*
Unix SMB/CIFS implementation.
Copyright (C) Rafal Szczesniak 2005
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
composite function io definitions
*/
#include "librpc/gen_ndr/samr.h"
/*
* Monitor structure and message types definitions. Composite function monitoring
* allows client application to be notified on function progress. This enables
* eg. gui client to display progress bars, status messages, etc.
*/
#define rpc_create_user (0x00000001) /* userman.h */
#define rpc_open_user (0x00000002) /* userinfo.h */
#define rpc_query_user (0x00000003) /* userinfo.h */
#define rpc_close_user (0x00000004) /* userinfo.h */
#define rpc_lookup_name (0x00000005) /* userman.h */
#define rpc_delete_user (0x00000006) /* userman.h */
#define rpc_set_user (0x00000007) /* userman.h */
struct monitor_msg {
uint32_t type;
void *data;
size_t data_size;
};
struct libnet_rpc_userinfo {
struct {
struct policy_handle domain_handle;
const char *sid;
uint16_t level;
} in;
struct {
union samr_UserInfo info;
} out;
};
struct libnet_rpc_useradd {
struct {
struct policy_handle domain_handle;
const char *username;
} in;
struct {
struct policy_handle user_handle;
} out;
};
struct libnet_rpc_userdel {
struct {
struct policy_handle domain_handle;
const char *username;
} in;
struct {
struct policy_handle user_handle;
} out;
};
#define USERMOD_FIELD_ACCOUNT_NAME ( 0x00000001 )
#define USERMOD_FIELD_FULL_NAME ( 0x00000002 )
#define USERMOD_FIELD_DESCRIPTION ( 0x00000010 )
#define USERMOD_FIELD_COMMENT ( 0x00000020 )
#define USERMOD_FIELD_LOGON_SCRIPT ( 0x00000100 )
#define USERMOD_FIELD_PROFILE_PATH ( 0x00000200 )
#define USERMOD_FIELD_ACCT_EXPIRY ( 0x00004000 )
#define USERMOD_FIELD_ALLOW_PASS_CHG ( 0x00008000 )
#define USERMOD_FIELD_FORCE_PASS_CHG ( 0x00010000 )
#define USERMOD_FIELD_ACCT_FLAGS ( 0x00100000 )
struct libnet_rpc_usermod {
struct {
struct policy_handle domain_handle;
const char *username;
struct usermod_change {
uint32_t fields; /* bitmask field */
const char *account_name;
const char *full_name;
const char *description;
const char *comment;
const char *logon_script;
const char *profile_path;
struct timeval *acct_expiry;
struct timeval *allow_password_change;
struct timeval *force_password_change;
uint32_t acct_flags;
} change;
} in;
};