X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=source3%2Fwinbindd%2Fwinbindd_proto.h;h=02b5c666129d76e58aa45e2dbeca32006ef7cb1a;hp=afcbcdbeca27151032df6fe054acd7375d0a0a67;hb=4bf783d4d6693f927f5e7ef7a9855766c91983f2;hpb=958fdaf5c3ba17969a5110e6b2b08babb9096d7e diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h index afcbcdbeca2..02b5c666129 100644 --- a/source3/winbindd/winbindd_proto.h +++ b/source3/winbindd/winbindd_proto.h @@ -26,32 +26,21 @@ /* The following definitions come from auth/token_util.c */ -bool nt_token_check_sid ( const DOM_SID *sid, const NT_USER_TOKEN *token ); +bool nt_token_check_sid ( const struct dom_sid *sid, const NT_USER_TOKEN *token ); bool nt_token_check_domain_rid( NT_USER_TOKEN *token, uint32 rid ); NT_USER_TOKEN *get_root_nt_token( void ); -NTSTATUS add_aliases(const DOM_SID *domain_sid, +NTSTATUS add_aliases(const struct dom_sid *domain_sid, struct nt_user_token *token); struct nt_user_token *create_local_nt_token(TALLOC_CTX *mem_ctx, - const DOM_SID *user_sid, + const struct dom_sid *user_sid, bool is_guest, int num_groupsids, - const DOM_SID *groupsids); + const struct dom_sid *groupsids); void debug_nt_user_token(int dbg_class, int dbg_lev, NT_USER_TOKEN *token); void debug_unix_user_token(int dbg_class, int dbg_lev, uid_t uid, gid_t gid, int n_groups, gid_t *groups); -/* The following definitions come from smbd/connection.c */ - -bool yield_connection(connection_struct *conn, const char *name); -int count_current_connections( const char *sharename, bool clear ); -int count_all_current_connections(void); -bool claim_connection(connection_struct *conn, const char *name, - uint32 msg_flags); -bool register_message_flags(bool doreg, uint32 msg_flags); - /* The following definitions come from winbindd/winbindd.c */ - -struct event_context *winbind_event_context(void); struct messaging_context *winbind_messaging_context(void); void request_error(struct winbindd_cli_state *state); void request_ok(struct winbindd_cli_state *state); @@ -59,6 +48,9 @@ bool winbindd_setup_sig_term_handler(bool parent); bool winbindd_setup_sig_hup_handler(const char *lfile); bool winbindd_use_idmap_cache(void); bool winbindd_use_cache(void); +void winbindd_register_handlers(void); +const char *get_winbind_pipe_dir(void); +char *get_winbind_priv_pipe_dir(void); int main(int argc, char **argv, char **envp); /* The following definitions come from winbindd/winbindd_ads.c */ @@ -82,39 +74,28 @@ NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx, /* The following definitions come from winbindd/winbindd_async.c */ -void winbindd_listent_async(TALLOC_CTX *mem_ctx, - struct winbindd_domain *domain, - void (*cont)(void *private_data, bool success, - fstring dom_name, char* extra_data), - void *private_data, enum ent_type type); -enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_list_groups(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -bool print_sidlist(TALLOC_CTX *mem_ctx, const DOM_SID *sids, - size_t num_sids, char **result, ssize_t *len); +bool print_sidlist(TALLOC_CTX *mem_ctx, const struct dom_sid *sids, + uint32_t num_sids, char **result, ssize_t *len); bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr, - DOM_SID **sids, size_t *num_sids); -enum winbindd_result winbindd_dual_getsidaliases(struct winbindd_domain *domain, - struct winbindd_cli_state *state); + struct dom_sid **sids, uint32_t *num_sids); /* The following definitions come from winbindd/winbindd_cache.c */ void winbindd_check_cache_size(time_t t); struct cache_entry *centry_start(struct winbindd_domain *domain, NTSTATUS status); -NTSTATUS wcache_cached_creds_exist(struct winbindd_domain *domain, const DOM_SID *sid); +NTSTATUS wcache_cached_creds_exist(struct winbindd_domain *domain, const struct dom_sid *sid); NTSTATUS wcache_get_creds(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, - const DOM_SID *sid, + const struct dom_sid *sid, const uint8 **cached_nt_pass, const uint8 **cached_salt); NTSTATUS wcache_save_creds(struct winbindd_domain *domain, - TALLOC_CTX *mem_ctx, - const DOM_SID *sid, + const struct dom_sid *sid, const uint8 nt_pass[NT_HASH_LEN]); void wcache_invalidate_samlogon(struct winbindd_domain *domain, struct netr_SamInfo3 *info3); bool wcache_invalidate_cache(void); +bool wcache_invalidate_cache_noinit(void); bool init_wcache(void); bool initialize_winbindd_cache(void); void close_winbindd_cache(void); @@ -130,17 +111,16 @@ NTSTATUS wcache_lookup_groupmem(struct winbindd_domain *domain, uint32_t *num_names, struct dom_sid **sid_mem, char ***names, uint32_t **name_types); -bool lookup_cached_sid(TALLOC_CTX *mem_ctx, const DOM_SID *sid, +bool lookup_cached_sid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid, char **domain_name, char **name, enum lsa_SidType *type); -bool lookup_cached_name(TALLOC_CTX *mem_ctx, - const char *domain_name, +bool lookup_cached_name(const char *domain_name, const char *name, - DOM_SID *sid, + struct dom_sid *sid, enum lsa_SidType *type); void cache_name2sid(struct winbindd_domain *domain, const char *domain_name, const char *name, - enum lsa_SidType type, const DOM_SID *sid); + enum lsa_SidType type, const struct dom_sid *sid); NTSTATUS wcache_name_to_sid(struct winbindd_domain *domain, const char *domain_name, const char *name, @@ -152,7 +132,7 @@ NTSTATUS wcache_query_user(struct winbindd_domain *domain, struct wbint_userinfo *info); NTSTATUS wcache_lookup_useraliases(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, - uint32 num_sids, const DOM_SID *sids, + uint32 num_sids, const struct dom_sid *sids, uint32 *pnum_aliases, uint32 **paliases); NTSTATUS wcache_lookup_usergroups(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, @@ -162,7 +142,7 @@ NTSTATUS wcache_lookup_usergroups(struct winbindd_domain *domain, void wcache_flush_cache(void); NTSTATUS wcache_count_cached_creds(struct winbindd_domain *domain, int *count); -NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const DOM_SID *sid) ; +NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const struct dom_sid *sid) ; bool set_global_winbindd_state_offline(void); void set_global_winbindd_state_online(void); bool get_global_winbindd_state_offline(void); @@ -173,10 +153,11 @@ bool wcache_tdc_fetch_list( struct winbindd_tdc_domain **domains, size_t *num_do bool wcache_tdc_add_domain( struct winbindd_domain *domain ); struct winbindd_tdc_domain * wcache_tdc_fetch_domain( TALLOC_CTX *ctx, const char *name ); void wcache_tdc_clear( void ); +struct ads_struct; NTSTATUS nss_get_info_cached( struct winbindd_domain *domain, - const DOM_SID *user_sid, + const struct dom_sid *user_sid, TALLOC_CTX *ctx, - ADS_STRUCT *ads, LDAPMessage *msg, + struct ads_struct *ads, LDAPMessage *msg, const char **homedir, const char **shell, const char **gecos, gid_t *p_gid); bool wcache_store_seqnum(const char *domain_name, uint32_t seqnum, @@ -191,14 +172,14 @@ void wcache_store_ndr(struct winbindd_domain *domain, uint32_t opnum, void winbindd_ccache_ntlm_auth(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_ccache_ntlm_auth(struct winbindd_domain *domain, struct winbindd_cli_state *state); +void winbindd_ccache_save(struct winbindd_cli_state *state); +enum winbindd_result winbindd_dual_ccache_save( + struct winbindd_domain *domain, struct winbindd_cli_state *state); /* The following definitions come from winbindd/winbindd_cm.c */ void set_domain_offline(struct winbindd_domain *domain); void set_domain_online_request(struct winbindd_domain *domain); -void winbind_add_failed_connection_entry(const struct winbindd_domain *domain, - const char *server, - NTSTATUS result); void invalidate_cm_connection(struct winbindd_cm_conn *conn); void close_conns_after_fork(void); NTSTATUS init_dc_connection(struct winbindd_domain *domain); @@ -243,34 +224,25 @@ NTSTATUS winbindd_replace_memory_creds(const char *username, NTSTATUS winbindd_get_creds(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, - const DOM_SID *sid, + const struct dom_sid *sid, struct netr_SamInfo3 **info3, const uint8 *cached_nt_pass[NT_HASH_LEN], const uint8 *cred_salt[NT_HASH_LEN]); NTSTATUS winbindd_store_creds(struct winbindd_domain *domain, - TALLOC_CTX *mem_ctx, const char *user, const char *pass, - struct netr_SamInfo3 *info3, - const DOM_SID *user_sid); + struct netr_SamInfo3 *info3); NTSTATUS winbindd_update_creds_by_info3(struct winbindd_domain *domain, - TALLOC_CTX *mem_ctx, const char *user, const char *pass, struct netr_SamInfo3 *info3); -NTSTATUS winbindd_update_creds_by_sid(struct winbindd_domain *domain, - TALLOC_CTX *mem_ctx, - const DOM_SID *sid, - const char *pass); NTSTATUS winbindd_update_creds_by_name(struct winbindd_domain *domain, - TALLOC_CTX *mem_ctx, const char *user, const char *pass); /* The following definitions come from winbindd/winbindd_domain.c */ -void setup_domain_child(struct winbindd_domain *domain, - struct winbindd_child *child); +void setup_domain_child(struct winbindd_domain *domain); /* The following definitions come from winbindd/winbindd_dual.c */ @@ -287,21 +259,6 @@ struct tevent_req *wb_domain_request_send(TALLOC_CTX *mem_ctx, int wb_domain_request_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, struct winbindd_response **presponse, int *err); -void async_request(TALLOC_CTX *mem_ctx, struct winbindd_child *child, - struct winbindd_request *request, - struct winbindd_response *response, - void (*continuation)(void *private_data, bool success), - void *private_data); -void async_domain_request(TALLOC_CTX *mem_ctx, - struct winbindd_domain *domain, - struct winbindd_request *request, - struct winbindd_response *response, - void (*continuation)(void *private_data_data, bool success), - void *private_data_data); -void sendto_child(struct winbindd_cli_state *state, - struct winbindd_child *child); -void sendto_domain(struct winbindd_cli_state *state, - struct winbindd_domain *domain); void setup_child(struct winbindd_domain *domain, struct winbindd_child *child, const struct winbindd_child_dispatch_table *table, const char *logprefix, @@ -353,9 +310,6 @@ void winbindd_getgroups(struct winbindd_cli_state *state); void winbindd_getusersids(struct winbindd_cli_state *state); void winbindd_getuserdomgroups(struct winbindd_cli_state *state); void winbindd_getsidaliases(struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -bool get_sam_group_entries(struct getent_state *ent); bool fill_grent(TALLOC_CTX *mem_ctx, struct winbindd_gr *gr, const char *dom_name, const char *gr_name, gid_t unix_gid); NTSTATUS winbindd_print_groupmembers(struct talloc_dict *members, @@ -367,45 +321,18 @@ NTSTATUS winbindd_print_groupmembers(struct talloc_dict *members, void init_idmap_child(void); struct winbindd_child *idmap_child(void); -void winbindd_set_mapping_async(TALLOC_CTX *mem_ctx, const struct id_map *map, - void (*cont)(void *private_data, bool success), - void *private_data); -enum winbindd_result winbindd_dual_set_mapping(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_remove_mapping_async(TALLOC_CTX *mem_ctx, const struct id_map *map, - void (*cont)(void *private_data, bool success), - void *private_data); -enum winbindd_result winbindd_dual_remove_mapping(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_set_hwm_async(TALLOC_CTX *mem_ctx, const struct unixid *xid, - void (*cont)(void *private_data, bool success), - void *private_data); -enum winbindd_result winbindd_dual_set_hwm(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_sids2xids_async(TALLOC_CTX *mem_ctx, void *sids, int size, - void (*cont)(void *private_data, bool success, void *data, int len), - void *private_data); -enum winbindd_result winbindd_dual_sids2xids(struct winbindd_domain *domain, - struct winbindd_cli_state *state); /* The following definitions come from winbindd/winbindd_locator.c */ void init_locator_child(void); struct winbindd_child *locator_child(void); -void winbindd_dsgetdcname(struct winbindd_cli_state *state); /* The following definitions come from winbindd/winbindd_misc.c */ -void winbindd_check_machine_acct(struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_check_machine_acct(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_list_ent(struct winbindd_cli_state *state, enum ent_type type); void winbindd_list_trusted_domains(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *domain, struct winbindd_cli_state *state); void winbindd_show_sequence(struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_show_sequence(struct winbindd_domain *domain, - struct winbindd_cli_state *state); void winbindd_domain_info(struct winbindd_cli_state *state); void winbindd_ping(struct winbindd_cli_state *state); void winbindd_info(struct winbindd_cli_state *state); @@ -432,98 +359,38 @@ void ndr_print_winbindd_domain(struct ndr_print *ndr, /* The following definitions come from winbindd/winbindd_pam.c */ bool check_request_flags(uint32_t flags); +uid_t get_uid_from_request(struct winbindd_request *request); struct winbindd_domain *find_auth_domain(uint8_t flags, const char *domain_name); -NTSTATUS check_info3_in_group(struct netr_SamInfo3 *info3, - const char *group_sid); -NTSTATUS append_auth_data(struct winbindd_cli_state *state, - struct netr_SamInfo3 *info3, - const char *name_domain, - const char *name_user); -void winbindd_pam_auth(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_pam_auth(struct winbindd_domain *domain, struct winbindd_cli_state *state) ; -void winbindd_pam_auth_crap(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_pam_auth_crap(struct winbindd_domain *domain, struct winbindd_cli_state *state) ; -void winbindd_pam_chauthtok(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_pam_chauthtok(struct winbindd_domain *contact_domain, struct winbindd_cli_state *state); -void winbindd_pam_logoff(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_pam_logoff(struct winbindd_domain *domain, struct winbindd_cli_state *state) ; -void winbindd_pam_chng_pswd_auth_crap(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_pam_chng_pswd_auth_crap(struct winbindd_domain *domainSt, struct winbindd_cli_state *state); -/* The following definitions come from winbindd/winbindd_passdb.c */ - - -/* The following definitions come from winbindd/winbindd_reconnect.c */ - - -/* The following definitions come from winbindd/winbindd_sid.c */ - -void winbindd_lookupsid(struct winbindd_cli_state *state); -void winbindd_lookupname(struct winbindd_cli_state *state); -void winbindd_lookuprids(struct winbindd_cli_state *state); -void winbindd_sid_to_uid(struct winbindd_cli_state *state); -void winbindd_sid_to_gid(struct winbindd_cli_state *state); -void winbindd_set_mapping(struct winbindd_cli_state *state); -void winbindd_remove_mapping(struct winbindd_cli_state *state); -void winbindd_set_hwm(struct winbindd_cli_state *state); -void winbindd_uid_to_sid(struct winbindd_cli_state *state); -void winbindd_gid_to_sid(struct winbindd_cli_state *state); -void winbindd_allocate_uid(struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_allocate_uid(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_allocate_gid(struct winbindd_cli_state *state); -enum winbindd_result winbindd_dual_allocate_gid(struct winbindd_domain *domain, - struct winbindd_cli_state *state); - -/* The following definitions come from winbindd/winbindd_user.c */ - -enum winbindd_result winbindd_dual_userinfo(struct winbindd_domain *domain, - struct winbindd_cli_state *state); -void winbindd_getpwnam(struct winbindd_cli_state *state); -void winbindd_getpwuid(struct winbindd_cli_state *state); -void winbindd_getpwsid(struct winbindd_cli_state *state); -void winbindd_setpwent(struct winbindd_cli_state *state); -void winbindd_endpwent(struct winbindd_cli_state *state); -void winbindd_getpwent(struct winbindd_cli_state *state); -void winbindd_list_users(struct winbindd_cli_state *state); - /* The following definitions come from winbindd/winbindd_util.c */ struct winbindd_domain *domain_list(void); -void free_domain_list(void); +bool domain_is_forest_root(const struct winbindd_domain *domain); void rescan_trusted_domains(struct tevent_context *ev, struct tevent_timer *te, struct timeval now, void *private_data); enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain *domain, struct winbindd_cli_state *state); bool init_domain_list(void); -void check_domain_trusted( const char *name, const DOM_SID *user_sid ); +void check_domain_trusted( const char *name, const struct dom_sid *user_sid ); struct winbindd_domain *find_domain_from_name_noinit(const char *domain_name); struct winbindd_domain *find_domain_from_name(const char *domain_name); -struct winbindd_domain *find_domain_from_sid_noinit(const DOM_SID *sid); -struct winbindd_domain *find_domain_from_sid(const DOM_SID *sid); +struct winbindd_domain *find_domain_from_sid_noinit(const struct dom_sid *sid); +struct winbindd_domain *find_domain_from_sid(const struct dom_sid *sid); struct winbindd_domain *find_our_domain(void); struct winbindd_domain *find_root_domain(void); struct winbindd_domain *find_builtin_domain(void); -struct winbindd_domain *find_lookup_domain_from_sid(const DOM_SID *sid); +struct winbindd_domain *find_lookup_domain_from_sid(const struct dom_sid *sid); struct winbindd_domain *find_lookup_domain_from_name(const char *domain_name); -bool winbindd_lookup_sid_by_name(TALLOC_CTX *mem_ctx, - enum winbindd_cmd orig_cmd, - struct winbindd_domain *domain, - const char *domain_name, - const char *name, DOM_SID *sid, - enum lsa_SidType *type); -bool winbindd_lookup_name_by_sid(TALLOC_CTX *mem_ctx, - struct winbindd_domain *domain, - DOM_SID *sid, - char **dom_name, - char **name, - enum lsa_SidType *type); -void free_getent_state(struct getent_state *state); bool parse_domain_user(const char *domuser, fstring domain, fstring user); bool parse_domain_user_talloc(TALLOC_CTX *mem_ctx, const char *domuser, char **domain, char **user); @@ -534,19 +401,14 @@ char *fill_domain_username_talloc(TALLOC_CTX *ctx, const char *domain, const char *user, bool can_assume); -const char *get_winbind_pipe_dir(void) ; -char *get_winbind_priv_pipe_dir(void) ; -int open_winbindd_socket(void); -int open_winbindd_priv_socket(void); struct winbindd_cli_state *winbindd_client_list(void); void winbindd_add_client(struct winbindd_cli_state *cli); void winbindd_remove_client(struct winbindd_cli_state *cli); -void winbindd_kill_all_clients(void); int winbindd_num_clients(void); NTSTATUS lookup_usergroups_cached(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, - const DOM_SID *user_sid, - uint32 *p_num_groups, DOM_SID **user_sids); + const struct dom_sid *user_sid, + uint32 *p_num_groups, struct dom_sid **user_sids); NTSTATUS normalize_name_map(TALLOC_CTX *mem_ctx, struct winbindd_domain *domain, @@ -570,6 +432,7 @@ void winbindd_unset_locator_kdc_env(const struct winbindd_domain *domain); void winbindd_set_locator_kdc_envs(const struct winbindd_domain *domain); void winbindd_unset_locator_kdc_env(const struct winbindd_domain *domain); void set_auth_errors(struct winbindd_response *resp, NTSTATUS result); +bool is_domain_offline(const struct winbindd_domain *domain); /* The following definitions come from winbindd/winbindd_wins.c */ @@ -585,9 +448,9 @@ NTSTATUS wb_ping_recv(struct tevent_req *req, enum winbindd_result winbindd_dual_ping(struct winbindd_domain *domain, struct winbindd_cli_state *state); -struct rpc_pipe_client *wbint_rpccli_create(TALLOC_CTX *mem_ctx, - struct winbindd_domain *domain, - struct winbindd_child *child); +struct dcerpc_binding_handle *wbint_binding_handle(TALLOC_CTX *mem_ctx, + struct winbindd_domain *domain, + struct winbindd_child *child); enum winbindd_result winbindd_dual_ndrcmd(struct winbindd_domain *domain, struct winbindd_cli_state *state); @@ -924,6 +787,13 @@ struct tevent_req *winbindd_check_machine_acct_send(TALLOC_CTX *mem_ctx, NTSTATUS winbindd_check_machine_acct_recv(struct tevent_req *req, struct winbindd_response *presp); +struct tevent_req *winbindd_ping_dc_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_ping_dc_recv(struct tevent_req *req, + struct winbindd_response *presp); + struct tevent_req *winbindd_change_machine_acct_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct winbindd_cli_state *cli, @@ -931,25 +801,50 @@ struct tevent_req *winbindd_change_machine_acct_send(TALLOC_CTX *mem_ctx, NTSTATUS winbindd_change_machine_acct_recv(struct tevent_req *req, struct winbindd_response *presp); -struct tevent_req *winbindd_set_mapping_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct winbindd_cli_state *cli, - struct winbindd_request *request); -NTSTATUS winbindd_set_mapping_recv(struct tevent_req *req, - struct winbindd_response *response); +struct tevent_req *winbindd_pam_auth_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_pam_auth_recv(struct tevent_req *req, + struct winbindd_response *response); -struct tevent_req *winbindd_remove_mapping_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct winbindd_cli_state *cli, - struct winbindd_request *request); -NTSTATUS winbindd_remove_mapping_recv(struct tevent_req *req, - struct winbindd_response *response); +struct tevent_req *winbindd_pam_auth_crap_send( + TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_pam_auth_crap_recv(struct tevent_req *req, + struct winbindd_response *response); -struct tevent_req *winbindd_set_hwm_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct winbindd_cli_state *cli, - struct winbindd_request *request); -NTSTATUS winbindd_set_hwm_recv(struct tevent_req *req, - struct winbindd_response *response); +struct tevent_req *winbindd_pam_chauthtok_send( + TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_pam_chauthtok_recv(struct tevent_req *req, + struct winbindd_response *response); + +struct tevent_req *winbindd_pam_logoff_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_pam_logoff_recv(struct tevent_req *req, + struct winbindd_response *response); + +struct tevent_req *winbindd_pam_chng_pswd_auth_crap_send( + TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct winbindd_cli_state *cli, + struct winbindd_request *request); +NTSTATUS winbindd_pam_chng_pswd_auth_crap_recv( + struct tevent_req *req, + struct winbindd_response *response); + +/* The following definitions come from winbindd/winbindd_samr.c */ + +NTSTATUS open_internal_samr_conn(TALLOC_CTX *mem_ctx, + struct winbindd_domain *domain, + struct rpc_pipe_client **samr_pipe, + struct policy_handle *samr_domain_hnd); #endif /* _WINBINDD_PROTO_H_ */