Instead of handing back a string (which might be a DNS name or an IP
[tprouty/samba.git] / source / include / proto.h
index 8fcad544f425bebfbbd571e691e3314c08203f20..e0ff1283686a8d9a5a1e74565565794b735eb0dd 100644 (file)
@@ -155,9 +155,6 @@ int ms_fnmatch(char *pattern, char *string);
 BOOL receive_msrpc(int fd, prs_struct *data, unsigned int timeout);
 BOOL msrpc_send(int fd, prs_struct *ps);
 BOOL msrpc_receive(int fd, prs_struct *ps);
-void ncalrpc_l_shutdown(struct msrpc_local *msrpc);
-struct msrpc_local *ncalrpc_l_initialise(struct msrpc_local *msrpc,
-                                         const vuser_key * key);
 BOOL msrpc_connect(struct msrpc_state *msrpc, const char *pipe_name);
 void msrpc_init_creds(struct msrpc_state *msrpc, const struct user_creds *usr);
 void msrpc_close_socket(struct msrpc_state *msrpc);
@@ -170,8 +167,6 @@ struct msrpc_state *msrpc_initialise(struct msrpc_state *msrpc, uint32 pid);
 void msrpc_shutdown(struct msrpc_state *msrpc);
 BOOL msrpc_establish_connection(struct msrpc_state *msrpc,
                const char *pipe_name);
-BOOL ncalrpc_l_establish_connection(struct msrpc_local *msrpc,
-                                    const char *pipe_name);
 
 /*The following definitions come from  lib/msrpc_use.c  */
 
@@ -417,11 +412,8 @@ void file_lines_slashcont(char **lines);
 
 /*The following definitions come from  lib/util_seaccess.c  */
 
-BOOL winbind_uid_to_sid(uid_t uid, DOM_SID *sid);
-BOOL winbind_gid_to_sid(gid_t gid, DOM_SID *sid);
-BOOL se_access_check(SEC_DESC *sd, uid_t uid, gid_t gid, int ngroups,
-                    gid_t *groups, uint32 acc_desired, 
-                    uint32 *acc_granted, uint32 *status);
+BOOL se_access_check(SEC_DESC *sd, struct current_user *user,
+                    uint32 acc_desired, uint32 *acc_granted, uint32 *status);
 
 /*The following definitions come from  lib/util_sec.c  */
 
@@ -601,6 +593,13 @@ void split_at_last_component_w(smb_ucs2_t *path, smb_ucs2_t *front, smb_ucs2_t s
 smb_ucs2_t *octal_string_w(int i);
 smb_ucs2_t *string_truncate_w(smb_ucs2_t *s, size_t length);
 
+/*The following definitions come from  lib/wins_srv.c  */
+
+BOOL wins_srv_load_list( char *src );
+struct in_addr wins_srv_ip( void );
+void wins_srv_died( struct in_addr boothill_ip );
+unsigned long wins_srv_count( void );
+
 /*The following definitions come from  libsmb/cliconnect.c  */
 
 BOOL cli_session_setup(struct cli_state *cli, 
@@ -1263,9 +1262,18 @@ void initiate_myworkgroup_startup(struct subnet_record *subrec, struct work_reco
 void dump_workgroups(BOOL force_write);
 void expire_workgroups_and_servers(time_t t);
 
-/*The following definitions come from  nsswitch/common.c  */
+/*The following definitions come from  nsswitch/wb_client.c  */
 
-void init_request(struct winbindd_request *req,int rq_type);
+BOOL winbind_lookup_name(char *name, DOM_SID *sid, uint8 *name_type);
+BOOL winbind_lookup_sid(DOM_SID *sid, fstring dom_name, fstring name, 
+                       uint8 *name_type);
+BOOL winbind_uid_to_sid(uid_t uid, DOM_SID *sid);
+BOOL winbind_gid_to_sid(gid_t gid, DOM_SID *sid);
+
+/*The following definitions come from  nsswitch/wb_common.c  */
+
+void init_request(struct winbindd_request *request, int request_type);
+void init_response(struct winbindd_response *response);
 void close_sock(void);
 int write_sock(void *buffer, int count);
 int read_reply(struct winbindd_response *response);
@@ -1671,7 +1679,7 @@ BOOL get_specific_param(NT_PRINTER_INFO_LEVEL printer, uint32 level,
                         fstring value, uint8 **data, uint32 *type, uint32 *len);
 uint32 nt_printing_setsec(char *printername, SEC_DESC_BUF *secdesc_ctr);
 BOOL nt_printing_getsec(char *printername, SEC_DESC_BUF **secdesc_ctr);
-BOOL print_access_check(struct current_user *user, int snum, 
+BOOL print_access_check(struct current_user *user, int snum,
                        uint32 required_access);
 
 /*The following definitions come from  printing/pcap.c  */
@@ -1734,10 +1742,13 @@ BOOL cli_connection_init(const char *srv_name, const char *pipe_name,
 BOOL cli_connection_init_auth(const char *srv_name, const char *pipe_name,
                               struct cli_connection **con,
                               cli_auth_fns * auth, void *auth_creds);
-struct cli_auth_fns *cli_conn_get_authfns(struct cli_connection *con);
+struct _cli_auth_fns *cli_conn_get_authfns(struct cli_connection *con);
 void *cli_conn_get_auth_creds(struct cli_connection *con);
+BOOL rpc_hnd_pipe_req(const POLICY_HND * hnd, uint8 op_num,
+                      prs_struct * data, prs_struct * rdata);
 BOOL rpc_con_pipe_req(struct cli_connection *con, uint8 op_num,
                       prs_struct * data, prs_struct * rdata);
+BOOL rpc_con_ok(struct cli_connection *con);
 
 /*The following definitions come from  rpc_client/cli_login.c  */
 
@@ -1747,8 +1758,8 @@ BOOL cli_nt_login_interactive(struct cli_state *cli, char *domain, char *usernam
                               uint32 smb_userid_low, char *password,
                               NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3);
 BOOL cli_nt_login_network(struct cli_state *cli, char *domain, char *username, 
-                          uint32 smb_userid_low, char lm_chal[8], char lm_chal_resp[24],
-                          char nt_chal_resp[24],
+                          uint32 smb_userid_low, char lm_chal[8], 
+                         char *lm_chal_resp, char *nt_chal_resp,
                           NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3);
 BOOL cli_nt_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr);
 
@@ -1876,9 +1887,42 @@ BOOL do_samr_close(struct cli_state *cli, POLICY_HND *hnd);
 
 /*The following definitions come from  rpc_client/cli_spoolss.c  */
 
+uint32 spoolss_enum_printerdrivers(const char * srv_name,
+                                const char *environment,
+                                uint32 level,
+                             NEW_BUFFER *buffer, uint32 offered,
+                             uint32 *needed, uint32 *returned);
 uint32 spoolss_enum_printers(uint32 flags, fstring srv_name, uint32 level,
                              NEW_BUFFER *buffer, uint32 offered,
                              uint32 *needed, uint32 *returned);
+uint32 spoolss_enum_jobs(const POLICY_HND *hnd, uint32 firstjob, uint32 numofjobs,
+                         uint32 level, NEW_BUFFER *buffer, uint32 offered,
+                         uint32 *needed, uint32 *returned);
+uint32 spoolss_enum_printerdata(const POLICY_HND *hnd, uint32 idx,
+                        uint32 *valuelen, uint16 *value, uint32 *rvaluelen,
+                        uint32 *type,
+                        uint32 *datalen, uint8 *data, uint32 *rdatalen);
+uint32 spoolss_getprinter(const POLICY_HND *hnd, uint32 level,
+                             NEW_BUFFER *buffer, uint32 offered,
+                             uint32 *needed);
+uint32 spoolss_getprinterdriver(const POLICY_HND *hnd,
+                                const char *environment, uint32 level,
+                                NEW_BUFFER *buffer, uint32 offered,
+                                uint32 *needed);
+BOOL spoolss_open_printer_ex(  const char *printername,
+                         const char *datatype, uint32 access_required,
+                         const char *station,  const char *username,
+                        POLICY_HND *hnd);
+BOOL spoolss_closeprinter(POLICY_HND *hnd);
+uint32 spoolss_getprinterdata(const POLICY_HND *hnd, const UNISTR2 *valuename,
+                        uint32 in_size,
+                        uint32 *type,
+                        uint32 *out_size,
+                        uint8 *data,
+                        uint32 *needed);
+uint32 spoolss_getprinterdriverdir(fstring srv_name, fstring env_name, uint32 level,
+                             NEW_BUFFER *buffer, uint32 offered,
+                             uint32 *needed);
 
 /*The following definitions come from  rpc_client/cli_srvsvc.c  */
 
@@ -1925,7 +1969,32 @@ BOOL do_wks_query_info(struct cli_state *cli,
 
 /*The following definitions come from  rpc_client/msrpc_spoolss.c  */
 
-BOOL msrpc_spoolss_enum_printers(char* srv_name, uint32 flags, uint32 level, PRINTER_INFO_CTR ctr);
+BOOL msrpc_spoolss_enum_printers(char* srv_name, uint32 flags, 
+                                uint32 level, PRINTER_INFO_CTR ctr);
+uint32 msrpc_spoolss_getprinterdata( const char* printer_name,
+                                const char* station,
+                                const char* user_name,
+                                const char* value_name,
+                                uint32 *type,
+                                NEW_BUFFER *buffer,
+                                void *fn);
+BOOL msrpc_spoolss_enum_jobs( const char* printer_name,
+                                const char* station, const char* user_name,
+                                uint32 level,
+                                void ***ctr, JOB_INFO_FN(fn));
+BOOL msrpc_spoolss_enum_printerdata( const char* printer_name, 
+               const char* station, const char* user_name );
+BOOL msrpc_spoolss_getprinter( const char* printer_name, const uint32 level,
+                const char* station, const char* user_name,
+                PRINTER_INFO_CTR ctr);
+BOOL msrpc_spoolss_getprinterdriver( const char* printer_name,
+                const char *environment, const uint32 level,
+                const char* station, const char* user_name,
+                PRINTER_DRIVER_CTR ctr);
+BOOL msrpc_spoolss_enumprinterdrivers( const char* srv_name,
+                const char *environment, const uint32 level,
+                PRINTER_DRIVER_CTR ctr);
+BOOL msrpc_spoolss_getprinterdriverdir(char* srv_name, char* env_name, uint32 level, DRIVER_DIRECTORY_CTR ctr);
 
 /*The following definitions come from  rpc_client/ncacn_np_use.c  */
 
@@ -1940,15 +2009,6 @@ struct ncacn_np *ncacn_np_use_add(const char *pipe_name,
                                   const struct ntuser_creds *ntc,
                                   BOOL reuse, BOOL *is_new_connection);
 
-/*The following definitions come from  rpc_client/ncalrpc_l_use.c  */
-
-struct msrpc_local *ncalrpc_l_use_add(const char *pipe_name,
-                                      const vuser_key * key,
-                                      BOOL reuse, BOOL *is_new);
-BOOL ncalrpc_l_use_del(const char *pipe_name,
-                       const vuser_key * key,
-                       BOOL force_close, BOOL *connection_closed);
-
 /*The following definitions come from  rpc_parse/parse_creds.c  */
 
 BOOL make_creds_unix(CREDS_UNIX *r_u, const char* user_name,
@@ -1989,7 +2049,7 @@ BOOL create_user_creds( prs_struct *ps,
                                const char* name, 
                                uint16 version, uint16 command,
                                uint32 pid,
-                               const struct user_creds *usr);
+                               struct user_creds *usr);
 
 /*The following definitions come from  rpc_parse/parse_dfs.c  */
 
@@ -2165,8 +2225,8 @@ void init_id_info2(NET_ID_INFO_2 *id, char *domain_name,
                                uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high,
                                char *user_name, char *wksta_name,
                                unsigned char lm_challenge[8],
-                               unsigned char lm_chal_resp[24],
-                               unsigned char nt_chal_resp[24]);
+                               unsigned char *lm_chal_resp,
+                               unsigned char *nt_chal_resp);
 void init_sam_info(DOM_SAM_INFO *sam,
                                char *logon_srv, char *comp_name, DOM_CRED *clnt_cred,
                                DOM_CRED *rtn_cred, uint16 logon_level,
@@ -2243,6 +2303,7 @@ BOOL prs_string2(BOOL charmode, char *name, prs_struct *ps, int depth, STRING2 *
 BOOL prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 *str);
 BOOL prs_unistr3(BOOL charmode, char *name, UNISTR3 *str, prs_struct *ps, int depth);
 BOOL prs_unistr(char *name, prs_struct *ps, int depth, UNISTR *str);
+BOOL prs_unistr(char *name, prs_struct *ps, int depth, UNISTR *str);
 BOOL prs_string(char *name, prs_struct *ps, int depth, char *str, int len, int max_buf_size);
 BOOL prs_uint16_pre(char *name, prs_struct *ps, int depth, uint16 *data16, uint32 *offset);
 BOOL prs_uint16_post(char *name, prs_struct *ps, int depth, uint16 *data16,
@@ -2250,9 +2311,6 @@ BOOL prs_uint16_post(char *name, prs_struct *ps, int depth, uint16 *data16,
 BOOL prs_uint32_pre(char *name, prs_struct *ps, int depth, uint32 *data32, uint32 *offset);
 BOOL prs_uint32_post(char *name, prs_struct *ps, int depth, uint32 *data32,
                                uint32 ptr_uint32, uint32 data_size);
-void prs_free_data(prs_struct *buf);
-BOOL prs_realloc_data(prs_struct *buf, size_t new_size);
-char *prs_data(const prs_struct *buf, uint32 offset);
 int tdb_prs_store(TDB_CONTEXT *tdb, char *keystr, prs_struct *ps);
 int tdb_prs_fetch(TDB_CONTEXT *tdb, char *keystr, prs_struct *ps);
 
@@ -2608,6 +2666,10 @@ BOOL make_spoolss_q_open_printer_ex(SPOOL_Q_OPEN_PRINTER_EX *q_u,
 BOOL spoolss_io_q_open_printer_ex(char *desc, SPOOL_Q_OPEN_PRINTER_EX *q_u, prs_struct *ps, int depth);
 void free_spoolss_q_open_printer_ex(SPOOL_Q_OPEN_PRINTER_EX *q_u);
 BOOL spoolss_io_r_open_printer_ex(char *desc, SPOOL_R_OPEN_PRINTER_EX *r_u, prs_struct *ps, int depth);
+BOOL make_spoolss_q_getprinterdata(SPOOL_Q_GETPRINTERDATA *q_u,
+                                const POLICY_HND *handle,
+                                const UNISTR2 *valuename,
+                                uint32 size);
 BOOL spoolss_io_q_getprinterdata(char *desc, SPOOL_Q_GETPRINTERDATA *q_u, prs_struct *ps, int depth);
 BOOL spoolss_io_r_getprinterdata(char *desc, SPOOL_R_GETPRINTERDATA *r_u, prs_struct *ps, int depth);
 BOOL make_spoolss_q_closeprinter(SPOOL_Q_CLOSEPRINTER *q_u, POLICY_HND *hnd);
@@ -2703,6 +2765,11 @@ BOOL spoolss_io_q_schedulejob(char *desc, SPOOL_Q_SCHEDULEJOB *q_u, prs_struct *
 BOOL spoolss_io_r_setjob(char *desc, SPOOL_R_SETJOB *r_u, prs_struct *ps, int depth);
 BOOL spoolss_io_q_setjob(char *desc, SPOOL_Q_SETJOB *q_u, prs_struct *ps, int depth);
 BOOL new_spoolss_io_r_enumprinterdrivers(char *desc, SPOOL_R_ENUMPRINTERDRIVERS *r_u, prs_struct *ps, int depth);
+BOOL make_spoolss_q_enumprinterdrivers(SPOOL_Q_ENUMPRINTERDRIVERS *q_u,
+                                const char *name,
+                                const char *environment,
+                                uint32 level,
+                                NEW_BUFFER *buffer, uint32 offered);
 BOOL spoolss_io_q_enumprinterdrivers(char *desc, SPOOL_Q_ENUMPRINTERDRIVERS *q_u, prs_struct *ps, int depth);
 BOOL spoolss_io_q_enumforms(char *desc, SPOOL_Q_ENUMFORMS *q_u, prs_struct *ps, int depth);
 BOOL new_spoolss_io_r_enumforms(char *desc, SPOOL_R_ENUMFORMS *r_u, prs_struct *ps, int depth);
@@ -2732,6 +2799,9 @@ BOOL uni_2_asc_printer_driver_6(SPOOL_PRINTER_DRIVER_INFO_LEVEL_6 *uni,
                                 NT_PRINTER_DRIVER_INFO_LEVEL_6 **asc);
 BOOL uni_2_asc_printer_info_2(const SPOOL_PRINTER_INFO_LEVEL_2 *uni,
                               NT_PRINTER_INFO_LEVEL_2  **asc);
+BOOL make_spoolss_q_getprinterdriverdir(SPOOL_Q_GETPRINTERDRIVERDIR *q_u,
+                                fstring servername, fstring env_name, uint32 level,
+                                NEW_BUFFER *buffer, uint32 offered);
 BOOL spoolss_io_q_getprinterdriverdir(char *desc, SPOOL_Q_GETPRINTERDRIVERDIR *q_u, prs_struct *ps, int depth);
 BOOL spoolss_io_r_getprinterdriverdir(char *desc, SPOOL_R_GETPRINTERDRIVERDIR *r_u, prs_struct *ps, int depth);
 BOOL spoolss_io_r_enumprintprocessors(char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth);
@@ -2876,8 +2946,6 @@ BOOL api_netdfs_rpc(pipes_struct *p);
 /*The following definitions come from  rpc_server/srv_lsa.c  */
 
 #if OLD_NTDOMAIN
-BOOL winbind_lookup_sid(DOM_SID *sid, fstring dom_name, fstring name, 
-                       uint8 *name_type);
 BOOL api_ntlsa_rpc(pipes_struct *p);
 #endif
 
@@ -3091,6 +3159,14 @@ BOOL api_wkssvc_rpc(pipes_struct *p);
 /*The following definitions come from  rpcclient/cmd_spoolss.c  */
 
 uint32 cmd_spoolss_enum_printers(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_enum_printerdata(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_getprinter(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_enum_jobs(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_open_printer_ex(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_getprinterdata(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_getprinterdriver(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_enumprinterdrivers(struct client_info *info, int argc, char *argv[]);
+uint32 cmd_spoolss_getprinterdriverdir(struct client_info *info, int argc, char *argv[]);
 
 /*The following definitions come from  rpcclient/display_sec.c  */