cool! created higher-order function table for agent redirection.
[kai/samba-autobuild/.git] / source3 / include / proto.h
index fc7653009f5097ada23abc63b1ccc8de5262fe30..5e423e37266aa6f2b3a7d0982be9c720c49c2fad 100644 (file)
@@ -138,6 +138,12 @@ BOOL allow_access(char *deny_list,char *allow_list,
                  char *cname,char *caddr);
 BOOL check_access(int sock, char *allow_list, char *deny_list);
 
+/*The following definitions come from  lib/agent.c  */
+
+void init_sock_redir(struct vagent_ops*va);
+void free_sock_redir(struct vagent_ops*va);
+void start_agent(struct vagent_ops *va);
+
 /*The following definitions come from  lib/bitmap.c  */
 
 struct bitmap *bitmap_allocate(int n);
@@ -295,12 +301,16 @@ char *rep_inet_ntoa(struct in_addr ip);
 
 /*The following definitions come from  lib/sids.c  */
 
+struct sid_map* add_sidmap_to_array(uint32 *len, struct sid_map ***array,
+                               const struct sid_map *name);
 void get_sam_domain_name(void);
 BOOL get_member_domain_sid(void);
 void generate_wellknown_sids(void);
+BOOL create_sidmap_table(void);
 BOOL generate_sam_sid(char *domain_name, DOM_SID *sid);
 BOOL map_domain_name_to_sid(DOM_SID *sid, char **nt_domain);
 BOOL map_domain_sid_to_name(DOM_SID *sid, char *nt_domain);
+BOOL map_domain_sid_to_any_dc(DOM_SID *sid, char *dc_name);
 BOOL split_domain_name(const char *fullname, char *domain, char *name);
 BOOL enumtrustdoms(char ***doms, uint32 *num_entries);
 BOOL enumdomains(char ***doms, uint32 *num_entries);
@@ -481,6 +491,7 @@ int set_maxfiles(int requested_max);
 void reg_get_subkey(char *full_keyname, char *key_name, char *subkey_name);
 BOOL reg_split_key(const char *full_keyname, uint32 *reg_type, char *key_name);
 BOOL become_user_permanently(uid_t uid, gid_t gid);
+char *get_trusted_serverlist(const char* domain);
 
 /*The following definitions come from  lib/util_array.c  */
 
@@ -608,6 +619,7 @@ int open_socket_out(int type, struct in_addr *addr, int port ,int timeout);
 void reset_globals_after_fork(void);
 char *client_name(int fd);
 char *client_addr(int fd);
+int open_pipe_sock(char *path);
 
 /*The following definitions come from  lib/util_status.c  */
 
@@ -671,7 +683,8 @@ void unistr2_free(UNISTR2 *name);
 
 /*The following definitions come from  libsmb/clientgen.c  */
 
-void copy_user_creds(struct user_credentials *to, const struct user_credentials *from);
+void copy_user_creds(struct user_credentials *to,
+                               const struct user_credentials *from);
 int cli_set_port(struct cli_state *cli, int port);
 char *cli_errstr(struct cli_state *cli);
 void cli_safe_smb_errstr(struct cli_state *cli, char *msg, size_t len);
@@ -760,10 +773,17 @@ void cli_sockopt(struct cli_state *cli, char *options);
 uint16 cli_setpid(struct cli_state *cli, uint16 pid);
 BOOL cli_reestablish_connection(struct cli_state *cli);
 BOOL cli_establish_connection(struct cli_state *cli, 
-                               char *dest_host, struct in_addr *dest_ip,
+                               const char *dest_host, struct in_addr *dest_ip,
                                struct nmb_name *calling, struct nmb_name *called,
                                char *service, char *service_type,
                                BOOL do_shutdown, BOOL do_tcon);
+BOOL cli_connect_auth(struct cli_state *cli,
+                               const char* desthost,
+                               struct in_addr *dest_ip,
+                               const struct user_credentials *usr);
+BOOL cli_connect_servers_auth(struct cli_state *cli,
+                               char *p,
+                               const struct user_credentials *usr);
 BOOL cli_connect_serverlist(struct cli_state *cli, char *p);
 int cli_printjob_del(struct cli_state *cli, int job);
 int cli_print_queue(struct cli_state *cli, 
@@ -774,6 +794,7 @@ BOOL cli_message_start(struct cli_state *cli, char *host, char *username,
 BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp);
 BOOL cli_message_end(struct cli_state *cli, int grp);
 BOOL cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail);
+BOOL get_any_dc_name(const char *domain, char *srv_name);
 
 /*The following definitions come from  libsmb/clienttrust.c  */
 
@@ -824,6 +845,8 @@ BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2);
 BOOL send_packet(struct packet_struct *p);
 struct packet_struct *receive_packet(int fd,enum packet_type type,int t);
 void sort_query_replies(char *data, int n, struct in_addr ip);
+BOOL read_nmb_sock(int c, struct nmb_state *con);
+int get_nmb_sock(void);
 
 /*The following definitions come from  libsmb/nterr.c  */
 
@@ -839,6 +862,7 @@ BOOL remote_password_change(const char *remote_machine, const char *user_name,
 /*The following definitions come from  libsmb/pwd_cache.c  */
 
 void pwd_init(struct pwd_info *pwd);
+BOOL pwd_is_nullpwd(const struct pwd_info *pwd);
 void pwd_obfuscate_key(struct pwd_info *pwd, uint32 int_key, char *str_key);
 BOOL pwd_compare(struct pwd_info *pwd1, struct pwd_info *pwd2);
 void pwd_read(struct pwd_info *pwd, char *passwd_report, BOOL do_encrypt);
@@ -1795,8 +1819,6 @@ void init_connections(void);
 void free_connections(void);
 void cli_connection_free(struct cli_connection *con);
 void cli_connection_unlink(struct cli_connection *con);
-BOOL cli_connection_init_list(char* servers, const char* pipe_name,
-                               struct cli_connection **con);
 BOOL cli_connection_init(const char* srv_name, const char* pipe_name,
                                struct cli_connection **con);
 BOOL cli_connection_getsrv(const char* srv_name, const char* pipe_name,
@@ -1833,11 +1855,10 @@ BOOL event_readeventlog(POLICY_HND *hnd,
 
 /*The following definitions come from  rpc_client/cli_login.c  */
 
-uint32 cli_nt_setup_creds( char* servers, const char* myhostname,
+uint32 cli_nt_setup_creds( const char* srv_name, const char* myhostname,
                                const char* trust_acct,
                                unsigned char trust_pwd[16],
-                               uint16 sec_chan,
-                               char *srv_name);
+                               uint16 sec_chan);
 BOOL cli_nt_srv_pwset(const char* srv_name, const char* myhostname,
                                const char* trust_acct,
                                unsigned char *new_hashof_trust_pwd,
@@ -1856,7 +1877,7 @@ BOOL cli_nt_login_network(const char* srv_name, const char* myhostname,
                                NET_USER_INFO_3 *user_info3);
 BOOL cli_nt_logoff(const char* srv_name, const char* myhostname,
                                NET_ID_INFO_CTR *ctr);
-BOOL net_sam_sync(char* servers, const char* myhostname,
+BOOL net_sam_sync(const char* srv_name, const char* myhostname,
                                const char* trust_acct,
                                uchar trust_passwd[16],
                                SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS],
@@ -1866,7 +1887,7 @@ BOOL net_sam_sync(char* servers, const char* myhostname,
 /*The following definitions come from  rpc_client/cli_lsarpc.c  */
 
 BOOL get_domain_sids(const char *myname,
-                               DOM_SID *sid3, DOM_SID *sid5, char *servers);
+                               DOM_SID *sid3, DOM_SID *sid5, char *domain);
 BOOL get_trust_sid_and_domain(const char* myname, char *server,
                                DOM_SID *sid,
                                char *domain, size_t len);
@@ -2173,10 +2194,9 @@ BOOL svc_change_svc_cfg( POLICY_HND *hnd,
 
 void init_cli_use(void);
 void free_cli_use(void);
-struct cli_state *cli_net_use_addlist(char* servers,
-                               const struct user_credentials *usr_creds);
 struct cli_state *cli_net_use_add(const char* srv_name,
-                               const struct user_credentials *usr_creds);
+                               const struct user_credentials *usr_creds,
+                               BOOL redir);
 BOOL cli_net_use_del(const char* srv_name,
                                const struct user_credentials *usr_creds,
                                BOOL force_close,
@@ -4153,7 +4173,7 @@ struct cli_state *server_cryptkey(void);
 BOOL server_validate(char *user, char *domain, 
                     char *pass, int passlen,
                     char *ntpass, int ntpasslen);
-BOOL domain_client_validate( char *user, char *domain, char *server_list,
+BOOL domain_client_validate( char *user, char *domain, 
                                char *acct_name, uint16 acct_type,
                                char *smb_apasswd, int smb_apasslen, 
                                char *smb_ntpasswd, int smb_ntpasslen,