Converted the browser database to a ubi_dLinkList. This should reduce code
[samba.git] / source3 / include / proto.h
index 096552720536c4101b90b7a509d4cb1e23ba497c..8adfb70d38cb559b54cf853a9d020f2da71a71ae 100644 (file)
@@ -1,3 +1,5 @@
+#ifndef _PROTO_H_
+#define _PROTO_H_
 /* This file is automatically generated with "make proto". DO NOT EDIT */
 
 
@@ -41,7 +43,7 @@ BOOL change_lanman_password(struct smb_passwd *smbpw, unsigned char *pass1, unsi
 BOOL check_oem_password(char *user, unsigned char *data,
                         struct smb_passwd **psmbpw, char *new_passwd,
                         int new_passwd_size);
-BOOL change_oem_password(struct smb_passwd *smbpw, char *new_passwd, BOOL flag);
+BOOL change_oem_password(struct smb_passwd *smbpw, char *new_passwd, BOOL override);
 
 /*The following definitions come from  client.c  */
 
@@ -198,6 +200,11 @@ void generate_random_buffer( unsigned char *out, int len, BOOL re_seed);
 
 char *getsmbpass(char *prompt)    ;
 
+/*The following definitions come from  groupname.c  */
+
+void load_groupname_map(void);
+void map_gid_to_sid( gid_t gid, DOM_SID *psid);
+
 /*The following definitions come from  interface.c  */
 
 void load_interfaces(void);
@@ -223,6 +230,10 @@ int reply_trans(char *inbuf,char *outbuf, int size, int bufsize);
 void interpret_coding_system(char *str);
 void initialize_multibyte_vectors( int client_codepage);
 
+/*The following definitions come from  ldap.c  */
+
+struct passdb_ops *ldap_initialize_password_db(void);
+
 /*The following definitions come from  lib/rpc/client/cli_login.c  */
 
 BOOL cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]);
@@ -246,6 +257,7 @@ BOOL cli_net_srv_pwset(struct cli_state *cli, uint8 hashed_mach_pwd[16]);
 BOOL cli_net_sam_logon(struct cli_state *cli, NET_ID_INFO_CTR *ctr, 
                        NET_USER_INFO_3 *user_info3);
 BOOL cli_net_sam_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr);
+BOOL change_trust_account_password( char *domain, char *remote_machine_list);
 
 /*The following definitions come from  lib/rpc/client/cli_pipe.c  */
 
@@ -277,8 +289,8 @@ 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 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, char *domain_sid,
-                               uint32 status);
+                           uint32 enum_context, char *domain_name, DOM_SID *domain_sid,
+                           uint32 status);
 void lsa_io_r_enum_trust_dom(char *desc,  LSA_R_ENUM_TRUST_DOM *r_e, prs_struct *ps, int depth);
 void make_lsa_q_close(LSA_Q_CLOSE *q_c, POLICY_HND *hnd);
 void lsa_io_q_close(char *desc,  LSA_Q_CLOSE *q_c, prs_struct *ps, int depth);
@@ -300,9 +312,8 @@ void smb_io_lookup_level(char *desc, LOOKUP_LEVEL *level, prs_struct *ps, int de
 uint32 get_enum_hnd(ENUM_HND *enh);
 void make_enum_hnd(ENUM_HND *enh, uint32 hnd);
 void smb_io_enum_hnd(char *desc,  ENUM_HND *hnd, prs_struct *ps, int depth);
-void make_dom_sid(DOM_SID *sid, char *str_sid);
 void smb_io_dom_sid(char *desc,  DOM_SID *sid, prs_struct *ps, int depth);
-void make_dom_sid2(DOM_SID2 *sid, char *str_sid);
+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);
@@ -439,7 +450,7 @@ void make_net_user_info3(NET_USER_INFO_3 *usr,
        char *logon_srv,
        char *logon_dom,
 
-       char *dom_sid,
+       DOM_SID *dom_sid,
        char *other_sids);
 void net_io_user_info3(char *desc,  NET_USER_INFO_3 *usr, prs_struct *ps, int depth);
 void net_io_q_sam_logon(char *desc,  NET_Q_SAM_LOGON *q_l, prs_struct *ps, int depth);
@@ -542,7 +553,7 @@ void make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd);
 void samr_io_q_close_hnd(char *desc,  SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth);
 void samr_io_r_close_hnd(char *desc,  SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int depth);
 void make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
-                               POLICY_HND *connect_pol, uint32 rid, char *sid);
+                               POLICY_HND *connect_pol, uint32 rid, DOM_SID *sid);
 void samr_io_q_open_domain(char *desc,  SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth);
 void samr_io_r_open_domain(char *desc,  SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth);
 void make_samr_q_unknown_8(SAMR_Q_UNKNOWN_8 *q_u,
@@ -551,7 +562,7 @@ void samr_io_q_unknown_8(char *desc,  SAMR_Q_UNKNOWN_8 *q_u, prs_struct *ps, int
 void make_samr_q_unknown_3(SAMR_Q_UNKNOWN_3 *q_u,
                                POLICY_HND *user_pol, uint16 switch_value);
 void samr_io_q_unknown_3(char *desc,  SAMR_Q_UNKNOWN_3 *q_u, prs_struct *ps, int depth);
-void make_dom_sid3(DOM_SID3 *sid3, uint16 unk_0, uint16 unk_1, char *sid);
+void make_dom_sid3(DOM_SID3 *sid3, uint16 unk_0, uint16 unk_1, DOM_SID *sid);
 void sam_io_dom_sid3(char *desc,  DOM_SID3 *sid3, prs_struct *ps, int depth);
 void make_sam_sid_stuff(SAM_SID_STUFF *stf,
                                uint16 unknown_2, uint16 unknown_3,
@@ -825,6 +836,13 @@ void srv_io_q_net_srv_set_info(char *desc,  SRV_Q_NET_SRV_SET_INFO *q_n, prs_str
 void make_srv_r_net_srv_set_info(SRV_R_NET_SRV_SET_INFO *srv,
                                uint32 switch_value, SRV_INFO_CTR *ctr, uint32 status);
 void srv_io_r_net_srv_set_info(char *desc,  SRV_R_NET_SRV_SET_INFO *r_n, prs_struct *ps, int depth);
+void srv_io_q_net_remote_tod(char *desc,  SRV_Q_NET_REMOTE_TOD *q_n, prs_struct *ps, int depth);
+void srv_io_time_of_day_info(char *desc, TIME_OF_DAY_INFO  *tod, prs_struct *ps, int depth);
+void make_time_of_day_info(TIME_OF_DAY_INFO *tod, uint32 elapsedt, uint32 msecs,
+                           uint32 hours, uint32 mins, uint32 secs, uint32 hunds,
+                          uint32 zone, uint32 tintervals, uint32 day,
+                          uint32 month, uint32 year, uint32 weekday);
+void srv_io_r_net_remote_tod(char *desc, SRV_R_NET_REMOTE_TOD *r_n, prs_struct *ps, int depth);
 
 /*The following definitions come from  lib/rpc/parse/parse_wks.c  */
 
@@ -889,21 +907,19 @@ BOOL api_srvsvc_rpc(pipes_struct *p, prs_struct *data);
 
 /*The following definitions come from  lib/rpc/server/srv_util.c  */
 
-int make_dom_gids(char *gids_str, DOM_GID *gids);
-void get_domain_user_groups(char *domain_groups, char *user);
+BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid);
+int make_dom_gids(char *gids_str, DOM_GID **ppgids);
 BOOL create_rpc_reply(pipes_struct *p,
                                uint32 data_start, uint32 data_end);
 BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds,
                                prs_struct *data);
+void get_domain_user_groups(char *domain_groups, char *user);
 uint32 lookup_group_name(uint32 rid, char *group_name, uint32 *type);
 uint32 lookup_alias_name(uint32 rid, char *alias_name, uint32 *type);
 uint32 lookup_user_name(uint32 rid, char *user_name, uint32 *type);
 uint32 lookup_group_rid(char *group_name, uint32 *rid);
 uint32 lookup_alias_rid(char *alias_name, uint32 *rid);
 uint32 lookup_user_rid(char *user_name, uint32 *rid);
-BOOL name_to_rid(char *user_name, uint32 *u_rid, uint32 *g_rid);
-uint32 uid_to_user_rid(uint32 uid);
-uint32 gid_to_group_rid(uint32 gid);
 
 /*The following definitions come from  lib/rpc/server/srv_wkssvc.c  */
 
@@ -931,6 +947,7 @@ char *lp_passwordserver(void);
 char *lp_name_resolve_order(void);
 char *lp_workgroup(void);
 char *lp_username_map(void);
+char *lp_groupname_map(void);
 char *lp_character_set(void);
 char *lp_logon_script(void);
 char *lp_logon_path(void);
@@ -948,10 +965,31 @@ char *lp_driverfile(void);
 char *lp_domain_sid(void);
 char *lp_domain_other_sids(void);
 char *lp_domain_groups(void);
+char *lp_domain_admin_group(void);
+char *lp_domain_guest_group(void);
 char *lp_domain_admin_users(void);
 char *lp_domain_guest_users(void);
 char *lp_domain_hostsallow(void);
 char *lp_domain_hostsdeny(void);
+char *lp_ldap_server(void);
+char *lp_ldap_suffix(void);
+char *lp_ldap_filter(void);
+char *lp_ldap_root(void);
+char *lp_ldap_rootpasswd(void);
+int lp_ssl_version(void);
+char *lp_ssl_hosts(void);
+char *lp_ssl_hosts_resign(void);
+char *lp_ssl_cacertdir(void);
+char *lp_ssl_cacertfile(void);
+char *lp_ssl_cert(void);
+char *lp_ssl_privkey(void);
+char *lp_ssl_client_cert(void);
+char *lp_ssl_client_privkey(void);
+char *lp_ssl_ciphers(void);
+BOOL lp_ssl_enabled(void);
+BOOL lp_ssl_reqClientCert(void);
+BOOL lp_ssl_reqServerCert(void);
+BOOL lp_ssl_compatibility(void);
 BOOL lp_dns_proxy(void);
 BOOL lp_wins_support(void);
 BOOL lp_we_are_a_wins_server(void);
@@ -1005,6 +1043,8 @@ int lp_client_code_page(void);
 int lp_announce_as(void);
 int lp_lm_announce(void);
 int lp_lm_interval(void);
+int lp_machine_password_timeout(void);
+int lp_ldap_port(void);
 char *lp_preexec(int );
 char *lp_postexec(int );
 char *lp_rootpreexec(int );
@@ -1022,6 +1062,8 @@ char *lp_lpqcommand(int );
 char *lp_lprmcommand(int );
 char *lp_lppausecommand(int );
 char *lp_lpresumecommand(int );
+char *lp_queuepausecommand(int );
+char *lp_queueresumecommand(int );
 char *lp_printername(int );
 char *lp_printerdriver(int );
 char *lp_hostsallow(int );
@@ -1107,8 +1149,9 @@ void lp_set_name_resolve_order(char *new_order);
 
 /*The following definitions come from  locking.c  */
 
-BOOL is_locked(int fnum,int cnum,uint32 count,uint32 offset);
-BOOL do_lock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ecode);
+BOOL is_locked(int fnum,int cnum,uint32 count,uint32 offset, int lock_type);
+BOOL do_lock(int fnum,int cnum,uint32 count,uint32 offset,int lock_type,
+             int *eclass,uint32 *ecode);
 BOOL do_unlock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ecode);
 BOOL locking_init(int read_only);
 BOOL locking_end(void);
@@ -1137,7 +1180,7 @@ BOOL is_8_3( char *fname, BOOL check_case );
 int str_checksum( char *s );
 void reset_mangled_cache( void );
 BOOL check_mangled_cache( char *s );
-void mangle_name_83( char *s );
+void mangle_name_83( char *s, int s_len );
 BOOL name_map_mangle( char *OutName, BOOL need83, int snum );
 
 /*The following definitions come from  md4.c  */
@@ -1196,6 +1239,10 @@ BOOL getlmhostsent( FILE *fp, char *name, int *name_type, struct in_addr *ipaddr
 void endlmhosts(FILE *fp);
 BOOL resolve_name(char *name, struct in_addr *return_ip);
 
+/*The following definitions come from  nisppass.c  */
+
+struct passdb_ops *nisplus_initialize_password_db(void);
+
 /*The following definitions come from  nmbd.c  */
 
 BOOL reload_services(BOOL test);
@@ -1216,20 +1263,20 @@ void unbecome_local_master_success(struct subnet_record *subrec,
                              struct in_addr released_ip);
 void unbecome_local_master_fail(struct subnet_record *subrec, struct response_record *rrec,
                        struct nmb_name *fail_name);
-void release_1d_name( struct subnet_record *subrec, char *workgroup_name);
-void unbecome_local_master_browser(struct subnet_record *subrec, struct work_record *work);
+void unbecome_local_master_browser(struct subnet_record *subrec, struct work_record *work,
+                                   BOOL force_new_election);
 void become_local_master_browser(struct subnet_record *subrec, struct work_record *work);
 void set_workgroup_local_master_browser_name( struct work_record *work, char *newname);
 
 /*The following definitions come from  nmbd_browserdb.c  */
 
-void remove_lmb_browser_entry(struct browse_cache_record *browc);
-void update_browser_death_time(struct browse_cache_record *browc);
-struct browse_cache_record *create_browser_in_lmb_cache(char *work_name, char *browser_name, 
-                                                        struct in_addr ip);
+void update_browser_death_time( struct browse_cache_record *browc );
+struct browse_cache_record *create_browser_in_lmb_cache( char *work_name, 
+                                                         char *browser_name, 
+                                                         struct in_addr ip );
 struct browse_cache_record *find_browser_in_lmb_cache( char *browser_name );
-void expire_lmb_browsers(time_t t);
-void remove_workgroup_lmb_browsers(char *work_group);
+void expire_lmb_browsers( time_t t );
+void remove_workgroup_lmb_browsers( char *work_group );
 
 /*The following definitions come from  nmbd_browsesync.c  */
 
@@ -1290,32 +1337,42 @@ void refresh_my_names(time_t t);
 /*The following definitions come from  nmbd_namelistdb.c  */
 
 void set_samba_nb_type(void);
-BOOL ms_browser_name(char *name, int type);
-void remove_name_from_namelist(struct subnet_record *subrec, 
-                               struct name_record *namerec);
-struct name_record *find_name_on_subnet(struct subnet_record *subrec,
-                                      struct nmb_name *nmbname, BOOL self_only);
-struct name_record *find_name_for_remote_broadcast_subnet( struct nmb_name *nmbname, 
-                                                           BOOL self_only);
-void update_name_ttl(struct name_record *namerec, int ttl);
-struct name_record *add_name_to_subnet(struct subnet_record *subrec,
-               char *name, int type, uint16 nb_flags, int ttl, 
-                enum name_source source, int num_ips, struct in_addr *iplist);
+BOOL ms_browser_name( char *name, int type );
+void remove_name_from_namelist( struct subnet_record *subrec, 
+                                struct name_record   *namerec );
+struct name_record *find_name_on_subnet( struct subnet_record *subrec,
+                                         struct nmb_name      *nmbname,
+                                         BOOL                  self_only );
+struct name_record *find_name_for_remote_broadcast_subnet(
+                                                   struct nmb_name *nmbname,
+                                                   BOOL             self_only );
+void update_name_ttl( struct name_record *namerec, int ttl );
+struct name_record *add_name_to_subnet( struct subnet_record *subrec,
+                                        char                 *name,
+                                        int                   type,
+                                        uint16                nb_flags,
+                                        int                   ttl,
+                                        enum name_source      source,
+                                        int                   num_ips,
+                                        struct in_addr       *iplist);
 void standard_success_register(struct subnet_record *subrec, 
                              struct userdata_struct *userdata,
                              struct nmb_name *nmbname, uint16 nb_flags, int ttl,
                              struct in_addr registered_ip);
-void standard_fail_register(struct subnet_record *subrec, 
-                             struct response_record *rrec, struct nmb_name *nmbname);
-BOOL find_ip_in_name_record(struct name_record *namerec, struct in_addr ip);
-void add_ip_to_name_record(struct name_record *namerec, struct in_addr new_ip);
-void remove_ip_from_name_record( struct name_record *namerec, struct in_addr remove_ip);
-void standard_success_release(struct subnet_record *subrec, 
-                             struct userdata_struct *userdata,
-                             struct nmb_name *nmbname, struct in_addr released_ip);
+void standard_fail_register( struct subnet_record   *subrec,
+                             struct response_record *rrec,
+                             struct nmb_name        *nmbname );
+BOOL find_ip_in_name_record( struct name_record *namerec, struct in_addr ip );
+void add_ip_to_name_record( struct name_record *namerec, struct in_addr new_ip );
+void remove_ip_from_name_record( struct name_record *namerec,
+                                 struct in_addr      remove_ip );
+void standard_success_release( struct subnet_record   *subrec,
+                               struct userdata_struct *userdata,
+                               struct nmb_name        *nmbname,
+                               struct in_addr          released_ip );
 void expire_names_on_subnet(struct subnet_record *subrec, time_t t);
 void expire_names(time_t t);
-void add_samba_names_to_subnet(struct subnet_record *subrec);
+void add_samba_names_to_subnet( struct subnet_record *subrec );
 void dump_all_namelists(void);
 
 /*The following definitions come from  nmbd_namequery.c  */
@@ -1528,7 +1585,7 @@ char *namestr(struct nmb_name *n);
 struct packet_struct *copy_packet(struct packet_struct *packet);
 void free_packet(struct packet_struct *packet);
 struct packet_struct *read_packet(int fd,enum packet_type packet_type);
-void make_nmb_name(struct nmb_name *n,char *name,int type,char *this_scope);
+void make_nmb_name( struct nmb_name *n, char *name, int type, char *this_scope );
 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);
@@ -1537,24 +1594,83 @@ struct packet_struct *receive_packet(int fd,enum packet_type type,int t);
 
 char *get_nt_error_msg(uint32 nt_code);
 
+/*The following definitions come from  nttrans.c  */
+
+int reply_ntcreate_and_X(char *inbuf,char *outbuf,int length,int bufsize);
+int reply_ntcancel(char *inbuf,char *outbuf,int length,int bufsize);
+int reply_nttranss(char *inbuf,char *outbuf,int length,int bufsize);
+int reply_nttrans(char *inbuf,char *outbuf,int length,int bufsize);
+
 /*The following definitions come from  params.c  */
 
 BOOL pm_process( char *FileName,
                  BOOL (*sfunc)(char *),
                  BOOL (*pfunc)(char *, char *) );
 
+/*The following definitions come from  passdb.c  */
+
+BOOL initialize_password_db(void);
+struct smb_passwd *iterate_getsmbpwuid(uid_t smb_userid);
+struct smb_passwd *iterate_getsmbpwnam(char *name);
+void *startsmbpwent(BOOL update);
+void endsmbpwent(void *vp);
+struct smb_passwd *getsmbpwent(void *vp);
+unsigned long getsmbpwpos(void *vp);
+BOOL setsmbpwpos(void *vp, unsigned long tok);
+BOOL add_smbpwd_entry(struct smb_passwd *newpwd);
+BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override);
+struct smb_passwd *getsmbpwnam(char *name);
+struct smb_passwd *getsmbpwuid(uid_t smb_userid);
+struct sam_passwd *iterate_getsam21pwnam(char *name);
+struct sam_passwd *iterate_getsam21pwrid(uint32 rid);
+struct sam_passwd *iterate_getsam21pwuid(uid_t uid);
+struct sam_disp_info *getsamdispnam(char *name);
+struct sam_disp_info *getsamdisprid(uint32 rid);
+struct sam_disp_info *getsamdispent(void *vp);
+struct sam_passwd *getsam21pwent(void *vp);
+BOOL add_sam21pwd_entry(struct sam_passwd *newpwd);
+BOOL mod_sam21pwd_entry(struct sam_passwd* pwd, BOOL override);
+struct sam_passwd *getsam21pwnam(char *name);
+struct sam_passwd *getsam21pwrid(uint32 rid);
+struct sam_passwd *getsam21pwuid(uid_t uid);
+void pdb_init_dispinfo(struct sam_disp_info *user);
+void pdb_init_smb(struct smb_passwd *user);
+void pdb_init_sam(struct sam_passwd *user);
+struct sam_disp_info *pdb_sam_to_dispinfo(struct sam_passwd *user);
+struct smb_passwd *pdb_sam_to_smb(struct sam_passwd *user);
+struct sam_passwd *pdb_smb_to_sam(struct smb_passwd *user);
+time_t pdb_get_last_set_time(char *p);
+void pdb_set_logon_time(char *p, int max_len, time_t t);
+void pdb_set_logoff_time(char *p, int max_len, time_t t);
+void pdb_set_kickoff_time(char *p, int max_len, time_t t);
+void pdb_set_can_change_time(char *p, int max_len, time_t t);
+void pdb_set_must_change_time(char *p, int max_len, time_t t);
+void pdb_set_last_set_time(char *p, int max_len, time_t t);
+char *pdb_encode_acct_ctrl(uint16 acct_ctrl);
+uint16 pdb_decode_acct_ctrl(char *p);
+BOOL pdb_gethexpwd(char *p, char *pwd);
+void pdb_sethexpwd(char *p, char *pwd, uint16 acct_ctrl);
+BOOL pdb_name_to_rid(char *user_name, uint32 *u_rid, uint32 *g_rid);
+BOOL pdb_generate_machine_sid(void);
+uid_t pdb_user_rid_to_uid(uint32 u_rid);
+gid_t pdb_group_rid_to_gid(uint32 g_rid);
+uint32 pdb_uid_to_user_rid(uid_t uid);
+uint32 pdb_gid_to_group_rid(gid_t gid);
+BOOL pdb_rid_is_well_known(uint32 rid);
+BOOL pdb_rid_is_user(uint32 rid);
+
 /*The following definitions come from  password.c  */
 
 void generate_next_challenge(char *challenge);
 BOOL set_challenge(char *challenge);
-BOOL last_challenge(char *challenge);
+BOOL last_challenge(unsigned char *challenge);
 user_struct *get_valid_user_struct(uint16 vuid);
 void invalidate_vuid(uint16 vuid);
 char *validated_username(uint16 vuid);
 int setup_groups(char *user, int uid, int gid, int *p_ngroups, 
                 int **p_igroups, gid_t **p_groups,
          int **p_attrs);
-uint16 register_vuid(int uid,int gid, char *name,BOOL guest);
+uint16 register_vuid(int uid,int gid, char *unix_name, char *requested_name, BOOL guest);
 void add_session_user(char *user);
 BOOL update_smbpassword_file( char *user, fstring password);
 void dfs_unlogin(void);
@@ -1583,8 +1699,8 @@ void pcap_printer_fn(void (*fn)(char *, char *));
 
 /*The following definitions come from  pidfile.c  */
 
-void pidfile_create(char *name);
 int pidfile_pid(char *name);
+void pidfile_create(char *name);
 
 /*The following definitions come from  pipes.c  */
 
@@ -1613,6 +1729,7 @@ void del_printqueue(int cnum,int snum,int jobid);
 void status_printjob(int cnum,int snum,int jobid,int status);
 int printjob_encode(int snum, int job);
 void printjob_decode(int jobid, int *snum, int *job);
+void status_printqueue(int cnum,int snum,int status);
 
 /*The following definitions come from  quotas.c  */
 
@@ -1673,6 +1790,7 @@ int reply_printqueue(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
 int reply_printwrite(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
 int reply_mkdir(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
 int reply_rmdir(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
+int rename_internals(char *inbuf, char *outbuf, char *name, char *newname, BOOL replace_if_exists);
 int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
 int reply_copy(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
 int reply_setdir(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
@@ -1698,6 +1816,8 @@ int sys_disk_free(char *path,int *bsize,int *dfree,int *dsize);
 BOOL check_name(char *name,int cnum);
 void sync_file(int fnum);
 void close_file(int fnum, BOOL normal_close);
+void close_directory(int fnum);
+void open_directory(int fnum,int cnum,char *fname, int *action);
 BOOL check_file_sharing(int cnum,char *fname, BOOL rename_op);
 int check_share_mode( share_mode_entry *share, int deny_mode, char *fname,
                       BOOL fcbopen, int *flags);
@@ -1739,6 +1859,10 @@ struct shmem_ops *smb_shm_open(int ronly);
 
 struct shmem_ops *sysv_shm_open(int ronly);
 
+/*The following definitions come from  slprintf.c  */
+
+int vslprintf(char *str, int n, char *format, va_list ap);
+
 /*The following definitions come from  smbdes.c  */
 
 void E_P16(unsigned char *p14,unsigned char *p16);
@@ -1763,22 +1887,18 @@ char *smb_errstr(char *inbuf);
 
 /*The following definitions come from  smbpass.c  */
 
-void *startsmbpwent(BOOL update);
-void endsmbpwent(void *vp);
-struct smb_passwd *getsmbpwent(void *vp);
-unsigned long getsmbpwpos(void *vp);
-BOOL setsmbpwpos(void *vp, unsigned long tok);
-struct smb_passwd *getsmbpwnam(char *name);
-struct smb_passwd *getsmbpwuid(unsigned int uid);
-char *encode_acct_ctrl(uint16 acct_ctrl);
-BOOL add_smbpwd_entry(struct smb_passwd *newpwd);
-BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override);
-void *machine_password_lock( char *domain, char *name, BOOL update);
-BOOL machine_password_unlock( void *token );
-BOOL machine_password_delete( char *domain, char *name );
-BOOL get_machine_account_password( void *mach_tok, unsigned char *ret_pwd,
-                                   time_t *last_change_time);
-BOOL set_machine_account_password( void *mach_tok, unsigned char *md4_new_pwd);
+struct passdb_ops *file_initialize_password_db(void);
+
+/*The following definitions come from  smbpassfile.c  */
+
+BOOL do_file_lock(int fd, int waitsecs, int type);
+BOOL pw_file_lock(int fd, int type, int secs, int *plock_depth);
+BOOL pw_file_unlock(int fd, int *plock_depth);
+BOOL trust_password_lock( char *domain, char *name, BOOL update);
+BOOL trust_password_unlock(void);
+BOOL trust_password_delete( char *domain, char *name );
+BOOL get_trust_account_password( unsigned char *ret_pwd, time_t *pass_last_set_time);
+BOOL set_trust_account_password( unsigned char *md4_new_pwd);
 
 /*The following definitions come from  status.c  */
 
@@ -1851,7 +1971,7 @@ void unbecome_root(BOOL restore_dir);
 /*The following definitions come from  username.c  */
 
 char *get_home_dir(char *user);
-void map_username(char *user);
+BOOL map_username(char *user);
 struct passwd *Get_Pwnam(char *user,BOOL allow_change);
 BOOL user_in_list(char *user,char *list);
 
@@ -1861,11 +1981,13 @@ int sig_usr2(void);
 int sig_usr1(void);
 void setup_logging(char *pname,BOOL interactive);
 void reopen_logs(void);
+void force_check_log_size(void);
 char *tmpdir(void);
 BOOL is_a_socket(int fd);
 BOOL next_token(char **ptr,char *buff,char *sep);
 char **toktocliplist(int *ctok, char *sep);
 void *MemMove(void *dest,void *src,int size);
+void *mem_dup( void *from, int size );
 void array_promote(char *array,int elsize,int element);
 void set_socket_options(int fd, char *options);
 void close_sockets(void );
@@ -1993,15 +2115,16 @@ int struni2(uint16 *p, char *buf);
 char *unistr(char *buf);
 int unistrncpy(char *dst, char *src, int len);
 int unistrcpy(char *dst, char *src);
-void fstrcpy(char *dest, char *src);
-void pstrcpy(char *dest, char *src);
+char *safe_strcpy(char *dest, char *src, int maxlength);
+char *safe_strcat(char *dest, char *src, int maxlength);
 char *align4(char *q, char *base);
 char *align2(char *q, char *base);
 char *align_offset(char *q, char *base, int align_offset_len);
 void print_asc(int level, unsigned char *buf,int len);
 void dump_data(int level,char *buf1,int len);
 char *tab_depth(int depth);
-char *dom_sid_to_string(DOM_SID *sid);
+char *sid_to_string(pstring sidstr_out, DOM_SID *sid);
+BOOL string_to_sid(DOM_SID *sidout, char *sidstr);
 
 /*The following definitions come from  web/cgi.c  */
 
@@ -2041,3 +2164,4 @@ void status_page(void);
 /*The following definitions come from  web/swat.c  */
 
 int main(int argc, char *argv[]);
+#endif /* _PROTO_H_ */