pam_smbpass/support.h

ソースコードを見る。

関数

void _log_err (int, const char *,...)
int set_ctrl (int, int, const char **)
void _cleanup (pam_handle_t *, void *, int)
char * smbpXstrDup (const char *)
void _cleanup_failures (pam_handle_t *, void *, int)
BOOL strequal (const char *, const char *)
 Compare 2 strings.
smb_passwd_my_get_smbpwnam (FILE *, const char *, BOOL *, BOOL *, long *)
int _smb_verify_password (pam_handle_t *pamh, struct samu *sampass, const char *p, unsigned int ctrl)
int _smb_get_user (pam_handle_t *, unsigned int, const char *, const char **)
int _smb_blankpasswd (unsigned int, struct samu *)
int _smb_read_password (pam_handle_t *, unsigned int, const char *, const char *, const char *, const char *, char **)
int _pam_smb_approve_pass (pam_handle_t *, unsigned int, const char *, const char *)


関数

void _log_err ( int  ,
const char *  ,
  ... 
)

support.c71 行で定義されています。

参照元 _cleanup_failures()_smb_add_user()converse()pam_sm_acct_mgmt()pam_sm_authenticate()pam_sm_chauthtok()set_ctrl()smbpXstrDup().

00072         {
00073             va_list args;
00074 
00075             va_start( args, format );
00076             openlog( "PAM_smbpass", LOG_CONS | LOG_PID, LOG_AUTH );
00077             vsyslog( err, format, args );
00078             va_end( args );
00079             closelog();
00080         }

int set_ctrl ( int  ,
int  ,
const char **   
)

support.c129 行で定義されています。

参照先 _log_err()dyn_CONFIGFILESMB_Ctrls::flagSMB_Ctrls::masksecrets_init()servicesfsmb_args.

参照元 pam_sm_acct_mgmt()pam_sm_authenticate()pam_sm_chauthtok().

00130 {
00131     int i = 0;
00132     const char *service_file = dyn_CONFIGFILE;
00133     unsigned int ctrl;
00134 
00135     ctrl = SMB_DEFAULTS;        /* the default selection of options */
00136 
00137     /* set some flags manually */
00138 
00139     /* A good, sane default (matches Samba's behavior). */
00140     set( SMB__NONULL, ctrl );
00141 
00142     /* initialize service file location */
00143     service_file=servicesf;
00144 
00145     if (flags & PAM_SILENT) {
00146         set( SMB__QUIET, ctrl );
00147     }
00148 
00149     /* Run through the arguments once, looking for an alternate smb config
00150        file location */
00151     while (i < argc) {
00152         int j;
00153 
00154         for (j = 0; j < SMB_CTRLS_; ++j) {
00155             if (smb_args[j].token
00156                 && !strncmp(argv[i], smb_args[j].token, strlen(smb_args[j].token)))
00157             {
00158                 break;
00159             }
00160         }
00161 
00162         if (j == SMB_CONF_FILE) {
00163             service_file = argv[i] + 8;
00164         }
00165         i++;
00166     }
00167 
00168     /* Read some options from the Samba config. Can be overridden by
00169        the PAM config. */
00170     if(lp_load(service_file,True,False,False,True) == False) {
00171         _log_err( LOG_ERR, "Error loading service file %s", service_file );
00172     }
00173 
00174     secrets_init();
00175 
00176     if (lp_null_passwords()) {
00177         set( SMB__NULLOK, ctrl );
00178     }
00179 
00180     /* now parse the rest of the arguments to this module */
00181 
00182     while (argc-- > 0) {
00183         int j;
00184 
00185         for (j = 0; j < SMB_CTRLS_; ++j) {
00186             if (smb_args[j].token
00187                 && !strncmp(*argv, smb_args[j].token, strlen(smb_args[j].token)))
00188             {
00189                 break;
00190             }
00191         }
00192 
00193         if (j >= SMB_CTRLS_) {
00194             _log_err( LOG_ERR, "unrecognized option [%s]", *argv );
00195         } else {
00196             ctrl &= smb_args[j].mask;   /* for turning things off */
00197             ctrl |= smb_args[j].flag;   /* for turning things on  */
00198         }
00199 
00200         ++argv;                         /* step to next argument */
00201     }
00202 
00203     /* auditing is a more sensitive version of debug */
00204 
00205     if (on( SMB_AUDIT, ctrl )) {
00206         set( SMB_DEBUG, ctrl );
00207     }
00208     /* return the set of flags */
00209 
00210     return ctrl;
00211 }

void _cleanup ( pam_handle_t *  ,
void *  ,
int   
)

char* smbpXstrDup ( const char *   ) 

support.c233 行で定義されています。

参照先 _log_err().

参照元 _cleanup_failures().

00234 {
00235     register char *newstr = NULL;
00236 
00237     if (x != NULL) {
00238         register int i;
00239 
00240         for (i = 0; x[i]; ++i); /* length of string */
00241         if ((newstr = SMB_MALLOC_ARRAY(char, ++i)) == NULL) {
00242             i = 0;
00243             _log_err( LOG_CRIT, "out of memory in smbpXstrDup" );
00244         } else {
00245             while (i-- > 0) {
00246                 newstr[i] = x[i];
00247             }
00248         }
00249         x = NULL;
00250     }
00251     return newstr;                      /* return the duplicate or NULL on error */
00252 }

void _cleanup_failures ( pam_handle_t *  ,
void *  ,
int   
)

support.c258 行で定義されています。

参照先 _cleanup()_cleanup_failures()_log_err()_pam_delete()_pam_smb_approve_pass()_smb_blankpasswd()_smb_read_password()_smb_verify_password()_pam_failed_auth::agentconverse()_pam_failed_auth::countexpect()_pam_failed_auth::idmake_remark()nament_lm_owf_gen()pdb_get_acct_ctrl()pdb_get_nt_passwd()pdb_get_user_sid()pdb_get_username()quietsid_to_uid()smbpXstrDup()uidtoname()_pam_failed_auth::user.

参照元 _cleanup_failures().

BOOL strequal ( const char *  s1,
const char *  s2 
)

Compare 2 strings.

覚え書き:
The comparison is case-insensitive.

util_str.c283 行で定義されています。

参照先 StrCaseCmp().

参照元 _dfs_Remove()_net_sam_logon_internal()_reg_query_value()_samr_get_dispenum_index()_samr_lookup_domain()_samr_set_aliasinfo()_spoolss_getform()_spoolss_getprinterdata()_spoolss_setprinterdata()_srv_net_sess_del()_srv_net_share_add()_srv_net_share_del()_srv_net_share_set_info()add_a_form()add_afs_ace()add_failed_connection_entry()add_name_to_subnet()add_trusted_domain()ads_check_posix_schema_mapping()ads_cleanup_expired_creds()ads_dc_name()ads_do_paged_search_args()ads_generate_service_principal()ads_get_gpo_list()ads_gpo_prepare_local_store()ads_init()ads_keytab_add_entry()ads_keytab_verify_ticket()ads_ou_string()ads_site_dn_for_machine()ads_sitename_match()afs_set_nt_acl()announce_server()api_pipe_bind_req()api_RNetServerEnum()api_RNetServerGetInfo()api_SamOEMChangePassword()assume_domain()assume_own_realm()call_trans2qfilepathinfo()call_trans2qfsinfo()canonicalize_ea_name()cgi_load_variables()cgi_waspost()check_bind_req()check_bind_response()check_domain_match()check_for_master_browser_fail()check_magic()check_master_browser_exists()check_negative_conn_cache_timeout()check_ntdomain_security()check_samstrict_security()check_share_sanity()check_trustdomain_security()check_winbind_security()child_msg_offline()child_msg_online()cli_check_msdfs_proxy()cli_cm_find()cli_cm_get_mntpoint()cli_cm_set_mntpoint()cli_ns_check_server_type()cli_resolve_path()cli_session_setup_spnego()cmd_help()cmd_print()cmd_seal()cmd_sign()cmd_spoolss_deletedriverex()cmd_spoolss_enum_drivers()cmd_spoolss_setprinterdata()copy_fn()copy_id21_to_sam_passwd()count_fn()create_local_private_krb5_conf_for_domain()create_workgroup()delete_printer_key()display_finfo()do_cd()do_command()do_list_helper()do_mget()dptr_closepath()driver_arch_fetch_values()drv_file_in_use()ea_list_union()elog_open()elog_open_tdb()elog_validate_logname()enum_dom_groups()equal_parameter()eventlog_add_source()expect()fcb_or_dos_open()fetch_domain_info()fetch_reg_values_specific()fill_service_values()fill_share_info()fill_svc_config()fillup_pw_field()find_browser_in_lmb_cache()find_domain_from_name_noinit()find_idmap_domain_from_sid()find_lookup_domain_from_name()find_memory_creds_by_name()find_nss_domain()find_server_in_workgroup()find_service()find_service_by_name()find_valuename_index()find_workgroup_on_subnet()flush_negative_conn_cache_for_domain()fname_equal()generate_krb5_ccache()get_a_builtin_ntform()get_alloc_methods()get_audit_category_from_param()get_ccache_by_username()get_common_service_dispname()get_dc_list()get_dc_name()get_dcs()get_group_map_from_ntname()get_lanman2_dir_entry()get_longvar_val()get_methods()get_print_db_byname()get_printer_subkeys()get_privilege_dispname()get_sec_channel_type()get_server_info()get_share_type()gpo_process_a_gpo()gpo_sync_func()grant_privilege_by_name()guid_string_to_name()idmap_ad_initialize()idmap_init()init_bitmap()init_pipe_handle_list()init_srv_sess_info_1()initiate_myworkgroup_startup()internal_resolve_name()interpret_protocol()is_default()is_executable()is_myname()is_myname_or_ipaddr()is_myworkgroup()is_our_machine_account()is_our_primary_domain()is_owner()is_trusted_domain_situation()key_driver_fetch_keys()key_printers_fetch_keys()ldapsam_delete_entry()list_match()load_usershare_service()lookup_builtin_name()lookup_global_sam_name()lookup_name()lookup_printerkey()lookup_wellknown_name()lp_add_home()lp_enum()lp_set_enum_parm()main()make_connection()make_connection_snum()make_pw_chat()make_user_info_map()manage_ntlm_change_password_1_request()manage_ntlm_server_1_request()mangled_equal()map_filename()map_to_os2_driver()map_username()matchname()move_driver_to_download_area()msg_failed_to_go_online()msg_force_tdis()msg_try_to_go_online()name_to_guid_string()named_pipe()net_ads_join()net_copy_driverfile()net_idmap_secret()net_lookup_dc()net_rap_server()net_sam_do_list()net_sam_policy_set()net_sam_set_pwdmustchangenow()net_sam_set_userflag()net_sh_process()net_status_sessions()net_status_shares()nmb_name_equal()nmbd_message_election()nss_get_backend()nt_open_pipe()only_ipaddrs_in_list()parse_dest()parse_dfs_path()parse_gpttmpl()parse_lpq_aix()parse_lpq_bsd()parse_lpq_hpux()parse_lpq_lprng()parse_lpq_nt()parse_lpq_os2()parse_lpq_plp()parse_lpq_qnx()parse_lpq_sysv()pcap_cache_reload()pcap_printername_ok()pjob_store_notify()popt_common_credentials_callback()print_domain_groups()print_domain_users()print_notify_send_messages_to_printer()printer_driver_files_in_use()printer_driver_in_use()process_announce_request()process_browse_packet()process_cmd()process_dgram()process_election()process_get_backup_list_request()process_host_announce()process_lanman_packet()process_lm_announce_request()process_lm_host_announce()process_name_release_request()process_node_status_request()process_tok()process_workgroup_announce()py_smb_tconx()receive_getdc_response()reg_split_hive()register_name_response()regsubkey_ctr_delkey()regsubkey_ctr_key_exists()regval_ctr_delvalue()regval_ctr_getvalue()regval_ctr_key_exists()rename_internals()rename_internals_fsp()reply_copy()reply_negprot()reply_open_pipe_and_X()reply_spnego_kerberos()resolve_lmhosts()revoke_privilege_by_name()rpc_audit_set_internal()rpc_auth_verifier_chk()rpc_group_list_internals()rpc_printer_migrate_settings_internals()rpc_rights_list_internal()rpc_sh_user_flag_edit_internals()rpc_share_migrate_files_internals()run_test()sam_account_from_delta()sam_account_ok()samba_private_attr_name()samu_set_unix_internal()se_priv_from_name()SearchDir()send_notify2_changes()send_spoolss_notify2_msg()server_cryptkey()set_local_machine_name()set_netbios_aliases()set_printer_hnd_name()set_socket_options()set_user_info_21()set_workgroup_local_master_browser_name()setup_return_cc_name()share_sanity_checks()smb_delete_user()smb_ldap_setup_conn()smb_pam_start()smbc_getatr()smbldap_check_root_dse()smbldap_set_mod()snapin_guid_string_to_name()stored_sitename_changed()string_match()talktochild()test_one()trustdom_recv()unix_wild_match()unlink_internals()unpack_values()update_printer()user_in_list()validate_group()wbinfo_domain_info()wbinfo_lookuprids()winbindd_dual_list_trusted_domains()winbindd_dual_pam_auth_cached()winbindd_getgrnam()winbindd_getpwnam()winbindd_list_groups()winbindd_list_users()winbindd_setpwent_internal()wins_process_name_query_request()write_this_workgroup_name()writetarheader().

00284 {
00285         if (s1 == s2)
00286                 return(True);
00287         if (!s1 || !s2)
00288                 return(False);
00289   
00290         return(StrCaseCmp(s1,s2)==0);
00291 }

struct smb_passwd* _my_get_smbpwnam ( FILE *  ,
const char *  ,
BOOL ,
BOOL ,
long *   
)

int _smb_verify_password ( pam_handle_t *  pamh,
struct samu sampass,
const char *  p,
unsigned int  ctrl 
)

参照元 _cleanup_failures()pam_sm_authenticate()pam_sm_chauthtok().

int _smb_get_user ( pam_handle_t *  ,
unsigned  int,
const char *  ,
const char **   
)

int _smb_blankpasswd ( unsigned  int,
struct samu  
)

参照元 _cleanup_failures()pam_sm_authenticate()pam_sm_chauthtok().

int _smb_read_password ( pam_handle_t *  ,
unsigned  int,
const char *  ,
const char *  ,
const char *  ,
const char *  ,
char **   
)

参照元 _cleanup_failures()pam_sm_authenticate()pam_sm_chauthtok().

int _pam_smb_approve_pass ( pam_handle_t *  ,
unsigned  int,
const char *  ,
const char *   
)

参照元 _cleanup_failures()pam_sm_chauthtok().


Sambaに対してSat Aug 29 21:23:58 2009に生成されました。  doxygen 1.4.7