Another UNICODE issue - this time BUFFER2 was being transmitted incorrectly.
[samba.git] / source3 / include / proto.h
index f31d17884276ecf0a0981e8a4703fc0f8aa7e624..1c91b92716741df04eb562df8c152f297b890152 100644 (file)
@@ -447,11 +447,12 @@ BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
 BOOL is_myname(char *s);
 void set_remote_arch(enum remote_arch_types type);
 enum remote_arch_types get_remote_arch(void);
+char *align4(char *q, char *base);
 char *align2(char *q, char *base);
 void out_ascii(FILE *f, unsigned char *buf,int len);
 void out_data(FILE *f,char *buf1,int len, int per_line);
 void print_asc(int level, unsigned char *buf,int len);
-void dump_data(int level,char *buf1,int len);
+void dump_data(int level,char *buf1, int len);
 char *tab_depth(int depth);
 int str_checksum(const char *s);
 void zero_free(void *p, size_t size);
@@ -738,6 +739,7 @@ void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24], uchar nt_owf[24])
 
 /*The following definitions come from  libsmb/smbdes.c  */
 
+void smbhash(unsigned char *out, const uchar *in, unsigned char *key, int forw);
 void E_P16(unsigned char *p14,unsigned char *p16);
 void E_P24(unsigned char *p21, unsigned char *c8, unsigned char *p24);
 void D_P16(unsigned char *p14, unsigned char *in, unsigned char *out);
@@ -756,6 +758,7 @@ void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
 void NTLMSSPOWFencrypt(uchar passwd[8], uchar *ntlmchalresp, uchar p24[24]);
 void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24);
 BOOL make_oem_passwd_hash(char data[516], const char *passwd, uchar old_pw_hash[16], BOOL unicode);
+BOOL nt_decrypt_string2(STRING2 *out, const STRING2 *in, char nt_hash[16]);
 
 /*The following definitions come from  libsmb/smberr.c  */
 
@@ -1351,6 +1354,11 @@ int lp_defaultcase(int );
 int lp_minprintspace(int );
 int lp_printing(int );
 char lp_magicchar(int );
+char *lp_mysql_host(void);
+char *lp_mysql_user(void);
+char *lp_mysql_passfile(void);
+char *lp_mysql_db(void);
+char *lp_mysql_table(void);
 BOOL lp_add_home(char *pszHomename, int iDefaultService, char *pszHomedir);
 int lp_add_service(char *pszService, int iDefaultService);
 BOOL lp_add_printer(char *pszPrintername, int iDefaultService);
@@ -1489,11 +1497,12 @@ struct smb_passdb_ops *file_initialise_password_db(void);
 
 /*The following definitions come from  passdb/smbpasschange.c  */
 
-BOOL local_password_change(char *user_name, BOOL trust_account, BOOL add_user,
-                          BOOL enable_user, BOOL disable_user, BOOL set_no_password,
-                          char *new_passwd, 
-                          char *err_str, size_t err_str_len,
-                          char *msg_str, size_t msg_str_len);
+BOOL local_password_change(char *user_name,
+                               BOOL add_user,
+                               uint16 acb_info, uint16 acb_mask,
+                               char *new_passwd, 
+                               char *err_str, size_t err_str_len,
+                               char *msg_str, size_t msg_str_len);
 
 /*The following definitions come from  passdb/smbpassfile.c  */
 
@@ -1538,8 +1547,11 @@ void load_printers(void);
 
 /*The following definitions come from  rpc_client/cli_login.c  */
 
-BOOL cli_nt_setup_creds(struct cli_state *cli, uint16 fnum, unsigned char mach_pwd[16]);
-BOOL cli_nt_srv_pwset(struct cli_state *cli, uint16 fnum, unsigned char *new_hashof_mach_pwd);
+BOOL cli_nt_setup_creds(struct cli_state *cli, uint16 fnum,
+                               const char* trust_acct,
+                               unsigned char trust_pwd[16],
+                               uint16 sec_chan);
+BOOL cli_nt_srv_pwset(struct cli_state *cli, uint16 fnum, unsigned char *new_hashof_trust_pwd);
 BOOL cli_nt_login_interactive(struct cli_state *cli, uint16 fnum, char *domain, char *username, 
                               uint32 luid_low, char *password,
                               NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3);
@@ -1554,6 +1566,12 @@ BOOL cli_nt_logoff(struct cli_state *cli, uint16 fnum, NET_ID_INFO_CTR *ctr);
 BOOL lsa_open_policy(struct cli_state *cli, uint16 fnum,
                        char *server_name, POLICY_HND *hnd,
                        BOOL sec_qos);
+BOOL lsa_open_secret(struct cli_state *cli, uint16 fnum,
+                    POLICY_HND *hnd_pol, char *secret_name, uint32 des_access,
+                    POLICY_HND *hnd_secret);
+BOOL lsa_query_secret(struct cli_state *cli, uint16 fnum,
+                     POLICY_HND *pol, STRING2 *enc_secret,
+                     NTTIME *last_update);
 BOOL lsa_lookup_names(struct cli_state *cli, uint16 fnum,
                        POLICY_HND *hnd,
                        int num_names,
@@ -1576,8 +1594,9 @@ BOOL lsa_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd);
 /*The following definitions come from  rpc_client/cli_netlogon.c  */
 
 BOOL cli_net_logon_ctrl2(struct cli_state *cli, uint16 nt_pipe_fnum, uint32 status_level);
-BOOL cli_net_auth2(struct cli_state *cli, uint16 nt_pipe_fnum, uint16 sec_chan, 
-                   uint32 neg_flags, DOM_CHAL *srv_chal);
+BOOL cli_net_auth2(struct cli_state *cli, uint16 nt_pipe_fnum,
+                               const char *trust_acct, uint16 sec_chan, 
+                               uint32 neg_flags, DOM_CHAL *srv_chal);
 BOOL cli_net_req_chal(struct cli_state *cli, uint16 nt_pipe_fnum, DOM_CHAL *clnt_chal, DOM_CHAL *srv_chal);
 BOOL cli_net_srv_pwset(struct cli_state *cli, uint16 nt_pipe_fnum, uint8 hashed_mach_pwd[16]);
 BOOL cli_net_sam_logon(struct cli_state *cli, uint16 nt_pipe_fnum, NET_ID_INFO_CTR *ctr, 
@@ -1641,6 +1660,10 @@ BOOL do_reg_shutdown(struct cli_state *cli, uint16 fnum,
 
 /*The following definitions come from  rpc_client/cli_samr.c  */
 
+BOOL create_samr_domain_user(struct cli_state *cli, uint16 fnum, 
+                               POLICY_HND *pol_open_domain,
+                               const char *acct_name, uint16 acb_info,
+                               uint32 *rid);
 BOOL create_samr_domain_alias(struct cli_state *cli, uint16 fnum, 
                                POLICY_HND *pol_open_domain,
                                const char *acct_name, const char *acct_desc,
@@ -1709,6 +1732,10 @@ BOOL samr_add_aliasmem(struct cli_state *cli, uint16 fnum,
                                POLICY_HND *alias_pol, DOM_SID *sid);
 BOOL samr_delete_dom_alias(struct cli_state *cli, uint16 fnum, 
                                POLICY_HND *alias_pol);
+BOOL samr_create_dom_user(struct cli_state *cli, uint16 fnum, 
+                               POLICY_HND *domain_pol, const char *acct_name,
+                               uint32 unk_0, uint32 unk_1,
+                               POLICY_HND *user_pol, uint32 *rid);
 BOOL samr_create_dom_alias(struct cli_state *cli, uint16 fnum, 
                                POLICY_HND *domain_pol, const char *acct_name,
                                POLICY_HND *alias_pol, uint32 *rid);
@@ -1729,7 +1756,8 @@ BOOL samr_create_dom_group(struct cli_state *cli, uint16 fnum,
 BOOL samr_set_groupinfo(struct cli_state *cli, uint16 fnum, 
                                POLICY_HND *group_pol, GROUP_INFO_CTR *ctr);
 BOOL samr_open_domain(struct cli_state *cli, uint16 fnum, 
-                               POLICY_HND *connect_pol, uint32 flags, DOM_SID *sid,
+                               POLICY_HND *connect_pol, uint32 ace_perms,
+                               DOM_SID *sid,
                                POLICY_HND *domain_pol);
 BOOL samr_query_lookup_domain(struct cli_state *cli, uint16 fnum, 
                              POLICY_HND *pol, const char *dom_name,
@@ -1839,6 +1867,15 @@ void lsa_io_q_open_pol2(char *desc,  LSA_Q_OPEN_POL2 *r_q, prs_struct *ps, int d
 void lsa_io_r_open_pol2(char *desc,  LSA_R_OPEN_POL2 *r_p, prs_struct *ps, int depth);
 void make_q_query(LSA_Q_QUERY_INFO *q_q, POLICY_HND *hnd, uint16 info_class);
 void lsa_io_q_query(char *desc,  LSA_Q_QUERY_INFO *q_q, prs_struct *ps, int depth);
+void make_q_open_secret(LSA_Q_OPEN_SECRET *q_o, POLICY_HND *pol_hnd,
+                       char *secret_name, uint32 desired_access);
+void lsa_io_q_open_secret(char *desc, LSA_Q_OPEN_SECRET *q_o, prs_struct *ps, int depth);
+void lsa_io_r_open_secret(char *desc, LSA_R_OPEN_SECRET *r_o, prs_struct *ps, int depth);
+void lsa_io_secret_value(char *desc, LSA_SECRET_VALUE *value, prs_struct *ps, int depth);
+void lsa_io_secret_info(char *desc, LSA_SECRET_INFO *info, prs_struct *ps, int depth);
+void make_q_query_secret(LSA_Q_QUERY_SECRET *q_q, POLICY_HND *pol);
+void lsa_io_q_query_secret(char *desc, LSA_Q_QUERY_SECRET *q_q, prs_struct *ps, int depth);
+void lsa_io_r_query_secret(char *desc, LSA_R_QUERY_SECRET *r_q, prs_struct *ps, int depth);
 void lsa_io_q_enum_trust_dom(char *desc,  LSA_Q_ENUM_TRUST_DOM *q_e, prs_struct *ps, int depth);
 void make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM *r_e,
                            uint32 enum_context, char *domain_name, DOM_SID *domain_sid,
@@ -1871,6 +1908,8 @@ void make_dom_sid2(DOM_SID2 *sid2, DOM_SID *sid);
 void smb_io_dom_sid2(char *desc,  DOM_SID2 *sid, prs_struct *ps, int depth);
 void make_str_hdr(STRHDR *hdr, int max_len, int len, uint32 buffer);
 void smb_io_strhdr(char *desc,  STRHDR *hdr, prs_struct *ps, int depth);
+void make_strhdr2(STRHDR2 *hdr, uint32 max_len, uint32 len, uint32 buffer);
+void smb_io_strhdr2(char *desc, STRHDR2 *hdr, prs_struct *ps, int depth);
 void make_uni_hdr(UNIHDR *hdr, int max_len, int len, uint32 buffer);
 void smb_io_unihdr(char *desc,  UNIHDR *hdr, prs_struct *ps, int depth);
 void make_buf_hdr(BUFHDR *hdr, int max_len, int len);
@@ -1887,7 +1926,7 @@ void make_buffer3_str(BUFFER3 *str, char *buf, int len);
 void make_buffer3_hex(BUFFER3 *str, char *buf);
 void make_buffer3_bytes(BUFFER3 *str, uint8 *buf, int len);
 void smb_io_buffer3(char *desc,  BUFFER3 *buf3, prs_struct *ps, int depth);
-void make_buffer2(BUFFER2 *str, uint8 *buf, int len);
+void make_buffer2(BUFFER2 *str, const char *buf, int len);
 void smb_io_buffer2(char *desc,  BUFFER2 *buf2, uint32 buffer, prs_struct *ps, int depth);
 void make_buf_unistr2(UNISTR2 *str, uint32 *ptr, char *buf);
 void copy_unistr2(UNISTR2 *str, UNISTR2 *from);
@@ -1900,8 +1939,9 @@ void smb_io_dom_rid2(char *desc,  DOM_RID2 *rid2, prs_struct *ps, int depth);
 void make_dom_rid3(DOM_RID3 *rid3, uint32 rid, uint8 type);
 void smb_io_dom_rid3(char *desc,  DOM_RID3 *rid3, prs_struct *ps, int depth);
 void make_dom_rid4(DOM_RID4 *rid4, uint16 unknown, uint16 attr, uint32 rid);
-void make_log_info(DOM_LOG_INFO *log, char *logon_srv, char *acct_name,
-               uint16 sec_chan, char *comp_name);
+void make_log_info(DOM_LOG_INFO *log,
+               const char *logon_srv, const char *acct_name,
+               uint16 sec_chan, const char *comp_name);
 void smb_io_log_info(char *desc,  DOM_LOG_INFO *log, prs_struct *ps, int depth);
 void smb_io_chal(char *desc,  DOM_CHAL *chal, prs_struct *ps, int depth);
 void smb_io_cred(char *desc,  DOM_CRED *cred, prs_struct *ps, int depth);
@@ -1941,7 +1981,8 @@ void make_q_req_chal(NET_Q_REQ_CHAL *q_c,
 void net_io_q_req_chal(char *desc,  NET_Q_REQ_CHAL *q_c, prs_struct *ps, int depth);
 void net_io_r_req_chal(char *desc,  NET_R_REQ_CHAL *r_c, prs_struct *ps, int depth);
 void make_q_auth_2(NET_Q_AUTH_2 *q_a,
-               char *logon_srv, char *acct_name, uint16 sec_chan, char *comp_name,
+               const char *logon_srv, const char *acct_name,
+               uint16 sec_chan, const char *comp_name,
                DOM_CHAL *clnt_chal, uint32 clnt_flgs);
 void net_io_q_auth_2(char *desc,  NET_Q_AUTH_2 *q_a, prs_struct *ps, int depth);
 void net_io_r_auth_2(char *desc,  NET_R_AUTH_2 *r_a, prs_struct *ps, int depth);
@@ -2375,6 +2416,12 @@ void make_samr_q_open_user(SAMR_Q_OPEN_USER *q_u,
                                uint32 unk_0, uint32 rid);
 void samr_io_q_open_user(char *desc,  SAMR_Q_OPEN_USER *q_u, prs_struct *ps, int depth);
 void samr_io_r_open_user(char *desc,  SAMR_R_OPEN_USER *r_u, prs_struct *ps, int depth);
+void make_samr_q_create_user(SAMR_Q_CREATE_USER *q_u,
+                               POLICY_HND *pol,
+                               const char *name,
+                               uint16 acb_info, uint32 unk_1);
+void samr_io_q_create_user(char *desc,  SAMR_Q_CREATE_USER *q_u, prs_struct *ps, int depth);
+void samr_io_r_create_user(char *desc,  SAMR_R_CREATE_USER *r_u, prs_struct *ps, int depth);
 void make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
                                POLICY_HND *hnd, uint16 switch_value);
 void samr_io_q_query_userinfo(char *desc,  SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth);
@@ -2561,6 +2608,8 @@ void svc_io_q_open_service(char *desc, SVC_Q_OPEN_SERVICE *q_u, prs_struct *ps,
 void make_svc_r_open_service(SVC_R_OPEN_SERVICE *r_u, POLICY_HND *hnd,
                                uint32 status)  ;
 void svc_io_r_open_service(char *desc,  SVC_R_OPEN_SERVICE *r_u, prs_struct *ps, int depth);
+void svc_io_q_start_service(char *desc, SVC_Q_START_SERVICE *q_s, prs_struct *ps, int depth);
+void svc_io_r_start_service(char *desc,  SVC_R_START_SERVICE *r_s, prs_struct *ps, int depth);
 void make_svc_query_svc_cfg(QUERY_SERVICE_CONFIG *q_u,
                                uint32 service_type, uint32 start_type,
                                uint32 error_control,
@@ -2586,6 +2635,10 @@ void make_svc_r_query_svc_config(SVC_R_QUERY_SVC_CONFIG *r_c,
                                QUERY_SERVICE_CONFIG *cfg,
                                uint32 buf_size);
 void svc_io_r_query_svc_config(char *desc,  SVC_R_QUERY_SVC_CONFIG *r_u, prs_struct *ps, int depth);
+void svc_io_q_query_disp_name(char *desc, SVC_Q_QUERY_DISP_NAME *q_u, prs_struct *ps, int depth);
+void make_svc_r_query_disp_name(SVC_R_QUERY_DISP_NAME *r_d, 
+                               char *disp_name, uint32 status);
+void svc_io_r_query_disp_name(char *desc, SVC_R_QUERY_DISP_NAME *r_u, prs_struct *ps, int depth);
 void make_svc_q_close(SVC_Q_CLOSE *q_c, POLICY_HND *hnd);
 void svc_io_q_close(char *desc,  SVC_Q_CLOSE *q_u, prs_struct *ps, int depth);
 void svc_io_r_close(char *desc,  SVC_R_CLOSE *r_u, prs_struct *ps, int depth);
@@ -2693,10 +2746,12 @@ BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data);
 void cmd_lsa_query_info(struct client_info *info);
 void cmd_lsa_lookup_names(struct client_info *info);
 void cmd_lsa_lookup_sids(struct client_info *info);
+void cmd_lsa_query_secret(struct client_info *info);
 
 /*The following definitions come from  rpcclient/cmd_netlogon.c  */
 
 void cmd_netlogon_login_test(struct client_info *info);
+void cmd_netlogon_domain_test(struct client_info *info);
 
 /*The following definitions come from  rpcclient/cmd_reg.c  */
 
@@ -2718,6 +2773,7 @@ void cmd_sam_lookup_domain(struct client_info *info);
 void cmd_sam_del_aliasmem(struct client_info *info);
 void cmd_sam_delete_dom_alias(struct client_info *info);
 void cmd_sam_add_aliasmem(struct client_info *info);
+void cmd_sam_create_dom_user(struct client_info *info);
 void cmd_sam_create_dom_alias(struct client_info *info);
 void cmd_sam_del_groupmem(struct client_info *info);
 void cmd_sam_delete_dom_group(struct client_info *info);