bool is_guest,
struct auth_serversupplied_info **presult);
struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
- auth_serversupplied_info *src);
+ const auth_serversupplied_info *src);
bool init_guest_info(void);
bool server_info_set_session_key(struct auth_serversupplied_info *info,
DATA_BLOB session_key);
int dbwrap_store_int32(struct db_context *db, const char *keystr, int32_t v);
bool dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
uint32_t *val);
-bool dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v);
+int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v);
uint32_t dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
uint32_t *oldval, uint32_t change_val);
int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
NTSTATUS map_nt_error_from_unix(int unix_error);
int map_errno_from_nt_status(NTSTATUS status);
-/* The following definitions come from lib/events.c */
-
-struct timed_event *event_add_timed(struct event_context *event_ctx,
- TALLOC_CTX *mem_ctx,
- struct timeval when,
- const char *event_name,
- void (*handler)(struct event_context *event_ctx,
- struct timed_event *te,
- const struct timeval *now,
- void *private_data),
- void *private_data);
-struct fd_event *event_add_fd(struct event_context *event_ctx,
- TALLOC_CTX *mem_ctx,
- int fd, uint16_t flags,
- void (*handler)(struct event_context *event_ctx,
- struct fd_event *event,
- uint16 flags,
- void *private_data),
- void *private_data);
-void event_fd_set_writeable(struct fd_event *fde);
-void event_fd_set_not_writeable(struct fd_event *fde);
-void event_fd_set_readable(struct fd_event *fde);
-void event_fd_set_not_readable(struct fd_event *fde);
-bool event_add_to_select_args(struct event_context *event_ctx,
- const struct timeval *now,
- fd_set *read_fds, fd_set *write_fds,
- struct timeval *timeout, int *maxfd);
-bool events_pending(struct event_context *event_ctx);
-bool run_events(struct event_context *event_ctx,
- int selrtn, fd_set *read_fds, fd_set *write_fds);
-struct timeval *get_timed_events_timeout(struct event_context *event_ctx,
- struct timeval *to_ret);
-int event_loop_once(struct event_context *ev);
-struct event_context *event_context_init(TALLOC_CTX *mem_ctx);
-int set_event_dispatch_time(struct event_context *event_ctx,
- const char *event_name, struct timeval when);
-int cancel_named_event(struct event_context *event_ctx,
- const char *event_name);
-void dump_event_list(struct event_context *event_ctx);
-
/* The following definitions come from lib/fault.c */
void fault_setup(void (*fn)(void *));
void dump_core_setup(const char *progname);
/* The following definitions come from lib/popt_common.c */
+void popt_common_set_auth_info(struct user_auth_info *auth_info);
/* The following definitions come from lib/privileges.c */
/* The following definitions come from lib/secdesc.c */
bool sec_desc_equal(SEC_DESC *s1, SEC_DESC *s2);
+uint32_t get_sec_info(const SEC_DESC *sd);
SEC_DESC_BUF *sec_desc_merge(TALLOC_CTX *ctx, SEC_DESC_BUF *new_sdb, SEC_DESC_BUF *old_sdb);
SEC_DESC *make_sec_desc(TALLOC_CTX *ctx,
enum security_descriptor_revision revision,
const char *get_remote_machine_name(void);
void sub_set_smb_name(const char *name);
void set_current_user_info(const char *smb_name, const char *unix_name,
- const char *full_name, const char *domain);
+ const char *domain);
const char *get_current_username(void);
void standard_sub_basic(const char *smb_name, const char *domain_name,
char *str, size_t len);
int sys_usleep(long usecs);
ssize_t sys_read(int fd, void *buf, size_t count);
ssize_t sys_write(int fd, const void *buf, size_t count);
+ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt);
ssize_t sys_pread(int fd, void *buf, size_t count, SMB_OFF_T off);
ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off);
ssize_t sys_send(int s, const void *msg, size_t len, int flags);
const char *my_netbios_names(int i);
bool set_netbios_aliases(const char **str_array);
bool init_names(void);
-const char *get_cmdline_auth_info_username(void);
-void set_cmdline_auth_info_username(const char *username);
-const char *get_cmdline_auth_info_password(void);
-void set_cmdline_auth_info_password(const char *password);
-bool set_cmdline_auth_info_signing_state(const char *arg);
-int get_cmdline_auth_info_signing_state(void);
-void set_cmdline_auth_info_use_kerberos(bool b);
-bool get_cmdline_auth_info_use_kerberos(void);
-void set_cmdline_auth_info_use_krb5_ticket(void);
-void set_cmdline_auth_info_smb_encrypt(void);
-void set_cmdline_auth_info_use_machine_account(void);
-bool get_cmdline_auth_info_got_pass(void);
-bool get_cmdline_auth_info_smb_encrypt(void);
-bool get_cmdline_auth_info_use_machine_account(void);
-bool get_cmdline_auth_info_copy(struct user_auth_info *info);
-bool set_cmdline_auth_info_machine_account_creds(void);
+struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx);
+const char *get_cmdline_auth_info_username(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_username(struct user_auth_info *auth_info,
+ const char *username);
+void set_cmdline_auth_info_password(struct user_auth_info *auth_info,
+ const char *password);
+const char *get_cmdline_auth_info_password(struct user_auth_info *auth_info);
+bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info,
+ const char *arg);
+int get_cmdline_auth_info_signing_state(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info,
+ bool b);
+bool get_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_got_pass(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info);
+struct user_auth_info *get_cmdline_auth_info_copy(TALLOC_CTX *mem_ctx,
+ struct user_auth_info *info);
+bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info);
bool add_gid_to_array_unique(TALLOC_CTX *mem_ctx, gid_t gid,
gid_t **gids, size_t *num_gids);
-const char *get_numlist(const char *p, uint32 **num, int *count);
bool file_exist_stat(const char *fname,SMB_STRUCT_STAT *sbuf);
bool socket_exist(const char *fname);
bool directory_exist_stat(char *dname,SMB_STRUCT_STAT *st);
+uint64_t get_file_size_stat(const SMB_STRUCT_STAT *sbuf);
SMB_OFF_T get_file_size(char *file_name);
char *attrib_string(uint16 mode);
void show_msg(char *buf);
void smb_msleep(unsigned int t);
void become_daemon(bool Fork, bool no_process_group);
bool reinit_after_fork(struct messaging_context *msg_ctx,
+ struct event_context *ev_ctx,
bool parent_longlived);
bool yesno(const char *p);
void *malloc_(size_t size);
char *modules_path(const char *name);
char *data_path(const char *name);
char *state_path(const char *name);
+char *cache_path(const char *name);
const char *shlib_ext(void);
-char *parent_dirname(const char *path);
-bool parent_dirname_talloc(TALLOC_CTX *mem_ctx, const char *dir,
- char **parent, const char **name);
+bool parent_dirname(TALLOC_CTX *mem_ctx, const char *dir, char **parent,
+ const char **name);
bool ms_has_wild(const char *s);
bool ms_has_wild_w(const smb_ucs2_t *s);
bool mask_match(const char *string, const char *pattern, bool is_case_sensitive);
size_t *size_ret);
NTSTATUS read_data(int fd, char *buffer, size_t N);
ssize_t write_data(int fd, const char *buffer, size_t N);
+ssize_t write_data_iov(int fd, const struct iovec *orig_iov, int iovcnt);
bool send_keepalive(int client);
NTSTATUS read_smb_length_return_keepalive(int fd, char *inbuf,
unsigned int timeout,
int dlevel,
const struct sockaddr_storage *psock,
bool rebind);
-int open_socket_out(int type,
- const struct sockaddr_storage *pss,
- uint16_t port,
- int timeout);
+NTSTATUS open_socket_out(const struct sockaddr_storage *pss, uint16_t port,
+ int timeout, int *pfd);
+struct async_req *open_socket_out_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ const struct sockaddr_storage *pss,
+ uint16_t port,
+ int timeout);
+NTSTATUS open_socket_out_recv(struct async_req *req, int *pfd);
+struct async_req *open_socket_out_defer_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct timeval wait_time,
+ const struct sockaddr_storage *pss,
+ uint16_t port,
+ int timeout);
+NTSTATUS open_socket_out_defer_recv(struct async_req *req, int *pfd);
bool open_any_socket_out(struct sockaddr_storage *addrs, int num_addrs,
int timeout, int *fd_index, int *fd);
int open_udp_socket(const char *host, int port);
int num_rids, uint32 *rids,
const char **domain_name,
const char ***names, enum lsa_SidType **types);
-bool winbind_allocate_uid(uid_t *uid);
-bool winbind_allocate_gid(gid_t *gid);
/* The following definitions come from lib/wins_srv.c */
_PUBLIC_ void ndr_print_sockaddr_storage(struct ndr_print *ndr, const char *name, const struct sockaddr_storage *ss);
const char *ndr_errstr(enum ndr_err_code err);
-/* The following definitions come from librpc/ndr/ndr_sec_helper.c */
-
-size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags);
-size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags);
-size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags);
-size_t ndr_size_security_ace(const struct security_ace *ace, int flags);
-size_t ndr_size_security_acl(const struct security_acl *acl, int flags);
-size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int flags);
-void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
-void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
-void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
-void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
-
/* The following definitions come from librpc/ndr/sid.c */
-enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r);
-enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r);
char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid2(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
/* The following definitions come from librpc/rpc/binding.c */
const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor);
_PUBLIC_ char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b);
_PUBLIC_ NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_binding **b_out);
-_PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax);
+_PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(const struct epm_floor *epm_floor,
+ struct ndr_syntax_id *syntax);
const char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor);
enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot);
-_PUBLIC_ enum dcerpc_transport_t dcerpc_transport_by_tower(struct epm_tower *tower);
+_PUBLIC_ enum dcerpc_transport_t dcerpc_transport_by_tower(const struct epm_tower *tower);
+_PUBLIC_ const char *derpc_transport_string_by_transport(enum dcerpc_transport_t t);
_PUBLIC_ NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
struct epm_tower *tower,
struct dcerpc_binding **b_out);
-_PUBLIC_ NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding, struct epm_tower *tower);
+_PUBLIC_ NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx,
+ const struct dcerpc_binding *binding,
+ struct epm_tower *tower);
/* The following definitions come from librpc/rpc/dcerpc.c */
const char *pass, int passlen,
const char *ntpass, int ntpasslen,
const char *workgroup);
+struct async_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli);
+NTSTATUS cli_session_setup_guest_recv(struct async_req *req);
bool cli_ulogoff(struct cli_state *cli);
-bool cli_send_tconX(struct cli_state *cli,
- const char *share, const char *dev, const char *pass, int passlen);
+struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *share, const char *dev,
+ const char *pass, int passlen);
+NTSTATUS cli_tcon_andx_recv(struct async_req *req);
+NTSTATUS cli_tcon_andx(struct cli_state *cli, const char *share,
+ const char *dev, const char *pass, int passlen);
bool cli_tdis(struct cli_state *cli);
-void cli_negprot_send(struct cli_state *cli);
-bool cli_negprot(struct cli_state *cli);
+void cli_negprot_sendsync(struct cli_state *cli);
+NTSTATUS cli_negprot(struct cli_state *cli);
+struct async_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli);
+NTSTATUS cli_negprot_recv(struct async_req *req);
bool cli_session_request(struct cli_state *cli,
struct nmb_name *calling, struct nmb_name *called);
NTSTATUS cli_connect(struct cli_state *cli,
const char *server,
const char *share,
bool show_hdr,
- bool force_encrypt);
+ bool force_encrypt,
+ int max_protocol,
+ int port,
+ int name_type);
void cli_cm_shutdown(void);
void cli_cm_display(void);
-void cli_cm_set_credentials(void);
+void cli_cm_set_credentials(struct user_auth_info *auth_info);
void cli_cm_set_port(int port_number);
void cli_cm_set_dest_name_type(int type);
void cli_cm_set_signing_state(int state);
int cli_set_message(char *buf,int num_words,int num_bytes,bool zero);
unsigned int cli_set_timeout(struct cli_state *cli, unsigned int timeout);
-int cli_set_port(struct cli_state *cli, int port);
+void cli_set_port(struct cli_state *cli, int port);
bool cli_receive_smb(struct cli_state *cli);
ssize_t cli_receive_smb_data(struct cli_state *cli, char *buffer, size_t len);
bool cli_receive_smb_readX_header(struct cli_state *cli);
DATA_BLOB data);
NTSTATUS cli_echo_recv(struct async_req *req);
NTSTATUS cli_echo(struct cli_state *cli, uint16_t num_echos, DATA_BLOB data);
+bool cli_ucs2(struct cli_state *cli);
+bool is_andx_req(uint8_t cmd);
/* The following definitions come from libsmb/clierror.c */
uint32 FileAttributes, uint32 ShareAccess,
uint32 CreateDisposition, uint32 CreateOptions,
uint8 SecuityFlags);
+struct async_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *fname,
+ uint32_t CreatFlags,
+ uint32_t DesiredAccess,
+ uint32_t FileAttributes,
+ uint32_t ShareAccess,
+ uint32_t CreateDisposition,
+ uint32_t CreateOptions,
+ uint8_t SecurityFlags);
+NTSTATUS cli_ntcreate_recv(struct async_req *req, uint16_t *pfnum);
+NTSTATUS cli_ntcreate(struct cli_state *cli,
+ const char *fname,
+ uint32_t CreatFlags,
+ uint32_t DesiredAccess,
+ uint32_t FileAttributes,
+ uint32_t ShareAccess,
+ uint32_t CreateDisposition,
+ uint32_t CreateOptions,
+ uint8_t SecurityFlags,
+ uint16_t *pfid);
int cli_nt_create(struct cli_state *cli, const char *fname, uint32 DesiredAccess);
-uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str);
+uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str,
+ size_t str_len, size_t *pconverted_size);
struct async_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
struct cli_state *cli,
const char *fname, int flags, int share_mode);
/* The following definitions come from libsmb/clirap.c */
-bool cli_api_pipe(struct cli_state *cli, const char *pipe_name,
- uint16 *setup, uint32 setup_count, uint32 max_setup_count,
- char *params, uint32 param_count, uint32 max_param_count,
- char *data, uint32 data_count, uint32 max_data_count,
- char **rparam, uint32 *rparam_count,
- char **rdata, uint32 *rdata_count);
bool cli_api(struct cli_state *cli,
char *param, int prcnt, int mprcnt,
char *data, int drcnt, int mdrcnt,
const char *buf, off_t offset, size_t size);
ssize_t cli_smbwrite(struct cli_state *cli,
int fnum, char *buf, off_t offset, size_t size1);
+struct async_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, uint16_t fnum,
+ uint16_t mode, const uint8_t *buf,
+ off_t offset, size_t size);
+NTSTATUS cli_write_andx_recv(struct async_req *req, size_t *pwritten);
+
+struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, uint16_t mode,
+ off_t start_offset, size_t window_size,
+ size_t (*source)(uint8_t *buf, size_t n,
+ void *priv),
+ void *priv);
+NTSTATUS cli_push_recv(struct async_req *req);
+NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
+ off_t start_offset, size_t window_size,
+ size_t (*source)(uint8_t *buf, size_t n, void *priv),
+ void *priv);
/* The following definitions come from libsmb/clisecdesc.c */
int flags);
size_t clistr_pull_fn(const char *function,
unsigned int line,
- struct cli_state *cli,
+ const char *inbuf,
char *dest,
const void *src,
int dest_len,
size_t clistr_pull_talloc_fn(const char *function,
unsigned int line,
TALLOC_CTX *ctx,
- struct cli_state *cli,
+ const char *inbuf,
char **pp_dest,
const void *src,
int src_len,
/* The following definitions come from libsmb/namecache.c */
bool namecache_enable(void);
-bool namecache_shutdown(void);
bool namecache_store(const char *name,
int name_type,
int num_names,
/* The following definitions come from libsmb/namequery.c */
bool saf_store( const char *domain, const char *servername );
+bool saf_join_store( const char *domain, const char *servername );
bool saf_delete( const char *domain );
char *saf_fetch( const char *domain );
NODE_STATUS_STRUCT *node_status_query(int fd,
bool is_deferred_open_entry(const struct share_mode_entry *e);
bool is_unused_share_mode_entry(const struct share_mode_entry *e);
void set_share_mode(struct share_mode_lock *lck, files_struct *fsp,
- uid_t uid, uint16 mid, uint16 op_type, bool initial_delete_on_close_allowed);
+ uid_t uid, uint16 mid, uint16 op_type);
void add_deferred_open(struct share_mode_lock *lck, uint16 mid,
struct timeval request_time,
struct file_id id);
bool downgrade_share_oplock(struct share_mode_lock *lck, files_struct *fsp);
NTSTATUS can_set_delete_on_close(files_struct *fsp, bool delete_on_close,
uint32 dosmode);
-bool can_set_initial_delete_on_close(const struct share_mode_lock *lck);
void set_delete_on_close_token(struct share_mode_lock *lck, UNIX_USER_TOKEN *tok);
void set_delete_on_close_lck(struct share_mode_lock *lck, bool delete_on_close, UNIX_USER_TOKEN *tok);
bool set_delete_on_close(files_struct *fsp, bool delete_on_close, UNIX_USER_TOKEN *tok);
-bool set_allow_initial_delete_on_close(struct share_mode_lock *lck, files_struct *fsp, bool delete_on_close);
bool set_sticky_write_time(struct file_id fileid, struct timespec write_time);
bool set_write_time(struct file_id fileid, struct timespec write_time);
int share_mode_forall(void (*fn)(const struct share_mode_entry *, const char *,
char *lp_deleteprinter_cmd(void);
char *lp_os2_driver_map(void);
char *lp_lockdir(void);
+char *lp_statedir(void);
+char *lp_cachedir(void);
char *lp_piddir(void);
char *lp_mangling_method(void);
int lp_mangle_prefix(void);
char *lp_remote_browse_sync(void);
const char **lp_wins_server_list(void);
const char **lp_interfaces(void);
-char *lp_socket_address(void);
+const char *lp_socket_address(void);
char *lp_nis_home_map_name(void);
const char **lp_netbios_aliases(void);
const char *lp_passdb_backend(void);
bool lp_hostname_lookups(void);
bool lp_change_notify(const struct share_params *p );
bool lp_kernel_change_notify(const struct share_params *p );
-bool lp_use_kerberos_keytab(void);
+char * lp_dedicated_keytab_file(void);
+int lp_kerberos_method(void);
bool lp_defer_sharing_violations(void);
bool lp_enable_privileges(void);
bool lp_enable_asu_support(void);
bool lp_hideunreadable(int );
bool lp_hideunwriteable_files(int );
bool lp_browseable(int );
+bool lp_access_based_share_enum(int );
bool lp_readonly(int );
bool lp_no_set_dir(int );
bool lp_guest_ok(int );
const char *lp_ldap_user_suffix(void);
const char *lp_ldap_group_suffix(void);
const char *lp_ldap_idmap_suffix(void);
-void *lp_local_ptr(int snum, void *ptr);
+void *lp_local_ptr_by_snum(int snum, void *ptr);
bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue);
void init_locals(void);
bool lp_is_default(int snum, struct parm_struct *parm);
const char *new_passwd,
char **pp_err_str,
char **pp_msg_str);
-bool init_sam_from_buffer_v3(struct samu *sampass, uint8 *buf, uint32 buflen);
-uint32 init_buffer_from_sam_v3 (uint8 **buf, struct samu *sampass, bool size_only);
+bool init_samu_from_buffer(struct samu *sampass, uint32_t level,
+ uint8 *buf, uint32 buflen);
+uint32 init_buffer_from_samu (uint8 **buf, struct samu *sampass, bool size_only);
bool pdb_copy_sam_account(struct samu *dst, struct samu *src );
bool pdb_update_bad_password_count(struct samu *sampass, bool *updated);
bool pdb_update_autolock_flag(struct samu *sampass, bool *updated);
/* The following definitions come from printing/notify.c */
int print_queue_snum(const char *qname);
-bool print_notify_messages_pending(void);
void print_notify_send_messages(struct messaging_context *msg_ctx,
unsigned int timeout);
void notify_printer_status_byname(const char *sharename, uint32 status);
void notify_printer_port(int snum, char *port_name);
void notify_printer_location(int snum, char *location);
void notify_printer_byname( const char *printername, uint32 change, const char *value );
-bool print_notify_pid_list(const char *printername, TALLOC_CTX *mem_ctx, size_t *p_num_pids, pid_t **pp_pid_list);
/* The following definitions come from printing/nt_printing.c */
NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
const char *fname,
- uint16_t current_vuid, files_struct *fsp);
+ uint16_t current_vuid, files_struct *fsp,
+ SMB_STRUCT_STAT *psbuf);
void print_fsp_end(files_struct *fsp, enum file_close_type close_type);
/* The following definitions come from printing/printing.c */
/* The following definitions come from rpc_client/cli_pipe.c */
-NTSTATUS rpc_api_pipe_req(struct rpc_pipe_client *cli,
+struct async_req *rpc_api_pipe_req_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct rpc_pipe_client *cli,
+ uint8_t op_num,
+ prs_struct *req_data);
+NTSTATUS rpc_api_pipe_req_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ prs_struct *reply_pdu);
+NTSTATUS rpc_api_pipe_req(TALLOC_CTX *mem_ctx, struct rpc_pipe_client *cli,
uint8 op_num,
prs_struct *in_data,
prs_struct *out_data);
+struct async_req *rpc_pipe_bind_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct rpc_pipe_client *cli,
+ struct cli_pipe_auth_data *auth);
+NTSTATUS rpc_pipe_bind_recv(struct async_req *req);
NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli,
struct cli_pipe_auth_data *auth);
unsigned int rpccli_set_timeout(struct rpc_pipe_client *cli,
unsigned int timeout);
bool rpccli_get_pwd_hash(struct rpc_pipe_client *cli, uint8_t nt_hash[16]);
-struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p);
NTSTATUS rpccli_anon_bind_data(TALLOC_CTX *mem_ctx,
struct cli_pipe_auth_data **presult);
NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx,
NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
const struct ndr_syntax_id *abstract_syntax,
struct rpc_pipe_client **presult);
+NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *abstract_syntax,
+ NTSTATUS (*dispatch) (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r),
+ struct auth_serversupplied_info *serversupplied_info,
+ struct rpc_pipe_client **presult);
NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli,
const struct ndr_syntax_id *interface,
struct rpc_pipe_client **presult);
NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *cli,
DATA_BLOB *session_key);
+NTSTATUS rpc_pipe_open_local(TALLOC_CTX *mem_ctx,
+ struct rpc_cli_smbd_conn *conn,
+ const struct ndr_syntax_id *syntax,
+ struct rpc_pipe_client **presult);
+
+/* The following definitions come from rpc_client/rpc_transport_np.c */
+
+struct async_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const struct ndr_syntax_id *abstract_syntax);
+NTSTATUS rpc_transport_np_init_recv(struct async_req *req,
+ TALLOC_CTX *mem_ctx,
+ struct rpc_cli_transport **presult);
+NTSTATUS rpc_transport_np_init(TALLOC_CTX *mem_ctx, struct cli_state *cli,
+ const struct ndr_syntax_id *abstract_syntax,
+ struct rpc_cli_transport **presult);
+struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p);
+/* The following definitions come from rpc_client/rpc_transport_smbd.c */
+
+struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ void (*stdout_callback)(char *buf,
+ size_t len,
+ void *priv),
+ void *priv);
+NTSTATUS rpc_cli_smbd_conn_init_recv(struct async_req *req,
+ TALLOC_CTX *mem_ctx,
+ struct rpc_cli_smbd_conn **pconn);
+NTSTATUS rpc_cli_smbd_conn_init(TALLOC_CTX *mem_ctx,
+ struct rpc_cli_smbd_conn **pconn,
+ void (*stdout_callback)(char *buf,
+ size_t len,
+ void *priv),
+ void *priv);
+
+struct async_req *rpc_transport_smbd_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct rpc_cli_smbd_conn *conn,
+ const struct ndr_syntax_id *abstract_syntax);
+NTSTATUS rpc_transport_smbd_init_recv(struct async_req *req,
+ TALLOC_CTX *mem_ctx,
+ struct rpc_cli_transport **presult);
+NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx,
+ struct rpc_cli_smbd_conn *conn,
+ const struct ndr_syntax_id *abstract_syntax,
+ struct rpc_cli_transport **presult);
+
+/* The following definitions come from rpc_client/rpc_transport_sock.c */
+
+NTSTATUS rpc_transport_sock_init(TALLOC_CTX *mem_ctx, int fd,
+ struct rpc_cli_transport **presult);
/* The following definitions come from rpc_client/cli_reg.c */
const char *localmachine, uint32 printerlocal,
SPOOL_NOTIFY_OPTION *option);
-/* The following definitions come from rpc_client/cli_svcctl.c */
-
-WERROR rpccli_svcctl_enumerate_services( struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
- POLICY_HND *hSCM, uint32 type, uint32 state,
- uint32 *returned, ENUM_SERVICES_STATUS **service_array );
-
/* The following definitions come from rpc_client/init_lsa.c */
void init_lsa_String(struct lsa_String *name, const char *s);
void init_lsa_StringLarge(struct lsa_StringLarge *name, const char *s);
void init_lsa_AsciiString(struct lsa_AsciiString *name, const char *s);
void init_lsa_AsciiStringLarge(struct lsa_AsciiStringLarge *name, const char *s);
-void init_lsa_sec_qos(struct lsa_QosInfo *r,
- uint32_t len,
- uint16_t impersonation_level,
- uint8_t context_mode,
- uint8_t effective_only);
-void init_lsa_obj_attr(struct lsa_ObjectAttribute *r,
- uint32_t len,
- uint8_t *root_dir,
- const char *object_name,
- uint32_t attributes,
- struct security_descriptor *sec_desc,
- struct lsa_QosInfo *sec_qos);
-void init_lsa_translated_sid(struct lsa_TranslatedSid *r,
- enum lsa_SidType sid_type,
- uint32_t rid,
- uint32_t sid_index);
-void init_lsa_translated_name2(struct lsa_TranslatedName2 *r,
- enum lsa_SidType sid_type,
- const char *name,
- uint32_t sid_index,
- uint32_t unknown);
/* The following definitions come from rpc_client/init_netlogon.c */
/* The following definitions come from rpc_client/init_samr.c */
-void init_samr_DomInfo1(struct samr_DomInfo1 *r,
- uint16_t min_password_length,
- uint16_t password_history_length,
- uint32_t password_properties,
- int64_t max_password_age,
- int64_t min_password_age);
-void init_samr_DomGeneralInformation(struct samr_DomGeneralInformation *r,
- NTTIME force_logoff_time,
- const char *oem_information,
- const char *domain_name,
- const char *primary,
- uint64_t sequence_num,
- enum samr_DomainServerState domain_server_state,
- enum samr_Role role,
- uint32_t unknown3,
- uint32_t num_users,
- uint32_t num_groups,
- uint32_t num_aliases);
-void init_samr_DomInfo3(struct samr_DomInfo3 *r,
- NTTIME force_logoff_time);
-void init_samr_DomOEMInformation(struct samr_DomOEMInformation *r,
- const char *oem_information);
-void init_samr_DomInfo5(struct samr_DomInfo5 *r,
- const char *domain_name);
-void init_samr_DomInfo6(struct samr_DomInfo6 *r,
- const char *primary);
-void init_samr_DomInfo7(struct samr_DomInfo7 *r,
- enum samr_Role role);
-void init_samr_DomInfo8(struct samr_DomInfo8 *r,
- uint64_t sequence_num,
- NTTIME domain_create_time);
-void init_samr_DomInfo9(struct samr_DomInfo9 *r,
- enum samr_DomainServerState domain_server_state);
-void init_samr_DomInfo12(struct samr_DomInfo12 *r,
- uint64_t lockout_duration,
- uint64_t lockout_window,
- uint16_t lockout_threshold);
-void init_samr_group_info1(struct samr_GroupInfoAll *r,
- const char *name,
- uint32_t attributes,
- uint32_t num_members,
- const char *description);
-void init_samr_group_info2(struct lsa_String *r, const char *group_name);
-void init_samr_group_info3(struct samr_GroupInfoAttributes *r,
- uint32_t attributes);
-void init_samr_group_info4(struct lsa_String *r, const char *description);
-void init_samr_group_info5(struct samr_GroupInfoAll *r,
- const char *name,
- uint32_t attributes,
- uint32_t num_members,
- const char *description);
-void init_samr_alias_info1(struct samr_AliasInfoAll *r,
- const char *name,
- uint32_t num_members,
- const char *description);
-void init_samr_alias_info3(struct lsa_String *r,
- const char *description);
-void init_samr_user_info5(struct samr_UserInfo5 *r,
- const char *account_name,
- const char *full_name,
- uint32_t rid,
- uint32_t primary_gid,
- const char *home_directory,
- const char *home_drive,
- const char *logon_script,
- const char *profile_path,
- const char *description,
- const char *workstations,
- NTTIME last_logon,
- NTTIME last_logoff,
- struct samr_LogonHours logon_hours,
- uint16_t bad_password_count,
- uint16_t logon_count,
- NTTIME last_password_change,
- NTTIME acct_expiry,
- uint32_t acct_flags);
-void init_samr_user_info7(struct samr_UserInfo7 *r,
- const char *account_name);
-void init_samr_user_info9(struct samr_UserInfo9 *r,
- uint32_t primary_gid);
-void init_samr_user_info16(struct samr_UserInfo16 *r,
- uint32_t acct_flags);
-void init_samr_user_info18(struct samr_UserInfo18 *r,
- const uint8 lm_pwd[16],
- const uint8 nt_pwd[16]);
-void init_samr_user_info20(struct samr_UserInfo20 *r,
- struct lsa_BinaryString *parameters);
-void init_samr_user_info21(struct samr_UserInfo21 *r,
- NTTIME last_logon,
- NTTIME last_logoff,
- NTTIME last_password_change,
- NTTIME acct_expiry,
- NTTIME allow_password_change,
- NTTIME force_password_change,
- const char *account_name,
- const char *full_name,
- const char *home_directory,
- const char *home_drive,
- const char *logon_script,
- const char *profile_path,
- const char *description,
- const char *workstations,
- const char *comment,
- struct lsa_BinaryString *parameters,
- uint32_t rid,
- uint32_t primary_gid,
- uint32_t acct_flags,
- uint32_t fields_present,
- struct samr_LogonHours logon_hours,
- uint16_t bad_password_count,
- uint16_t logon_count,
- uint16_t country_code,
- uint16_t code_page,
- uint8_t nt_password_set,
- uint8_t lm_password_set,
- uint8_t password_expired);
-void init_samr_user_info23(struct samr_UserInfo23 *r,
- NTTIME last_logon,
- NTTIME last_logoff,
- NTTIME last_password_change,
- NTTIME acct_expiry,
- NTTIME allow_password_change,
- NTTIME force_password_change,
- const char *account_name,
- const char *full_name,
- const char *home_directory,
- const char *home_drive,
- const char *logon_script,
- const char *profile_path,
- const char *description,
- const char *workstations,
- const char *comment,
- struct lsa_BinaryString *parameters,
- uint32_t rid,
- uint32_t primary_gid,
- uint32_t acct_flags,
- uint32_t fields_present,
- struct samr_LogonHours logon_hours,
- uint16_t bad_password_count,
- uint16_t logon_count,
- uint16_t country_code,
- uint16_t code_page,
- uint8_t nt_password_set,
- uint8_t lm_password_set,
- uint8_t password_expired,
- struct samr_CryptPassword *pwd_buf);
-void init_samr_user_info24(struct samr_UserInfo24 *r,
- struct samr_CryptPassword *pwd_buf,
- uint8_t password_expired);
-void init_samr_user_info25(struct samr_UserInfo25 *r,
- NTTIME last_logon,
- NTTIME last_logoff,
- NTTIME last_password_change,
- NTTIME acct_expiry,
- NTTIME allow_password_change,
- NTTIME force_password_change,
- const char *account_name,
- const char *full_name,
- const char *home_directory,
- const char *home_drive,
- const char *logon_script,
- const char *profile_path,
- const char *description,
- const char *workstations,
- const char *comment,
- struct lsa_BinaryString *parameters,
- uint32_t rid,
- uint32_t primary_gid,
- uint32_t acct_flags,
- uint32_t fields_present,
- struct samr_LogonHours logon_hours,
- uint16_t bad_password_count,
- uint16_t logon_count,
- uint16_t country_code,
- uint16_t code_page,
- uint8_t nt_password_set,
- uint8_t lm_password_set,
- uint8_t password_expired,
- struct samr_CryptPasswordEx *pwd_buf);
-void init_samr_user_info26(struct samr_UserInfo26 *r,
- struct samr_CryptPasswordEx *pwd_buf,
- uint8_t password_expired);
void init_samr_CryptPasswordEx(const char *pwd,
DATA_BLOB *session_key,
struct samr_CryptPasswordEx *pwd_buf);
DATA_BLOB *session_key,
struct samr_CryptPassword *pwd_buf);
-/* The following definitions come from rpc_client/init_srvsvc.c */
-
-void init_srvsvc_NetSrvInfo102(struct srvsvc_NetSrvInfo102 *r,
- enum srvsvc_PlatformId platform_id,
- const char *server_name,
- uint32_t version_major,
- uint32_t version_minor,
- uint32_t server_type,
- const char *comment,
- uint32_t users,
- uint32_t disc,
- uint32_t hidden,
- uint32_t announce,
- uint32_t anndelta,
- uint32_t licenses,
- const char *userpath);
-void init_srvsvc_NetSrvInfo101(struct srvsvc_NetSrvInfo101 *r,
- enum srvsvc_PlatformId platform_id,
- const char *server_name,
- uint32_t version_major,
- uint32_t version_minor,
- uint32_t server_type,
- const char *comment);
-void init_srvsvc_NetSrvInfo100(struct srvsvc_NetSrvInfo100 *r,
- enum srvsvc_PlatformId platform_id,
- const char *server_name);
-void init_srvsvc_NetShareInfo0(struct srvsvc_NetShareInfo0 *r,
- const char *name);
-void init_srvsvc_NetShareInfo1(struct srvsvc_NetShareInfo1 *r,
- const char *name,
- enum srvsvc_ShareType type,
- const char *comment);
-void init_srvsvc_NetShareInfo2(struct srvsvc_NetShareInfo2 *r,
- const char *name,
- enum srvsvc_ShareType type,
- const char *comment,
- uint32_t permissions,
- uint32_t max_users,
- uint32_t current_users,
- const char *path,
- const char *password);
-void init_srvsvc_NetShareInfo501(struct srvsvc_NetShareInfo501 *r,
- const char *name,
- enum srvsvc_ShareType type,
- const char *comment,
- uint32_t csc_policy);
-void init_srvsvc_NetShareInfo502(struct srvsvc_NetShareInfo502 *r,
- const char *name,
- enum srvsvc_ShareType type,
- const char *comment,
- uint32_t permissions,
- uint32_t max_users,
- uint32_t current_users,
- const char *path,
- const char *password,
- struct sec_desc_buf *sd_buf);
-void init_srvsvc_NetShareInfo1004(struct srvsvc_NetShareInfo1004 *r,
- const char *comment);
-void init_srvsvc_NetShareInfo1005(struct srvsvc_NetShareInfo1005 *r,
- uint32_t dfs_flags);
-void init_srvsvc_NetShareInfo1006(struct srvsvc_NetShareInfo1006 *r,
- uint32_t max_users);
-void init_srvsvc_NetShareInfo1007(struct srvsvc_NetShareInfo1007 *r,
- uint32_t flags,
- const char *alternate_directory_name);
-void init_srvsvc_NetRemoteTODInfo(struct srvsvc_NetRemoteTODInfo *r,
- uint32_t elapsed,
- uint32_t msecs,
- uint32_t hours,
- uint32_t mins,
- uint32_t secs,
- uint32_t hunds,
- int32_t ttimezone,
- uint32_t tinterval,
- uint32_t day,
- uint32_t month,
- uint32_t year,
- uint32_t weekday);
-void init_srvsvc_NetSessInfo0(struct srvsvc_NetSessInfo0 *r,
- const char *client);
-void init_srvsvc_NetSessInfo1(struct srvsvc_NetSessInfo1 *r,
- const char *client,
- const char *user,
- uint32_t num_open,
- uint32_t _time,
- uint32_t idle_time,
- uint32_t user_flags);
-void init_srvsvc_NetSessInfo2(struct srvsvc_NetSessInfo2 *r,
- const char *client,
- const char *user,
- uint32_t num_open,
- uint32_t _time,
- uint32_t idle_time,
- uint32_t user_flags,
- const char *client_type);
-void init_srvsvc_NetSessInfo10(struct srvsvc_NetSessInfo10 *r,
- const char *client,
- const char *user,
- uint32_t _time,
- uint32_t idle_time);
-void init_srvsvc_NetSessInfo502(struct srvsvc_NetSessInfo502 *r,
- const char *client,
- const char *user,
- uint32_t num_open,
- uint32_t _time,
- uint32_t idle_time,
- uint32_t user_flags,
- const char *client_type,
- const char *transport);
-void init_srvsvc_NetFileInfo2(struct srvsvc_NetFileInfo2 *r,
- uint32_t fid);
-void init_srvsvc_NetFileInfo3(struct srvsvc_NetFileInfo3 *r,
- uint32_t fid,
- uint32_t permissions,
- uint32_t num_locks,
- const char *path,
- const char *user);
-void init_srvsvc_NetConnInfo0(struct srvsvc_NetConnInfo0 *r,
- uint32_t conn_id);
-void init_srvsvc_NetConnInfo1(struct srvsvc_NetConnInfo1 *r,
- uint32_t conn_id,
- uint32_t conn_type,
- uint32_t num_open,
- uint32_t num_users,
- uint32_t conn_time,
- const char *user,
- const char *share);
-
/* The following definitions come from rpc_client/ndr.c */
NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
/* The following definitions come from rpc_parse/parse_buffer.c */
-void rpcbuf_init(RPC_BUFFER *buffer, uint32 size, TALLOC_CTX *ctx);
+bool rpcbuf_init(RPC_BUFFER *buffer, uint32 size, TALLOC_CTX *ctx);
bool prs_rpcbuffer(const char *desc, prs_struct *ps, int depth, RPC_BUFFER *buffer);
bool prs_rpcbuffer_p(const char *desc, prs_struct *ps, int depth, RPC_BUFFER **buffer);
bool rpcbuf_alloc_size(RPC_BUFFER *buffer, uint32 buffer_size);
/* The following definitions come from rpc_parse/parse_eventlog.c */
-bool eventlog_io_q_read_eventlog(const char *desc, EVENTLOG_Q_READ_EVENTLOG *q_u,
- prs_struct *ps, int depth);
-bool eventlog_io_r_read_eventlog(const char *desc,
- EVENTLOG_Q_READ_EVENTLOG *q_u,
- EVENTLOG_R_READ_EVENTLOG *r_u,
- prs_struct *ps,
- int depth);
-
/* The following definitions come from rpc_parse/parse_misc.c */
bool smb_io_time(const char *desc, NTTIME *nttime, prs_struct *ps, int depth);
uint32 str_len_uni(UNISTR *source);
bool policy_handle_is_valid(const POLICY_HND *hnd);
-/* The following definitions come from rpc_parse/parse_ntsvcs.c */
-
-bool ntsvcs_io_q_get_device_list(const char *desc, NTSVCS_Q_GET_DEVICE_LIST *q_u, prs_struct *ps, int depth);
-bool ntsvcs_io_r_get_device_list(const char *desc, NTSVCS_R_GET_DEVICE_LIST *r_u, prs_struct *ps, int depth);
-
/* The following definitions come from rpc_parse/parse_prs.c */
void prs_dump(const char *name, int v, prs_struct *ps);
/* The following definitions come from rpc_parse/parse_rpc.c */
-const char *cli_get_pipe_name_from_iface(TALLOC_CTX *mem_ctx,
- struct cli_state *cli,
- const struct ndr_syntax_id *interface);
+const char *get_pipe_name_from_iface(const struct ndr_syntax_id *interface);
void init_rpc_hdr(RPC_HDR *hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
uint32 call_id, int data_len, int auth_len);
bool smb_io_rpc_hdr(const char *desc, RPC_HDR *rpc, prs_struct *ps, int depth);
bool make_monitorui_buf( RPC_BUFFER *buf, const char *dllname );
bool convert_port_data_1( NT_PORT_DATA_1 *port1, RPC_BUFFER *buf ) ;
-/* The following definitions come from rpc_parse/parse_svcctl.c */
-
-bool svcctl_io_enum_services_status( const char *desc, ENUM_SERVICES_STATUS *enum_status, RPC_BUFFER *buffer, int depth );
-bool svcctl_io_service_status_process( const char *desc, SERVICE_STATUS_PROCESS *status, RPC_BUFFER *buffer, int depth );
-uint32 svcctl_sizeof_enum_services_status( ENUM_SERVICES_STATUS *status );
-bool svcctl_io_q_enum_services_status(const char *desc, SVCCTL_Q_ENUM_SERVICES_STATUS *q_u, prs_struct *ps, int depth);
-bool svcctl_io_r_enum_services_status(const char *desc, SVCCTL_R_ENUM_SERVICES_STATUS *r_u, prs_struct *ps, int depth);
-bool svcctl_io_q_query_service_config2(const char *desc, SVCCTL_Q_QUERY_SERVICE_CONFIG2 *q_u, prs_struct *ps, int depth);
-void init_service_description_buffer(SERVICE_DESCRIPTION *desc, const char *service_desc );
-bool svcctl_io_service_description( const char *desc, SERVICE_DESCRIPTION *description, RPC_BUFFER *buffer, int depth );
-uint32 svcctl_sizeof_service_description( SERVICE_DESCRIPTION *desc );
-bool svcctl_io_service_fa( const char *desc, SERVICE_FAILURE_ACTIONS *fa, RPC_BUFFER *buffer, int depth );
-uint32 svcctl_sizeof_service_fa( SERVICE_FAILURE_ACTIONS *fa);
-bool svcctl_io_r_query_service_config2(const char *desc, SVCCTL_R_QUERY_SERVICE_CONFIG2 *r_u, prs_struct *ps, int depth);
-bool svcctl_io_q_query_service_status_ex(const char *desc, SVCCTL_Q_QUERY_SERVICE_STATUSEX *q_u, prs_struct *ps, int depth);
-bool svcctl_io_r_query_service_status_ex(const char *desc, SVCCTL_R_QUERY_SERVICE_STATUSEX *r_u, prs_struct *ps, int depth);
-
-/* The following definitions come from rpc_server/srv_dfs_nt.c */
-
-void _dfs_GetManagerVersion(pipes_struct *p, struct dfs_GetManagerVersion *r);
-WERROR _dfs_Add(pipes_struct *p, struct dfs_Add *r);
-WERROR _dfs_Remove(pipes_struct *p, struct dfs_Remove *r);
-WERROR _dfs_Enum(pipes_struct *p, struct dfs_Enum *r);
-WERROR _dfs_GetInfo(pipes_struct *p, struct dfs_GetInfo *r);
-WERROR _dfs_SetInfo(pipes_struct *p, struct dfs_SetInfo *r);
-WERROR _dfs_Rename(pipes_struct *p, struct dfs_Rename *r);
-WERROR _dfs_Move(pipes_struct *p, struct dfs_Move *r);
-WERROR _dfs_ManagerGetConfigInfo(pipes_struct *p, struct dfs_ManagerGetConfigInfo *r);
-WERROR _dfs_ManagerSendSiteInfo(pipes_struct *p, struct dfs_ManagerSendSiteInfo *r);
-WERROR _dfs_AddFtRoot(pipes_struct *p, struct dfs_AddFtRoot *r);
-WERROR _dfs_RemoveFtRoot(pipes_struct *p, struct dfs_RemoveFtRoot *r);
-WERROR _dfs_AddStdRoot(pipes_struct *p, struct dfs_AddStdRoot *r);
-WERROR _dfs_RemoveStdRoot(pipes_struct *p, struct dfs_RemoveStdRoot *r);
-WERROR _dfs_ManagerInitialize(pipes_struct *p, struct dfs_ManagerInitialize *r);
-WERROR _dfs_AddStdRootForced(pipes_struct *p, struct dfs_AddStdRootForced *r);
-WERROR _dfs_GetDcAddress(pipes_struct *p, struct dfs_GetDcAddress *r);
-WERROR _dfs_SetDcAddress(pipes_struct *p, struct dfs_SetDcAddress *r);
-WERROR _dfs_FlushFtTable(pipes_struct *p, struct dfs_FlushFtTable *r);
-WERROR _dfs_Add2(pipes_struct *p, struct dfs_Add2 *r);
-WERROR _dfs_Remove2(pipes_struct *p, struct dfs_Remove2 *r);
-WERROR _dfs_EnumEx(pipes_struct *p, struct dfs_EnumEx *r);
-WERROR _dfs_SetInfo2(pipes_struct *p, struct dfs_SetInfo2 *r);
-
-/* The following definitions come from rpc_server/srv_dssetup_nt.c */
-
-WERROR _dssetup_DsRoleGetPrimaryDomainInformation(pipes_struct *p,
- struct dssetup_DsRoleGetPrimaryDomainInformation *r);
-WERROR _dssetup_DsRoleDnsNameToFlatName(pipes_struct *p,
- struct dssetup_DsRoleDnsNameToFlatName *r);
-WERROR _dssetup_DsRoleDcAsDc(pipes_struct *p,
- struct dssetup_DsRoleDcAsDc *r);
-WERROR _dssetup_DsRoleDcAsReplica(pipes_struct *p,
- struct dssetup_DsRoleDcAsReplica *r);
-WERROR _dssetup_DsRoleDemoteDc(pipes_struct *p,
- struct dssetup_DsRoleDemoteDc *r);
-WERROR _dssetup_DsRoleGetDcOperationProgress(pipes_struct *p,
- struct dssetup_DsRoleGetDcOperationProgress *r);
-WERROR _dssetup_DsRoleGetDcOperationResults(pipes_struct *p,
- struct dssetup_DsRoleGetDcOperationResults *r);
-WERROR _dssetup_DsRoleCancel(pipes_struct *p,
- struct dssetup_DsRoleCancel *r);
-WERROR _dssetup_DsRoleServerSaveStateForUpgrade(pipes_struct *p,
- struct dssetup_DsRoleServerSaveStateForUpgrade *r);
-WERROR _dssetup_DsRoleUpgradeDownlevelServer(pipes_struct *p,
- struct dssetup_DsRoleUpgradeDownlevelServer *r);
-WERROR _dssetup_DsRoleAbortDownlevelServerUpgrade(pipes_struct *p,
- struct dssetup_DsRoleAbortDownlevelServerUpgrade *r);
-
-/* The following definitions come from rpc_server/srv_echo_nt.c */
-
-void _echo_AddOne(pipes_struct *p, struct echo_AddOne *r );
-void _echo_EchoData(pipes_struct *p, struct echo_EchoData *r);
-void _echo_SinkData(pipes_struct *p, struct echo_SinkData *r);
-void _echo_SourceData(pipes_struct *p, struct echo_SourceData *r);
-void _echo_TestCall(pipes_struct *p, struct echo_TestCall *r);
-NTSTATUS _echo_TestCall2(pipes_struct *p, struct echo_TestCall2 *r);
-uint32 _echo_TestSleep(pipes_struct *p, struct echo_TestSleep *r);
-void _echo_TestEnum(pipes_struct *p, struct echo_TestEnum *r);
-void _echo_TestSurrounding(pipes_struct *p, struct echo_TestSurrounding *r);
-uint16 _echo_TestDoublePointer(pipes_struct *p, struct echo_TestDoublePointer *r);
-
-/* The following definitions come from rpc_server/srv_eventlog.c */
-
-NTSTATUS rpc_eventlog2_init(void);
-void eventlog2_get_pipe_fns(struct api_struct **fns, int *n_fns);
-
/* The following definitions come from rpc_server/srv_eventlog_lib.c */
TDB_CONTEXT *elog_init_tdb( char *tdbfilename );
char *elog_tdbname(TALLOC_CTX *ctx, const char *name );
int elog_tdb_size( TDB_CONTEXT * tdb, int *MaxSize, int *Retention );
bool prune_eventlog( TDB_CONTEXT * tdb );
-bool can_write_to_eventlog( TDB_CONTEXT * tdb, int32 needed );
-ELOG_TDB *elog_open_tdb( char *logname, bool force_clear );
+ELOG_TDB *elog_open_tdb( const char *logname, bool force_clear, bool read_only );
int elog_close_tdb( ELOG_TDB *etdb, bool force_close );
-int write_eventlog_tdb( TDB_CONTEXT * the_tdb, Eventlog_entry * ee );
-void fixup_eventlog_entry( Eventlog_entry * ee );
-bool parse_logentry( char *line, Eventlog_entry * entry, bool * eor );
+bool parse_logentry( TALLOC_CTX *mem_ctx, char *line, struct eventlog_Record_tdb *entry, bool * eor );
+size_t fixup_eventlog_record_tdb(struct eventlog_Record_tdb *r);
+struct eventlog_Record_tdb *evlog_pull_record_tdb(TALLOC_CTX *mem_ctx,
+ TDB_CONTEXT *tdb,
+ uint32_t record_number);
+NTSTATUS evlog_push_record_tdb(TALLOC_CTX *mem_ctx,
+ TDB_CONTEXT *tdb,
+ struct eventlog_Record_tdb *r,
+ uint32_t *record_number);
+NTSTATUS evlog_push_record(TALLOC_CTX *mem_ctx,
+ TDB_CONTEXT *tdb,
+ struct EVENTLOGRECORD *r,
+ uint32_t *record_number);
+struct EVENTLOGRECORD *evlog_pull_record(TALLOC_CTX *mem_ctx,
+ TDB_CONTEXT *tdb,
+ uint32_t record_number);
+NTSTATUS evlog_evt_entry_to_tdb_entry(TALLOC_CTX *mem_ctx,
+ const struct EVENTLOGRECORD *e,
+ struct eventlog_Record_tdb *t);
+NTSTATUS evlog_tdb_entry_to_evt_entry(TALLOC_CTX *mem_ctx,
+ const struct eventlog_Record_tdb *t,
+ struct EVENTLOGRECORD *e);
/* The following definitions come from rpc_server/srv_eventlog_nt.c */
-NTSTATUS _eventlog_OpenEventLogW(pipes_struct *p,
- struct eventlog_OpenEventLogW *r);
-NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p,
- struct eventlog_ClearEventLogW *r);
-NTSTATUS _eventlog_CloseEventLog( pipes_struct * p, struct eventlog_CloseEventLog *r );
-NTSTATUS _eventlog_read_eventlog( pipes_struct * p,
- EVENTLOG_Q_READ_EVENTLOG * q_u,
- EVENTLOG_R_READ_EVENTLOG * r_u );
-NTSTATUS _eventlog_GetOldestRecord(pipes_struct *p,
- struct eventlog_GetOldestRecord *r);
-NTSTATUS _eventlog_GetNumRecords(pipes_struct *p,
- struct eventlog_GetNumRecords *r);
-NTSTATUS _eventlog_BackupEventLogW(pipes_struct *p, struct eventlog_BackupEventLogW *r);
-NTSTATUS _eventlog_DeregisterEventSource(pipes_struct *p, struct eventlog_DeregisterEventSource *r);
-NTSTATUS _eventlog_ChangeNotify(pipes_struct *p, struct eventlog_ChangeNotify *r);
-NTSTATUS _eventlog_RegisterEventSourceW(pipes_struct *p, struct eventlog_RegisterEventSourceW *r);
-NTSTATUS _eventlog_OpenBackupEventLogW(pipes_struct *p, struct eventlog_OpenBackupEventLogW *r);
-NTSTATUS _eventlog_ReadEventLogW(pipes_struct *p, struct eventlog_ReadEventLogW *r);
-NTSTATUS _eventlog_ReportEventW(pipes_struct *p, struct eventlog_ReportEventW *r);
-NTSTATUS _eventlog_ClearEventLogA(pipes_struct *p, struct eventlog_ClearEventLogA *r);
-NTSTATUS _eventlog_BackupEventLogA(pipes_struct *p, struct eventlog_BackupEventLogA *r);
-NTSTATUS _eventlog_OpenEventLogA(pipes_struct *p, struct eventlog_OpenEventLogA *r);
-NTSTATUS _eventlog_RegisterEventSourceA(pipes_struct *p, struct eventlog_RegisterEventSourceA *r);
-NTSTATUS _eventlog_OpenBackupEventLogA(pipes_struct *p, struct eventlog_OpenBackupEventLogA *r);
-NTSTATUS _eventlog_ReadEventLogA(pipes_struct *p, struct eventlog_ReadEventLogA *r);
-NTSTATUS _eventlog_ReportEventA(pipes_struct *p, struct eventlog_ReportEventA *r);
-NTSTATUS _eventlog_RegisterClusterSvc(pipes_struct *p, struct eventlog_RegisterClusterSvc *r);
-NTSTATUS _eventlog_DeregisterClusterSvc(pipes_struct *p, struct eventlog_DeregisterClusterSvc *r);
-NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p, struct eventlog_WriteClusterEvents *r);
-NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p, struct eventlog_GetLogIntormation *r);
-NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct eventlog_FlushEventLog *r);
-
-/* The following definitions come from rpc_server/srv_initshutdown_nt.c */
-
-WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r);
-WERROR _initshutdown_InitEx(pipes_struct *p, struct initshutdown_InitEx *r);
-WERROR _initshutdown_Abort(pipes_struct *p, struct initshutdown_Abort *r);
-
/* The following definitions come from rpc_server/srv_lsa_hnd.c */
-bool init_pipe_handle_list(pipes_struct *p, const char *pipe_name);
-bool create_policy_hnd(pipes_struct *p, POLICY_HND *hnd, void (*free_fn)(void *), void *data_ptr);
+bool init_pipe_handle_list(pipes_struct *p,
+ const struct ndr_syntax_id *syntax);
+bool create_policy_hnd(pipes_struct *p, POLICY_HND *hnd, void *data_ptr);
bool find_policy_by_hnd(pipes_struct *p, POLICY_HND *hnd, void **data_p);
bool close_policy_hnd(pipes_struct *p, POLICY_HND *hnd);
void close_policy_by_pipe(pipes_struct *p);
bool pipe_access_check(pipes_struct *p);
-/* The following definitions come from rpc_server/srv_lsa_nt.c */
-
-NTSTATUS _lsa_OpenPolicy2(pipes_struct *p,
- struct lsa_OpenPolicy2 *r);
-NTSTATUS _lsa_OpenPolicy(pipes_struct *p,
- struct lsa_OpenPolicy *r);
-NTSTATUS _lsa_EnumTrustDom(pipes_struct *p,
- struct lsa_EnumTrustDom *r);
-NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p,
- struct lsa_QueryInfoPolicy *r);
-NTSTATUS _lsa_LookupSids(pipes_struct *p,
- struct lsa_LookupSids *r);
-NTSTATUS _lsa_LookupSids2(pipes_struct *p,
- struct lsa_LookupSids2 *r);
-NTSTATUS _lsa_LookupSids3(pipes_struct *p,
- struct lsa_LookupSids3 *r);
-NTSTATUS _lsa_LookupNames(pipes_struct *p,
- struct lsa_LookupNames *r);
-NTSTATUS _lsa_LookupNames2(pipes_struct *p,
- struct lsa_LookupNames2 *r);
-NTSTATUS _lsa_LookupNames3(pipes_struct *p,
- struct lsa_LookupNames3 *r);
-NTSTATUS _lsa_LookupNames4(pipes_struct *p,
- struct lsa_LookupNames4 *r);
-NTSTATUS _lsa_Close(pipes_struct *p, struct lsa_Close *r);
-NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct lsa_OpenSecret *r);
-NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct lsa_OpenTrustedDomain *r);
-NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p, struct lsa_CreateTrustedDomain *r);
-NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct lsa_CreateSecret *r);
-NTSTATUS _lsa_SetSecret(pipes_struct *p, struct lsa_SetSecret *r);
-NTSTATUS _lsa_DeleteObject(pipes_struct *p,
- struct lsa_DeleteObject *r);
-NTSTATUS _lsa_EnumPrivs(pipes_struct *p,
- struct lsa_EnumPrivs *r);
-NTSTATUS _lsa_LookupPrivDisplayName(pipes_struct *p,
- struct lsa_LookupPrivDisplayName *r);
-NTSTATUS _lsa_EnumAccounts(pipes_struct *p,
- struct lsa_EnumAccounts *r);
-NTSTATUS _lsa_GetUserName(pipes_struct *p,
- struct lsa_GetUserName *r);
-NTSTATUS _lsa_CreateAccount(pipes_struct *p,
- struct lsa_CreateAccount *r);
-NTSTATUS _lsa_OpenAccount(pipes_struct *p,
- struct lsa_OpenAccount *r);
-NTSTATUS _lsa_EnumPrivsAccount(pipes_struct *p,
- struct lsa_EnumPrivsAccount *r);
-NTSTATUS _lsa_GetSystemAccessAccount(pipes_struct *p,
- struct lsa_GetSystemAccessAccount *r);
-NTSTATUS _lsa_SetSystemAccessAccount(pipes_struct *p,
- struct lsa_SetSystemAccessAccount *r);
-NTSTATUS _lsa_AddPrivilegesToAccount(pipes_struct *p,
- struct lsa_AddPrivilegesToAccount *r);
-NTSTATUS _lsa_RemovePrivilegesFromAccount(pipes_struct *p,
- struct lsa_RemovePrivilegesFromAccount *r);
-NTSTATUS _lsa_QuerySecurity(pipes_struct *p,
- struct lsa_QuerySecurity *r);
-NTSTATUS _lsa_AddAccountRights(pipes_struct *p,
- struct lsa_AddAccountRights *r);
-NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p,
- struct lsa_RemoveAccountRights *r);
-NTSTATUS _lsa_EnumAccountRights(pipes_struct *p,
- struct lsa_EnumAccountRights *r);
-NTSTATUS _lsa_LookupPrivValue(pipes_struct *p,
- struct lsa_LookupPrivValue *r);
-NTSTATUS _lsa_Delete(pipes_struct *p, struct lsa_Delete *r);
-NTSTATUS _lsa_SetSecObj(pipes_struct *p, struct lsa_SetSecObj *r);
-NTSTATUS _lsa_ChangePassword(pipes_struct *p, struct lsa_ChangePassword *r);
-NTSTATUS _lsa_SetInfoPolicy(pipes_struct *p, struct lsa_SetInfoPolicy *r);
-NTSTATUS _lsa_ClearAuditLog(pipes_struct *p, struct lsa_ClearAuditLog *r);
-NTSTATUS _lsa_GetQuotasForAccount(pipes_struct *p, struct lsa_GetQuotasForAccount *r);
-NTSTATUS _lsa_SetQuotasForAccount(pipes_struct *p, struct lsa_SetQuotasForAccount *r);
-NTSTATUS _lsa_QueryTrustedDomainInfo(pipes_struct *p, struct lsa_QueryTrustedDomainInfo *r);
-NTSTATUS _lsa_SetInformationTrustedDomain(pipes_struct *p, struct lsa_SetInformationTrustedDomain *r);
-NTSTATUS _lsa_QuerySecret(pipes_struct *p, struct lsa_QuerySecret *r);
-NTSTATUS _lsa_LookupPrivName(pipes_struct *p, struct lsa_LookupPrivName *r);
-NTSTATUS _lsa_EnumAccountsWithUserRight(pipes_struct *p, struct lsa_EnumAccountsWithUserRight *r);
-NTSTATUS _lsa_QueryTrustedDomainInfoBySid(pipes_struct *p, struct lsa_QueryTrustedDomainInfoBySid *r);
-NTSTATUS _lsa_SetTrustedDomainInfo(pipes_struct *p, struct lsa_SetTrustedDomainInfo *r);
-NTSTATUS _lsa_DeleteTrustedDomain(pipes_struct *p, struct lsa_DeleteTrustedDomain *r);
-NTSTATUS _lsa_StorePrivateData(pipes_struct *p, struct lsa_StorePrivateData *r);
-NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p, struct lsa_RetrievePrivateData *r);
-NTSTATUS _lsa_QueryInfoPolicy2(pipes_struct *p, struct lsa_QueryInfoPolicy2 *r);
-NTSTATUS _lsa_SetInfoPolicy2(pipes_struct *p, struct lsa_SetInfoPolicy2 *r);
-NTSTATUS _lsa_QueryTrustedDomainInfoByName(pipes_struct *p, struct lsa_QueryTrustedDomainInfoByName *r);
-NTSTATUS _lsa_SetTrustedDomainInfoByName(pipes_struct *p, struct lsa_SetTrustedDomainInfoByName *r);
-NTSTATUS _lsa_EnumTrustedDomainsEx(pipes_struct *p, struct lsa_EnumTrustedDomainsEx *r);
-NTSTATUS _lsa_CreateTrustedDomainEx(pipes_struct *p, struct lsa_CreateTrustedDomainEx *r);
-NTSTATUS _lsa_CloseTrustedDomainEx(pipes_struct *p, struct lsa_CloseTrustedDomainEx *r);
-NTSTATUS _lsa_QueryDomainInformationPolicy(pipes_struct *p, struct lsa_QueryDomainInformationPolicy *r);
-NTSTATUS _lsa_SetDomainInformationPolicy(pipes_struct *p, struct lsa_SetDomainInformationPolicy *r);
-NTSTATUS _lsa_OpenTrustedDomainByName(pipes_struct *p, struct lsa_OpenTrustedDomainByName *r);
-NTSTATUS _lsa_TestCall(pipes_struct *p, struct lsa_TestCall *r);
-NTSTATUS _lsa_CreateTrustedDomainEx2(pipes_struct *p, struct lsa_CreateTrustedDomainEx2 *r);
-NTSTATUS _lsa_CREDRWRITE(pipes_struct *p, struct lsa_CREDRWRITE *r);
-NTSTATUS _lsa_CREDRREAD(pipes_struct *p, struct lsa_CREDRREAD *r);
-NTSTATUS _lsa_CREDRENUMERATE(pipes_struct *p, struct lsa_CREDRENUMERATE *r);
-NTSTATUS _lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRWRITEDOMAINCREDENTIALS *r);
-NTSTATUS _lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRREADDOMAINCREDENTIALS *r);
-NTSTATUS _lsa_CREDRDELETE(pipes_struct *p, struct lsa_CREDRDELETE *r);
-NTSTATUS _lsa_CREDRGETTARGETINFO(pipes_struct *p, struct lsa_CREDRGETTARGETINFO *r);
-NTSTATUS _lsa_CREDRPROFILELOADED(pipes_struct *p, struct lsa_CREDRPROFILELOADED *r);
-NTSTATUS _lsa_CREDRGETSESSIONTYPES(pipes_struct *p, struct lsa_CREDRGETSESSIONTYPES *r);
-NTSTATUS _lsa_LSARREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARREGISTERAUDITEVENT *r);
-NTSTATUS _lsa_LSARGENAUDITEVENT(pipes_struct *p, struct lsa_LSARGENAUDITEVENT *r);
-NTSTATUS _lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARUNREGISTERAUDITEVENT *r);
-NTSTATUS _lsa_lsaRQueryForestTrustInformation(pipes_struct *p, struct lsa_lsaRQueryForestTrustInformation *r);
-NTSTATUS _lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p, struct lsa_LSARSETFORESTTRUSTINFORMATION *r);
-NTSTATUS _lsa_CREDRRENAME(pipes_struct *p, struct lsa_CREDRRENAME *r);
-NTSTATUS _lsa_LSAROPENPOLICYSCE(pipes_struct *p, struct lsa_LSAROPENPOLICYSCE *r);
-NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r);
-NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r);
-NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p, struct lsa_LSARADTREPORTSECURITYEVENT *r);
-
-/* The following definitions come from rpc_server/srv_netlog_nt.c */
-
-WERROR _netr_LogonControl(pipes_struct *p,
- struct netr_LogonControl *r);
-WERROR _netr_LogonControl2(pipes_struct *p,
- struct netr_LogonControl2 *r);
-WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
- struct netr_NetrEnumerateTrustedDomains *r);
-NTSTATUS _netr_ServerReqChallenge(pipes_struct *p,
- struct netr_ServerReqChallenge *r);
-NTSTATUS _netr_ServerAuthenticate(pipes_struct *p,
- struct netr_ServerAuthenticate *r);
-NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
- struct netr_ServerAuthenticate2 *r);
-NTSTATUS _netr_ServerPasswordSet(pipes_struct *p,
- struct netr_ServerPasswordSet *r);
-NTSTATUS _netr_LogonSamLogoff(pipes_struct *p,
- struct netr_LogonSamLogoff *r);
-NTSTATUS _netr_LogonSamLogon(pipes_struct *p,
- struct netr_LogonSamLogon *r);
-NTSTATUS _netr_LogonSamLogonEx(pipes_struct *p,
- struct netr_LogonSamLogonEx *r);
-WERROR _netr_LogonUasLogon(pipes_struct *p,
- struct netr_LogonUasLogon *r);
-WERROR _netr_LogonUasLogoff(pipes_struct *p,
- struct netr_LogonUasLogoff *r);
-NTSTATUS _netr_DatabaseDeltas(pipes_struct *p,
- struct netr_DatabaseDeltas *r);
-NTSTATUS _netr_DatabaseSync(pipes_struct *p,
- struct netr_DatabaseSync *r);
-NTSTATUS _netr_AccountDeltas(pipes_struct *p,
- struct netr_AccountDeltas *r);
-NTSTATUS _netr_AccountSync(pipes_struct *p,
- struct netr_AccountSync *r);
-WERROR _netr_GetDcName(pipes_struct *p,
- struct netr_GetDcName *r);
-WERROR _netr_GetAnyDCName(pipes_struct *p,
- struct netr_GetAnyDCName *r);
-NTSTATUS _netr_DatabaseSync2(pipes_struct *p,
- struct netr_DatabaseSync2 *r);
-NTSTATUS _netr_DatabaseRedo(pipes_struct *p,
- struct netr_DatabaseRedo *r);
-WERROR _netr_LogonControl2Ex(pipes_struct *p,
- struct netr_LogonControl2Ex *r);
-WERROR _netr_DsRGetDCName(pipes_struct *p,
- struct netr_DsRGetDCName *r);
-WERROR _netr_NETRLOGONDUMMYROUTINE1(pipes_struct *p,
- struct netr_NETRLOGONDUMMYROUTINE1 *r);
-WERROR _netr_NETRLOGONSETSERVICEBITS(pipes_struct *p,
- struct netr_NETRLOGONSETSERVICEBITS *r);
-WERROR _netr_LogonGetTrustRid(pipes_struct *p,
- struct netr_LogonGetTrustRid *r);
-WERROR _netr_NETRLOGONCOMPUTESERVERDIGEST(pipes_struct *p,
- struct netr_NETRLOGONCOMPUTESERVERDIGEST *r);
-WERROR _netr_NETRLOGONCOMPUTECLIENTDIGEST(pipes_struct *p,
- struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r);
-NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
- struct netr_ServerAuthenticate3 *r);
-WERROR _netr_DsRGetDCNameEx(pipes_struct *p,
- struct netr_DsRGetDCNameEx *r);
-WERROR _netr_DsRGetSiteName(pipes_struct *p,
- struct netr_DsRGetSiteName *r);
-NTSTATUS _netr_LogonGetDomainInfo(pipes_struct *p,
- struct netr_LogonGetDomainInfo *r);
-NTSTATUS _netr_ServerPasswordSet2(pipes_struct *p,
- struct netr_ServerPasswordSet2 *r);
-WERROR _netr_ServerPasswordGet(pipes_struct *p,
- struct netr_ServerPasswordGet *r);
-WERROR _netr_NETRLOGONSENDTOSAM(pipes_struct *p,
- struct netr_NETRLOGONSENDTOSAM *r);
-WERROR _netr_DsRAddressToSitenamesW(pipes_struct *p,
- struct netr_DsRAddressToSitenamesW *r);
-WERROR _netr_DsRGetDCNameEx2(pipes_struct *p,
- struct netr_DsRGetDCNameEx2 *r);
-WERROR _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(pipes_struct *p,
- struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r);
-WERROR _netr_NetrEnumerateTrustedDomainsEx(pipes_struct *p,
- struct netr_NetrEnumerateTrustedDomainsEx *r);
-WERROR _netr_DsRAddressToSitenamesExW(pipes_struct *p,
- struct netr_DsRAddressToSitenamesExW *r);
-WERROR _netr_DsrGetDcSiteCoverageW(pipes_struct *p,
- struct netr_DsrGetDcSiteCoverageW *r);
-WERROR _netr_DsrEnumerateDomainTrusts(pipes_struct *p,
- struct netr_DsrEnumerateDomainTrusts *r);
-WERROR _netr_DsrDeregisterDNSHostRecords(pipes_struct *p,
- struct netr_DsrDeregisterDNSHostRecords *r);
-NTSTATUS _netr_ServerTrustPasswordsGet(pipes_struct *p,
- struct netr_ServerTrustPasswordsGet *r);
-WERROR _netr_DsRGetForestTrustInformation(pipes_struct *p,
- struct netr_DsRGetForestTrustInformation *r);
-WERROR _netr_GetForestTrustInformation(pipes_struct *p,
- struct netr_GetForestTrustInformation *r);
-NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p,
- struct netr_LogonSamLogonWithFlags *r);
-WERROR _netr_NETRSERVERGETTRUSTINFO(pipes_struct *p,
- struct netr_NETRSERVERGETTRUSTINFO *r);
-
-/* The following definitions come from rpc_server/srv_ntsvcs.c */
-
-void ntsvcs2_get_pipe_fns( struct api_struct **fns, int *n_fns );
-NTSTATUS rpc_ntsvcs2_init(void);
-
-/* The following definitions come from rpc_server/srv_ntsvcs_nt.c */
-
-WERROR _PNP_GetVersion(pipes_struct *p,
- struct PNP_GetVersion *r);
-WERROR _PNP_GetDeviceListSize(pipes_struct *p,
- struct PNP_GetDeviceListSize *r);
-WERROR _ntsvcs_get_device_list( pipes_struct *p, NTSVCS_Q_GET_DEVICE_LIST *q_u, NTSVCS_R_GET_DEVICE_LIST *r_u );
-WERROR _PNP_ValidateDeviceInstance(pipes_struct *p,
- struct PNP_ValidateDeviceInstance *r);
-WERROR _PNP_GetHwProfInfo(pipes_struct *p,
- struct PNP_GetHwProfInfo *r);
-WERROR _PNP_HwProfFlags(pipes_struct *p,
- struct PNP_HwProfFlags *r);
-WERROR _PNP_Disconnect(pipes_struct *p,
- struct PNP_Disconnect *r);
-WERROR _PNP_Connect(pipes_struct *p,
- struct PNP_Connect *r);
-WERROR _PNP_GetGlobalState(pipes_struct *p,
- struct PNP_GetGlobalState *r);
-WERROR _PNP_InitDetection(pipes_struct *p,
- struct PNP_InitDetection *r);
-WERROR _PNP_ReportLogOn(pipes_struct *p,
- struct PNP_ReportLogOn *r);
-WERROR _PNP_GetRootDeviceInstance(pipes_struct *p,
- struct PNP_GetRootDeviceInstance *r);
-WERROR _PNP_GetRelatedDeviceInstance(pipes_struct *p,
- struct PNP_GetRelatedDeviceInstance *r);
-WERROR _PNP_EnumerateSubKeys(pipes_struct *p,
- struct PNP_EnumerateSubKeys *r);
-WERROR _PNP_GetDeviceList(pipes_struct *p,
- struct PNP_GetDeviceList *r);
-WERROR _PNP_GetDepth(pipes_struct *p,
- struct PNP_GetDepth *r);
-WERROR _PNP_GetDeviceRegProp(pipes_struct *p,
- struct PNP_GetDeviceRegProp *r);
-WERROR _PNP_SetDeviceRegProp(pipes_struct *p,
- struct PNP_SetDeviceRegProp *r);
-WERROR _PNP_GetClassInstance(pipes_struct *p,
- struct PNP_GetClassInstance *r);
-WERROR _PNP_CreateKey(pipes_struct *p,
- struct PNP_CreateKey *r);
-WERROR _PNP_DeleteRegistryKey(pipes_struct *p,
- struct PNP_DeleteRegistryKey *r);
-WERROR _PNP_GetClassCount(pipes_struct *p,
- struct PNP_GetClassCount *r);
-WERROR _PNP_GetClassName(pipes_struct *p,
- struct PNP_GetClassName *r);
-WERROR _PNP_DeleteClassKey(pipes_struct *p,
- struct PNP_DeleteClassKey *r);
-WERROR _PNP_GetInterfaceDeviceAlias(pipes_struct *p,
- struct PNP_GetInterfaceDeviceAlias *r);
-WERROR _PNP_GetInterfaceDeviceList(pipes_struct *p,
- struct PNP_GetInterfaceDeviceList *r);
-WERROR _PNP_GetInterfaceDeviceListSize(pipes_struct *p,
- struct PNP_GetInterfaceDeviceListSize *r);
-WERROR _PNP_RegisterDeviceClassAssociation(pipes_struct *p,
- struct PNP_RegisterDeviceClassAssociation *r);
-WERROR _PNP_UnregisterDeviceClassAssociation(pipes_struct *p,
- struct PNP_UnregisterDeviceClassAssociation *r);
-WERROR _PNP_GetClassRegProp(pipes_struct *p,
- struct PNP_GetClassRegProp *r);
-WERROR _PNP_SetClassRegProp(pipes_struct *p,
- struct PNP_SetClassRegProp *r);
-WERROR _PNP_CreateDevInst(pipes_struct *p,
- struct PNP_CreateDevInst *r);
-WERROR _PNP_DeviceInstanceAction(pipes_struct *p,
- struct PNP_DeviceInstanceAction *r);
-WERROR _PNP_GetDeviceStatus(pipes_struct *p,
- struct PNP_GetDeviceStatus *r);
-WERROR _PNP_SetDeviceProblem(pipes_struct *p,
- struct PNP_SetDeviceProblem *r);
-WERROR _PNP_DisableDevInst(pipes_struct *p,
- struct PNP_DisableDevInst *r);
-WERROR _PNP_UninstallDevInst(pipes_struct *p,
- struct PNP_UninstallDevInst *r);
-WERROR _PNP_AddID(pipes_struct *p,
- struct PNP_AddID *r);
-WERROR _PNP_RegisterDriver(pipes_struct *p,
- struct PNP_RegisterDriver *r);
-WERROR _PNP_QueryRemove(pipes_struct *p,
- struct PNP_QueryRemove *r);
-WERROR _PNP_RequestDeviceEject(pipes_struct *p,
- struct PNP_RequestDeviceEject *r);
-WERROR _PNP_IsDockStationPresent(pipes_struct *p,
- struct PNP_IsDockStationPresent *r);
-WERROR _PNP_RequestEjectPC(pipes_struct *p,
- struct PNP_RequestEjectPC *r);
-WERROR _PNP_AddEmptyLogConf(pipes_struct *p,
- struct PNP_AddEmptyLogConf *r);
-WERROR _PNP_FreeLogConf(pipes_struct *p,
- struct PNP_FreeLogConf *r);
-WERROR _PNP_GetFirstLogConf(pipes_struct *p,
- struct PNP_GetFirstLogConf *r);
-WERROR _PNP_GetNextLogConf(pipes_struct *p,
- struct PNP_GetNextLogConf *r);
-WERROR _PNP_GetLogConfPriority(pipes_struct *p,
- struct PNP_GetLogConfPriority *r);
-WERROR _PNP_AddResDes(pipes_struct *p,
- struct PNP_AddResDes *r);
-WERROR _PNP_FreeResDes(pipes_struct *p,
- struct PNP_FreeResDes *r);
-WERROR _PNP_GetNextResDes(pipes_struct *p,
- struct PNP_GetNextResDes *r);
-WERROR _PNP_GetResDesData(pipes_struct *p,
- struct PNP_GetResDesData *r);
-WERROR _PNP_GetResDesDataSize(pipes_struct *p,
- struct PNP_GetResDesDataSize *r);
-WERROR _PNP_ModifyResDes(pipes_struct *p,
- struct PNP_ModifyResDes *r);
-WERROR _PNP_DetectResourceLimit(pipes_struct *p,
- struct PNP_DetectResourceLimit *r);
-WERROR _PNP_QueryResConfList(pipes_struct *p,
- struct PNP_QueryResConfList *r);
-WERROR _PNP_SetHwProf(pipes_struct *p,
- struct PNP_SetHwProf *r);
-WERROR _PNP_QueryArbitratorFreeData(pipes_struct *p,
- struct PNP_QueryArbitratorFreeData *r);
-WERROR _PNP_QueryArbitratorFreeSize(pipes_struct *p,
- struct PNP_QueryArbitratorFreeSize *r);
-WERROR _PNP_RunDetection(pipes_struct *p,
- struct PNP_RunDetection *r);
-WERROR _PNP_RegisterNotification(pipes_struct *p,
- struct PNP_RegisterNotification *r);
-WERROR _PNP_UnregisterNotification(pipes_struct *p,
- struct PNP_UnregisterNotification *r);
-WERROR _PNP_GetCustomDevProp(pipes_struct *p,
- struct PNP_GetCustomDevProp *r);
-WERROR _PNP_GetVersionInternal(pipes_struct *p,
- struct PNP_GetVersionInternal *r);
-WERROR _PNP_GetBlockedDriverInfo(pipes_struct *p,
- struct PNP_GetBlockedDriverInfo *r);
-WERROR _PNP_GetServerSideDeviceInstallFlags(pipes_struct *p,
- struct PNP_GetServerSideDeviceInstallFlags *r);
-
/* The following definitions come from rpc_server/srv_pipe.c */
bool create_next_pdu(pipes_struct *p);
const char *srv,
const struct ndr_syntax_id *interface,
const struct api_struct *cmds, int size);
-bool is_known_pipename(const char *cli_filename);
+NTSTATUS rpc_srv_register(int version, const char *clnt,
+ const char *srv,
+ const struct ndr_interface_table *iface,
+ const struct api_struct *cmds, int size);
+bool is_known_pipename(const char *cli_filename, struct ndr_syntax_id *syntax);
bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p);
bool api_pipe_alter_context(pipes_struct *p, prs_struct *rpc_in_p);
bool api_pipe_ntlmssp_auth_process(pipes_struct *p, prs_struct *rpc_in,
pipes_struct *get_first_internal_pipe(void);
pipes_struct *get_next_internal_pipe(pipes_struct *p);
-void init_rpc_pipe_hnd(void);
bool fsp_is_np(struct files_struct *fsp);
-NTSTATUS np_open(struct smb_request *smb_req, const char *name,
- struct files_struct **pfsp);
-NTSTATUS np_write(struct files_struct *fsp, const uint8_t *data, size_t len,
- ssize_t *nwritten);
-NTSTATUS np_read(struct files_struct *fsp, uint8_t *data, size_t len,
- ssize_t *nread, bool *is_data_outstanding);
-
-
-/* The following definitions come from rpc_server/srv_samr_nt.c */
-
-NTSTATUS _samr_Close(pipes_struct *p, struct samr_Close *r);
-NTSTATUS _samr_OpenDomain(pipes_struct *p,
- struct samr_OpenDomain *r);
-NTSTATUS _samr_GetUserPwInfo(pipes_struct *p,
- struct samr_GetUserPwInfo *r);
-NTSTATUS _samr_SetSecurity(pipes_struct *p,
- struct samr_SetSecurity *r);
-NTSTATUS _samr_QuerySecurity(pipes_struct *p,
- struct samr_QuerySecurity *r);
-NTSTATUS _samr_EnumDomainUsers(pipes_struct *p,
- struct samr_EnumDomainUsers *r);
-NTSTATUS _samr_EnumDomainGroups(pipes_struct *p,
- struct samr_EnumDomainGroups *r);
-NTSTATUS _samr_EnumDomainAliases(pipes_struct *p,
- struct samr_EnumDomainAliases *r);
-NTSTATUS _samr_QueryDisplayInfo(pipes_struct *p,
- struct samr_QueryDisplayInfo *r);
-NTSTATUS _samr_QueryDisplayInfo2(pipes_struct *p,
- struct samr_QueryDisplayInfo2 *r);
-NTSTATUS _samr_QueryDisplayInfo3(pipes_struct *p,
- struct samr_QueryDisplayInfo3 *r);
-NTSTATUS _samr_QueryAliasInfo(pipes_struct *p,
- struct samr_QueryAliasInfo *r);
-NTSTATUS _samr_LookupNames(pipes_struct *p,
- struct samr_LookupNames *r);
-NTSTATUS _samr_ChangePasswordUser2(pipes_struct *p,
- struct samr_ChangePasswordUser2 *r);
-NTSTATUS _samr_ChangePasswordUser3(pipes_struct *p,
- struct samr_ChangePasswordUser3 *r);
-NTSTATUS _samr_LookupRids(pipes_struct *p,
- struct samr_LookupRids *r);
-NTSTATUS _samr_OpenUser(pipes_struct *p,
- struct samr_OpenUser *r);
-NTSTATUS _samr_QueryUserInfo(pipes_struct *p,
- struct samr_QueryUserInfo *r);
-NTSTATUS _samr_GetGroupsForUser(pipes_struct *p,
- struct samr_GetGroupsForUser *r);
-NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
- struct samr_QueryDomainInfo *r);
-NTSTATUS _samr_CreateUser2(pipes_struct *p,
- struct samr_CreateUser2 *r);
-NTSTATUS _samr_Connect(pipes_struct *p,
- struct samr_Connect *r);
-NTSTATUS _samr_Connect2(pipes_struct *p,
- struct samr_Connect2 *r);
-NTSTATUS _samr_Connect4(pipes_struct *p,
- struct samr_Connect4 *r);
-NTSTATUS _samr_Connect5(pipes_struct *p,
- struct samr_Connect5 *r);
-NTSTATUS _samr_LookupDomain(pipes_struct *p,
- struct samr_LookupDomain *r);
-NTSTATUS _samr_EnumDomains(pipes_struct *p,
- struct samr_EnumDomains *r);
-NTSTATUS _samr_OpenAlias(pipes_struct *p,
- struct samr_OpenAlias *r);
-NTSTATUS _samr_SetUserInfo(pipes_struct *p,
- struct samr_SetUserInfo *r);
-NTSTATUS _samr_SetUserInfo2(pipes_struct *p,
- struct samr_SetUserInfo2 *r);
-NTSTATUS _samr_GetAliasMembership(pipes_struct *p,
- struct samr_GetAliasMembership *r);
-NTSTATUS _samr_GetMembersInAlias(pipes_struct *p,
- struct samr_GetMembersInAlias *r);
-NTSTATUS _samr_QueryGroupMember(pipes_struct *p,
- struct samr_QueryGroupMember *r);
-NTSTATUS _samr_AddAliasMember(pipes_struct *p,
- struct samr_AddAliasMember *r);
-NTSTATUS _samr_DeleteAliasMember(pipes_struct *p,
- struct samr_DeleteAliasMember *r);
-NTSTATUS _samr_AddGroupMember(pipes_struct *p,
- struct samr_AddGroupMember *r);
-NTSTATUS _samr_DeleteGroupMember(pipes_struct *p,
- struct samr_DeleteGroupMember *r);
-NTSTATUS _samr_DeleteUser(pipes_struct *p,
- struct samr_DeleteUser *r);
-NTSTATUS _samr_DeleteDomainGroup(pipes_struct *p,
- struct samr_DeleteDomainGroup *r);
-NTSTATUS _samr_DeleteDomAlias(pipes_struct *p,
- struct samr_DeleteDomAlias *r);
-NTSTATUS _samr_CreateDomainGroup(pipes_struct *p,
- struct samr_CreateDomainGroup *r);
-NTSTATUS _samr_CreateDomAlias(pipes_struct *p,
- struct samr_CreateDomAlias *r);
-NTSTATUS _samr_QueryGroupInfo(pipes_struct *p,
- struct samr_QueryGroupInfo *r);
-NTSTATUS _samr_SetGroupInfo(pipes_struct *p,
- struct samr_SetGroupInfo *r);
-NTSTATUS _samr_SetAliasInfo(pipes_struct *p,
- struct samr_SetAliasInfo *r);
-NTSTATUS _samr_GetDomPwInfo(pipes_struct *p,
- struct samr_GetDomPwInfo *r);
-NTSTATUS _samr_OpenGroup(pipes_struct *p,
- struct samr_OpenGroup *r);
-NTSTATUS _samr_RemoveMemberFromForeignDomain(pipes_struct *p,
- struct samr_RemoveMemberFromForeignDomain *r);
-NTSTATUS _samr_QueryDomainInfo2(pipes_struct *p,
- struct samr_QueryDomainInfo2 *r);
-NTSTATUS _samr_SetDomainInfo(pipes_struct *p,
- struct samr_SetDomainInfo *r);
-NTSTATUS _samr_GetDisplayEnumerationIndex(pipes_struct *p,
- struct samr_GetDisplayEnumerationIndex *r);
-NTSTATUS _samr_GetDisplayEnumerationIndex2(pipes_struct *p,
- struct samr_GetDisplayEnumerationIndex2 *r);
-NTSTATUS _samr_Shutdown(pipes_struct *p,
- struct samr_Shutdown *r);
-NTSTATUS _samr_CreateUser(pipes_struct *p,
- struct samr_CreateUser *r);
-NTSTATUS _samr_SetMemberAttributesOfGroup(pipes_struct *p,
- struct samr_SetMemberAttributesOfGroup *r);
-NTSTATUS _samr_ChangePasswordUser(pipes_struct *p,
- struct samr_ChangePasswordUser *r);
-NTSTATUS _samr_TestPrivateFunctionsDomain(pipes_struct *p,
- struct samr_TestPrivateFunctionsDomain *r);
-NTSTATUS _samr_TestPrivateFunctionsUser(pipes_struct *p,
- struct samr_TestPrivateFunctionsUser *r);
-NTSTATUS _samr_QueryUserInfo2(pipes_struct *p,
- struct samr_QueryUserInfo2 *r);
-NTSTATUS _samr_AddMultipleMembersToAlias(pipes_struct *p,
- struct samr_AddMultipleMembersToAlias *r);
-NTSTATUS _samr_RemoveMultipleMembersFromAlias(pipes_struct *p,
- struct samr_RemoveMultipleMembersFromAlias *r);
-NTSTATUS _samr_OemChangePasswordUser2(pipes_struct *p,
- struct samr_OemChangePasswordUser2 *r);
-NTSTATUS _samr_SetBootKeyInformation(pipes_struct *p,
- struct samr_SetBootKeyInformation *r);
-NTSTATUS _samr_GetBootKeyInformation(pipes_struct *p,
- struct samr_GetBootKeyInformation *r);
-NTSTATUS _samr_Connect3(pipes_struct *p,
- struct samr_Connect3 *r);
-NTSTATUS _samr_RidToSid(pipes_struct *p,
- struct samr_RidToSid *r);
-NTSTATUS _samr_SetDsrmPassword(pipes_struct *p,
- struct samr_SetDsrmPassword *r);
-NTSTATUS _samr_ValidatePassword(pipes_struct *p,
- struct samr_ValidatePassword *r);
+NTSTATUS np_open(TALLOC_CTX *mem_ctx, const char *name,
+ const char *client_address,
+ struct auth_serversupplied_info *server_info,
+ struct fake_file_handle **phandle);
+struct async_req *np_write_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct fake_file_handle *handle,
+ const uint8_t *data, size_t len);
+NTSTATUS np_write_recv(struct async_req *req, ssize_t *nwritten);
+struct async_req *np_read_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct fake_file_handle *handle,
+ uint8_t *data, size_t len);
+NTSTATUS np_read_recv(struct async_req *req, ssize_t *nread,
+ bool *is_data_outstanding);
/* The following definitions come from rpc_server/srv_samr_util.c */
/* The following definitions come from rpc_server/srv_srvsvc_nt.c */
-WERROR _srvsvc_NetFileEnum(pipes_struct *p,
- struct srvsvc_NetFileEnum *r);
-WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p,
- struct srvsvc_NetSrvGetInfo *r);
-WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p,
- struct srvsvc_NetSrvSetInfo *r);
-WERROR _srvsvc_NetConnEnum(pipes_struct *p,
- struct srvsvc_NetConnEnum *r);
-WERROR _srvsvc_NetSessEnum(pipes_struct *p,
- struct srvsvc_NetSessEnum *r);
-WERROR _srvsvc_NetSessDel(pipes_struct *p,
- struct srvsvc_NetSessDel *r);
-WERROR _srvsvc_NetShareEnumAll(pipes_struct *p,
- struct srvsvc_NetShareEnumAll *r);
-WERROR _srvsvc_NetShareEnum(pipes_struct *p,
- struct srvsvc_NetShareEnum *r);
-WERROR _srvsvc_NetShareGetInfo(pipes_struct *p,
- struct srvsvc_NetShareGetInfo *r);
char *valid_share_pathname(TALLOC_CTX *ctx, const char *dos_pathname);
-WERROR _srvsvc_NetShareSetInfo(pipes_struct *p,
- struct srvsvc_NetShareSetInfo *r);
-WERROR _srvsvc_NetShareAdd(pipes_struct *p,
- struct srvsvc_NetShareAdd *r);
-WERROR _srvsvc_NetShareDel(pipes_struct *p,
- struct srvsvc_NetShareDel *r);
-WERROR _srvsvc_NetShareDelSticky(pipes_struct *p,
- struct srvsvc_NetShareDelSticky *r);
-WERROR _srvsvc_NetRemoteTOD(pipes_struct *p,
- struct srvsvc_NetRemoteTOD *r);
-WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
- struct srvsvc_NetGetFileSecurity *r);
-WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
- struct srvsvc_NetSetFileSecurity *r);
-WERROR _srvsvc_NetDiskEnum(pipes_struct *p,
- struct srvsvc_NetDiskEnum *r);
-WERROR _srvsvc_NetNameValidate(pipes_struct *p,
- struct srvsvc_NetNameValidate *r);
-WERROR _srvsvc_NetFileClose(pipes_struct *p, struct srvsvc_NetFileClose *r);
-WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r);
-WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, struct srvsvc_NetCharDevGetInfo *r);
-WERROR _srvsvc_NetCharDevControl(pipes_struct *p, struct srvsvc_NetCharDevControl *r);
-WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, struct srvsvc_NetCharDevQEnum *r);
-WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, struct srvsvc_NetCharDevQGetInfo *r);
-WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, struct srvsvc_NetCharDevQSetInfo *r);
-WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, struct srvsvc_NetCharDevQPurge *r);
-WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, struct srvsvc_NetCharDevQPurgeSelf *r);
-WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, struct srvsvc_NetFileGetInfo *r);
-WERROR _srvsvc_NetShareCheck(pipes_struct *p, struct srvsvc_NetShareCheck *r);
-WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, struct srvsvc_NetServerStatisticsGet *r);
-WERROR _srvsvc_NetTransportAdd(pipes_struct *p, struct srvsvc_NetTransportAdd *r);
-WERROR _srvsvc_NetTransportEnum(pipes_struct *p, struct srvsvc_NetTransportEnum *r);
-WERROR _srvsvc_NetTransportDel(pipes_struct *p, struct srvsvc_NetTransportDel *r);
-WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, struct srvsvc_NetSetServiceBits *r);
-WERROR _srvsvc_NetPathType(pipes_struct *p, struct srvsvc_NetPathType *r);
-WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, struct srvsvc_NetPathCanonicalize *r);
-WERROR _srvsvc_NetPathCompare(pipes_struct *p, struct srvsvc_NetPathCompare *r);
-WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p, struct srvsvc_NETRPRNAMECANONICALIZE *r);
-WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, struct srvsvc_NetPRNameCompare *r);
-WERROR _srvsvc_NetShareDelStart(pipes_struct *p, struct srvsvc_NetShareDelStart *r);
-WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct srvsvc_NetShareDelCommit *r);
-WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, struct srvsvc_NetServerTransportAddEx *r);
-WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, struct srvsvc_NetServerSetServiceBitsEx *r);
-WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p, struct srvsvc_NETRDFSGETVERSION *r);
-WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSCREATELOCALPARTITION *r);
-WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSDELETELOCALPARTITION *r);
-WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p, struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *r);
-WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p, struct srvsvc_NETRDFSSETSERVERINFO *r);
-WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSCREATEEXITPOINT *r);
-WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSDELETEEXITPOINT *r);
-WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p, struct srvsvc_NETRDFSMODIFYPREFIX *r);
-WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLOCALVOLUME *r);
-WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r);
-WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r);
-
-/* The following definitions come from rpc_server/srv_svcctl.c */
-
-void svcctl2_get_pipe_fns( struct api_struct **fns, int *n_fns );
-NTSTATUS rpc_svcctl2_init(void);
/* The following definitions come from rpc_server/srv_svcctl_nt.c */
bool init_service_op_table( void );
-WERROR _svcctl_OpenSCManagerW(pipes_struct *p,
- struct svcctl_OpenSCManagerW *r);
-WERROR _svcctl_OpenServiceW(pipes_struct *p,
- struct svcctl_OpenServiceW *r);
-WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct svcctl_CloseServiceHandle *r);
-WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p,
- struct svcctl_GetServiceDisplayNameW *r);
-WERROR _svcctl_QueryServiceStatus(pipes_struct *p,
- struct svcctl_QueryServiceStatus *r);
-WERROR _svcctl_enum_services_status(pipes_struct *p, SVCCTL_Q_ENUM_SERVICES_STATUS *q_u, SVCCTL_R_ENUM_SERVICES_STATUS *r_u);
-WERROR _svcctl_StartServiceW(pipes_struct *p,
- struct svcctl_StartServiceW *r);
-WERROR _svcctl_ControlService(pipes_struct *p,
- struct svcctl_ControlService *r);
-WERROR _svcctl_EnumDependentServicesW(pipes_struct *p,
- struct svcctl_EnumDependentServicesW *r);
-WERROR _svcctl_query_service_status_ex( pipes_struct *p, SVCCTL_Q_QUERY_SERVICE_STATUSEX *q_u, SVCCTL_R_QUERY_SERVICE_STATUSEX *r_u );
-WERROR _svcctl_query_service_config2( pipes_struct *p, SVCCTL_Q_QUERY_SERVICE_CONFIG2 *q_u, SVCCTL_R_QUERY_SERVICE_CONFIG2 *r_u );
-WERROR _svcctl_LockServiceDatabase(pipes_struct *p,
- struct svcctl_LockServiceDatabase *r);
-WERROR _svcctl_UnlockServiceDatabase(pipes_struct *p,
- struct svcctl_UnlockServiceDatabase *r);
-WERROR _svcctl_QueryServiceObjectSecurity(pipes_struct *p,
- struct svcctl_QueryServiceObjectSecurity *r);
-WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p,
- struct svcctl_SetServiceObjectSecurity *r);
-WERROR _svcctl_DeleteService(pipes_struct *p, struct svcctl_DeleteService *r);
-WERROR _svcctl_SetServiceStatus(pipes_struct *p, struct svcctl_SetServiceStatus *r);
-WERROR _svcctl_NotifyBootConfigStatus(pipes_struct *p, struct svcctl_NotifyBootConfigStatus *r);
-WERROR _svcctl_SCSetServiceBitsW(pipes_struct *p, struct svcctl_SCSetServiceBitsW *r);
-WERROR _svcctl_ChangeServiceConfigW(pipes_struct *p, struct svcctl_ChangeServiceConfigW *r);
-WERROR _svcctl_CreateServiceW(pipes_struct *p, struct svcctl_CreateServiceW *r);
-WERROR _svcctl_EnumServicesStatusW(pipes_struct *p, struct svcctl_EnumServicesStatusW *r);
-WERROR _svcctl_QueryServiceConfigW(pipes_struct *p, struct svcctl_QueryServiceConfigW *r);
-WERROR _svcctl_QueryServiceLockStatusW(pipes_struct *p, struct svcctl_QueryServiceLockStatusW *r);
-WERROR _svcctl_GetServiceKeyNameW(pipes_struct *p, struct svcctl_GetServiceKeyNameW *r);
-WERROR _svcctl_SCSetServiceBitsA(pipes_struct *p, struct svcctl_SCSetServiceBitsA *r);
-WERROR _svcctl_ChangeServiceConfigA(pipes_struct *p, struct svcctl_ChangeServiceConfigA *r);
-WERROR _svcctl_CreateServiceA(pipes_struct *p, struct svcctl_CreateServiceA *r);
-WERROR _svcctl_EnumDependentServicesA(pipes_struct *p, struct svcctl_EnumDependentServicesA *r);
-WERROR _svcctl_EnumServicesStatusA(pipes_struct *p, struct svcctl_EnumServicesStatusA *r);
-WERROR _svcctl_OpenSCManagerA(pipes_struct *p, struct svcctl_OpenSCManagerA *r);
-WERROR _svcctl_OpenServiceA(pipes_struct *p, struct svcctl_OpenServiceA *r);
-WERROR _svcctl_QueryServiceConfigA(pipes_struct *p, struct svcctl_QueryServiceConfigA *r);
-WERROR _svcctl_QueryServiceLockStatusA(pipes_struct *p, struct svcctl_QueryServiceLockStatusA *r);
-WERROR _svcctl_StartServiceA(pipes_struct *p, struct svcctl_StartServiceA *r);
-WERROR _svcctl_GetServiceDisplayNameA(pipes_struct *p, struct svcctl_GetServiceDisplayNameA *r);
-WERROR _svcctl_GetServiceKeyNameA(pipes_struct *p, struct svcctl_GetServiceKeyNameA *r);
-WERROR _svcctl_GetCurrentGroupeStateW(pipes_struct *p, struct svcctl_GetCurrentGroupeStateW *r);
-WERROR _svcctl_EnumServiceGroupW(pipes_struct *p, struct svcctl_EnumServiceGroupW *r);
-WERROR _svcctl_ChangeServiceConfig2A(pipes_struct *p, struct svcctl_ChangeServiceConfig2A *r);
-WERROR _svcctl_ChangeServiceConfig2W(pipes_struct *p, struct svcctl_ChangeServiceConfig2W *r);
-WERROR _svcctl_QueryServiceConfig2A(pipes_struct *p, struct svcctl_QueryServiceConfig2A *r);
-WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p, struct svcctl_QueryServiceConfig2W *r);
-WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p, struct svcctl_QueryServiceStatusEx *r);
-WERROR _EnumServicesStatusExA(pipes_struct *p, struct EnumServicesStatusExA *r);
-WERROR _EnumServicesStatusExW(pipes_struct *p, struct EnumServicesStatusExW *r);
-WERROR _svcctl_SCSendTSMessage(pipes_struct *p, struct svcctl_SCSendTSMessage *r);
-
-/* The following definitions come from rpc_server/srv_winreg_nt.c */
-
-WERROR _winreg_CloseKey(pipes_struct *p, struct winreg_CloseKey *r);
-WERROR _winreg_OpenHKLM(pipes_struct *p, struct winreg_OpenHKLM *r);
-WERROR _winreg_OpenHKPD(pipes_struct *p, struct winreg_OpenHKPD *r);
-WERROR _winreg_OpenHKPT(pipes_struct *p, struct winreg_OpenHKPT *r);
-WERROR _winreg_OpenHKCR(pipes_struct *p, struct winreg_OpenHKCR *r);
-WERROR _winreg_OpenHKU(pipes_struct *p, struct winreg_OpenHKU *r);
-WERROR _winreg_OpenHKCU(pipes_struct *p, struct winreg_OpenHKCU *r);
-WERROR _winreg_OpenHKCC(pipes_struct *p, struct winreg_OpenHKCC *r);
-WERROR _winreg_OpenHKDD(pipes_struct *p, struct winreg_OpenHKDD *r);
-WERROR _winreg_OpenHKPN(pipes_struct *p, struct winreg_OpenHKPN *r);
-WERROR _winreg_OpenKey(pipes_struct *p, struct winreg_OpenKey *r);
-WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r);
-WERROR _winreg_QueryInfoKey(pipes_struct *p, struct winreg_QueryInfoKey *r);
-WERROR _winreg_GetVersion(pipes_struct *p, struct winreg_GetVersion *r);
-WERROR _winreg_EnumKey(pipes_struct *p, struct winreg_EnumKey *r);
-WERROR _winreg_EnumValue(pipes_struct *p, struct winreg_EnumValue *r);
-WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, struct winreg_InitiateSystemShutdown *r);
-WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, struct winreg_InitiateSystemShutdownEx *r);
-WERROR _winreg_AbortSystemShutdown(pipes_struct *p, struct winreg_AbortSystemShutdown *r);
-WERROR _winreg_RestoreKey(pipes_struct *p, struct winreg_RestoreKey *r);
-WERROR _winreg_SaveKey(pipes_struct *p, struct winreg_SaveKey *r);
-WERROR _winreg_SaveKeyEx(pipes_struct *p, struct winreg_SaveKeyEx *r);
-WERROR _winreg_CreateKey( pipes_struct *p, struct winreg_CreateKey *r);
-WERROR _winreg_SetValue(pipes_struct *p, struct winreg_SetValue *r);
-WERROR _winreg_DeleteKey(pipes_struct *p, struct winreg_DeleteKey *r);
-WERROR _winreg_DeleteValue(pipes_struct *p, struct winreg_DeleteValue *r);
-WERROR _winreg_GetKeySecurity(pipes_struct *p, struct winreg_GetKeySecurity *r);
-WERROR _winreg_SetKeySecurity(pipes_struct *p, struct winreg_SetKeySecurity *r);
-WERROR _winreg_FlushKey(pipes_struct *p, struct winreg_FlushKey *r);
-WERROR _winreg_UnLoadKey(pipes_struct *p, struct winreg_UnLoadKey *r);
-WERROR _winreg_ReplaceKey(pipes_struct *p, struct winreg_ReplaceKey *r);
-WERROR _winreg_LoadKey(pipes_struct *p, struct winreg_LoadKey *r);
-WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct winreg_NotifyChangeKeyValue *r);
-WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct winreg_QueryMultipleValues *r);
-WERROR _winreg_QueryMultipleValues2(pipes_struct *p, struct winreg_QueryMultipleValues2 *r);
-
-/* The following definitions come from rpc_server/srv_wkssvc_nt.c */
-
-WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r);
-WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r);
-WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r);
-WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r);
-WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r);
-WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r);
-WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r);
-WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r);
-WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r);
-WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r);
-WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r);
-WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r);
-WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r);
-WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r) ;
-WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r);
-WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r);
-WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r);
-WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r);
-WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r);
-WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r);
-WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r);
-WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r);
-WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
- struct wkssvc_NetrJoinDomain2 *r);
-WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
- struct wkssvc_NetrUnjoinDomain2 *r);
-WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r);
-WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r);
-WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r);
-WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r);
-WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r);
-WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r);
-WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r);
/* The following definitions come from rpcclient/cmd_dfs.c */
/* The following definitions come from smbd/aio.c */
-void aio_request_done(uint16_t mid);
-bool aio_finished(void);
void initialize_async_io_handler(void);
bool schedule_aio_read_and_X(connection_struct *conn,
struct smb_request *req,
files_struct *fsp, char *data,
SMB_OFF_T startpos,
size_t numtowrite);
-int process_aio_queue(void);
int wait_for_aio_completion(files_struct *fsp);
void cancel_aio_by_fsp(files_struct *fsp);
-bool aio_finished(void);
-void initialize_async_io_handler(void);
-int process_aio_queue(void);
-bool schedule_aio_read_and_X(connection_struct *conn,
- struct smb_request *req,
- files_struct *fsp, SMB_OFF_T startpos,
- size_t smb_maxcnt);
-bool schedule_aio_write_and_X(connection_struct *conn,
- struct smb_request *req,
- files_struct *fsp, char *data,
- SMB_OFF_T startpos,
- size_t numtowrite);
-void cancel_aio_by_fsp(files_struct *fsp);
-int wait_for_aio_completion(files_struct *fsp);
+void smbd_aio_complete_mid(unsigned int mid);
/* The following definitions come from smbd/blocking.c */
uint32_t msg_type,
struct server_id server_id,
DATA_BLOB *data);
+NTSTATUS delete_all_streams(connection_struct *conn, const char *fname);
/* The following definitions come from smbd/conn.c */
/* The following definitions come from smbd/dnsregister.c */
-void dns_register_close(struct dns_reg_state **dns_state_ptr);
-void dns_register_smbd(struct dns_reg_state ** dns_state_ptr,
- unsigned port,
- int *maxfd,
- fd_set *listen_set,
- struct timeval *timeout);
-bool dns_register_smbd_reply(struct dns_reg_state *dns_state,
- fd_set *lfds, struct timeval *timeout);
+bool smbd_setup_mdns_registration(struct tevent_context *ev,
+ TALLOC_CTX *mem_ctx,
+ uint16_t port);
/* The following definitions come from smbd/dosmode.c */
mode_t unix_mode(connection_struct *conn, int dosmode, const char *fname,
const char *inherit_from_dir);
uint32 dos_mode_msdfs(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf);
+int dos_attributes_to_stat_dos_flags(uint32_t dosmode);
uint32 dos_mode(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf);
int file_set_dosmode(connection_struct *conn, const char *fname,
uint32 dosmode, SMB_STRUCT_STAT *st,
const char *parent_dir,
bool newfile);
-int file_ntimes(connection_struct *conn, const char *fname, const struct timespec ts[2]);
+int file_ntimes(connection_struct *conn, const char *fname,
+ struct smb_file_time *ft);
bool set_sticky_write_time_path(connection_struct *conn, const char *fname,
struct file_id fileid, const struct timespec mtime);
bool set_sticky_write_time_fsp(struct files_struct *fsp, const struct timespec mtime);
char **pp_saved_last_component,
SMB_STRUCT_STAT *pst);
NTSTATUS check_name(connection_struct *conn, const char *name);
+int get_real_filename(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name);
/* The following definitions come from smbd/files.c */
/* The following definitions come from smbd/mangle_hash.c */
-struct mangle_fns *mangle_hash_init(void);
+const struct mangle_fns *mangle_hash_init(void);
/* The following definitions come from smbd/mangle_hash2.c */
-struct mangle_fns *mangle_hash2_init(void);
-struct mangle_fns *posix_mangle_init(void);
+const struct mangle_fns *mangle_hash2_init(void);
+const struct mangle_fns *posix_mangle_init(void);
/* The following definitions come from smbd/map_username.c */
uint32_t access_desired,
uint32_t *access_granted);
NTSTATUS fd_close(files_struct *fsp);
+void change_file_owner_to_parent(connection_struct *conn,
+ const char *inherit_from_dir,
+ files_struct *fsp);
+NTSTATUS change_dir_owner_to_parent(connection_struct *conn,
+ const char *inherit_from_dir,
+ const char *fname,
+ SMB_STRUCT_STAT *psbuf);
+bool is_executable(const char *fname);
+bool is_stat_open(uint32 access_mask);
+bool request_timed_out(struct timeval request_time,
+ struct timeval timeout);
+bool open_match_attributes(connection_struct *conn,
+ const char *path,
+ uint32 old_dos_attr,
+ uint32 new_dos_attr,
+ mode_t existing_unx_mode,
+ mode_t new_unx_mode,
+ mode_t *returned_unx_mode);
+NTSTATUS fcb_or_dos_open(struct smb_request *req,
+ connection_struct *conn,
+ files_struct *fsp_to_dup_into,
+ const char *fname,
+ struct file_id id,
+ uint16 file_pid,
+ uint16 vuid,
+ uint32 access_mask,
+ uint32 share_access,
+ uint32 create_options);
bool map_open_params_to_ntcreate(const char *fname, int deny_mode, int open_func,
uint32 *paccess_mask,
uint32 *pshare_mode,
uint32_t msg_type,
struct server_id server_id,
DATA_BLOB *data);
+struct case_semantics_state;
+struct case_semantics_state *set_posix_case_semantics(TALLOC_CTX *mem_ctx,
+ connection_struct *conn);
NTSTATUS create_file_default(connection_struct *conn,
struct smb_request *req,
uint16_t root_dir_fid,
const char *fname,
- bool is_dos_path,
+ uint32_t create_file_flags,
uint32_t access_mask,
uint32_t share_access,
uint32_t create_disposition,
files_struct **result,
int *pinfo,
SMB_STRUCT_STAT *psbuf);
+NTSTATUS get_relative_fid_filename(connection_struct *conn,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname, char **new_fname);
/* The following definitions come from smbd/oplock.c */
int32 get_number_of_exclusive_open_oplocks(void);
-bool oplock_message_waiting(fd_set *fds);
-void process_kernel_oplocks(struct messaging_context *msg_ctx, fd_set *pfds);
+void break_kernel_oplock(struct messaging_context *msg_ctx, files_struct *fsp);
bool set_file_oplock(files_struct *fsp, int oplock_type);
void release_file_oplock(files_struct *fsp);
bool remove_oplock(files_struct *fsp);
bool downgrade_oplock(files_struct *fsp);
-int oplock_notify_fd(void);
void reply_to_oplock_break_requests(files_struct *fsp);
void release_level_2_oplocks_on_change(files_struct *fsp);
void share_mode_entry_to_message(char *msg, const struct share_mode_entry *e);
/* The following definitions come from smbd/oplock_irix.c */
-struct kernel_oplocks *irix_init_kernel_oplocks(void) ;
+struct kernel_oplocks *irix_init_kernel_oplocks(TALLOC_CTX *mem_ctx) ;
/* The following definitions come from smbd/oplock_linux.c */
void linux_set_lease_capability(void);
int linux_set_lease_sighandler(int fd);
int linux_setlease(int fd, int leasetype);
-struct kernel_oplocks *linux_init_kernel_oplocks(void) ;
+struct kernel_oplocks *linux_init_kernel_oplocks(TALLOC_CTX *mem_ctx) ;
/* The following definitions come from smbd/password.c */
/* The following definitions come from smbd/pipes.c */
+NTSTATUS open_np_file(struct smb_request *smb_req, const char *name,
+ struct files_struct **pfsp);
void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req);
void reply_pipe_write(struct smb_request *req);
void reply_pipe_write_and_X(struct smb_request *req);
/* The following definitions come from smbd/process.c */
+void smbd_setup_sig_term_handler(void);
+void smbd_setup_sig_hup_handler(void);
bool srv_send_smb(int fd, char *buffer, bool do_encrypt);
int srv_set_message(char *buf,
int num_words,
void *private_data),
void *private_data);
NTSTATUS allow_new_trans(struct trans_state *list, int mid);
-void respond_to_all_remaining_local_messages(void);
-bool create_outbuf(TALLOC_CTX *mem_ctx, const char *inbuf, char **outbuf,
- uint8_t num_words, uint32_t num_bytes);
void reply_outbuf(struct smb_request *req, uint8 num_words, uint32 num_bytes);
const char *smb_fn_name(int type);
void add_to_common_flags2(uint32 v);
void remove_from_common_flags2(uint32 v);
void construct_reply_common_req(struct smb_request *req, char *outbuf);
+size_t req_wct_ofs(struct smb_request *req);
void chain_reply(struct smb_request *req);
+bool req_is_in_chain(struct smb_request *req);
void check_reload(time_t t);
void smbd_process(void);
NTSTATUS unlink_internals(connection_struct *conn, struct smb_request *req,
uint32 dirtype, const char *name_in, bool has_wild);
void reply_unlink(struct smb_request *req);
-void send_file_readbraw(connection_struct *conn,
- files_struct *fsp,
- SMB_OFF_T startpos,
- size_t nread,
- ssize_t mincount);
void reply_readbraw(struct smb_request *req);
void reply_lockread(struct smb_request *req);
void reply_read(struct smb_request *req);
int smbd_server_fd(void);
int get_client_fd(void);
-int client_get_tcp_info(struct sockaddr_in *server, struct sockaddr_in *client);
struct event_context *smbd_event_context(void);
struct messaging_context *smbd_messaging_context(void);
struct memcache *smbd_memcache(void);
const struct nt_user_token *token,
const char **list);
bool user_ok_token(const char *username, const char *domain,
- struct nt_user_token *token, int snum);
+ const struct nt_user_token *token, int snum);
bool is_share_read_only_for_token(const char *username,
const char *domain,
- struct nt_user_token *token,
+ const struct nt_user_token *token,
connection_struct *conn);
/* The following definitions come from smbd/srvstr.c */
/* The following definitions come from smbd/trans2.c */
uint64_t smb_roundup(connection_struct *conn, uint64_t val);
-uint64_t get_allocation_size(connection_struct *conn, files_struct *fsp, const SMB_STRUCT_STAT *sbuf);
NTSTATUS get_ea_value(TALLOC_CTX *mem_ctx, connection_struct *conn,
files_struct *fsp, const char *fname,
const char *ea_name, struct ea_struct *pea);
files_struct *fsp,
const char *fname,
const SMB_STRUCT_STAT *psbuf,
- struct timespec ts[2],
+ struct smb_file_time *ft,
bool setting_write_time);
void reply_findclose(struct smb_request *req);
void reply_findnclose(struct smb_request *req);
NTSTATUS nss_info_template_init( void );
+/* Misc protos */
+
+struct async_req *wb_trans_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct wb_context *wb_ctx, bool need_priv,
+ const struct winbindd_request *wb_req);
+NTSTATUS wb_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_response **presponse);
+struct wb_context *wb_context_init(TALLOC_CTX *mem_ctx);
+
+
#endif /* _PROTO_H_ */