param/loadparm.c

ソースコードを見る。

データ構造

struct  _param_opt_struct
struct  global
struct  service
struct  file_lists
struct  srv_role_tab

型定義

typedef _param_opt_struct param_opt_struct

関数

static BOOL handle_include (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_copy (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_netbios_name (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_idmap_uid (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_idmap_gid (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_debug_list (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_workgroup (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_netbios_aliases (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_netbios_scope (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_charset (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_printing (int snum, const char *pszParmValue, char **ptr)
static BOOL handle_ldap_debug_level (int snum, const char *pszParmValue, char **ptr)
static void set_server_role (void)
static void set_default_server_announce_type (void)
static void set_allowed_client_auth (void)
static void init_printer_values (service *pService)
static void init_globals (BOOL first_time_only)
void lp_TALLOC_FREE (void)
TALLOC_CTXtmp_talloc_ctx (void)
static char * lp_string (const char *s)
 FN_GLOBAL_STRING (lp_smb_ports,&Globals.smb_ports) FN_GLOBAL_STRING(lp_dos_charset
&Globals dos_charset FN_GLOBAL_STRING (lp_unix_charset,&Globals.unix_charset) FN_GLOBAL_STRING(lp_display_charset
&Globals dos_charset &Globals
display_charset 
FN_GLOBAL_STRING (lp_logfile,&Globals.szLogFile) FN_GLOBAL_STRING(lp_configfile
&Globals dos_charset &Globals
display_charset &Globals szConfigFile 
FN_GLOBAL_STRING (lp_smb_passwd_file,&Globals.szSMBPasswdFile) FN_GLOBAL_STRING(lp_private_dir
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir 
FN_GLOBAL_STRING (lp_serverstring,&Globals.szServerString) FN_GLOBAL_INTEGER(lp_printcap_cache_time
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime 
FN_GLOBAL_STRING (lp_addport_cmd,&Globals.szAddPortCommand) FN_GLOBAL_STRING(lp_enumports_cmd
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand 
FN_GLOBAL_STRING (lp_addprinter_cmd,&Globals.szAddPrinterCommand) FN_GLOBAL_STRING(lp_deleteprinter_cmd
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand 
FN_GLOBAL_STRING (lp_os2_driver_map,&Globals.szOs2DriverMap) FN_GLOBAL_STRING(lp_lockdir
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir 
FN_GLOBAL_STRING (lp_piddir,&Globals.szPidDir) FN_GLOBAL_STRING(lp_mangling_method
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod 
FN_GLOBAL_INTEGER (lp_mangle_prefix,&Globals.mangle_prefix) FN_GLOBAL_STRING(lp_utmpdir
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir 
FN_GLOBAL_STRING (lp_wtmpdir,&Globals.szWtmpDir) FN_GLOBAL_BOOL(lp_utmp
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp 
FN_GLOBAL_STRING (lp_rootdir,&Globals.szRootdir) FN_GLOBAL_STRING(lp_defaultservice
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService 
FN_GLOBAL_STRING (lp_msg_command,&Globals.szMsgCommand) FN_GLOBAL_STRING(lp_get_quota_command
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota 
FN_GLOBAL_STRING (lp_set_quota_command,&Globals.szSetQuota) FN_GLOBAL_STRING(lp_auto_services
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices 
FN_GLOBAL_STRING (lp_passwd_program,&Globals.szPasswdProgram) FN_GLOBAL_STRING(lp_passwd_chat
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat 
FN_GLOBAL_STRING (lp_passwordserver,&Globals.szPasswordServer) FN_GLOBAL_STRING(lp_name_resolve_order
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder 
FN_GLOBAL_STRING (lp_realm,&Globals.szRealm) FN_GLOBAL_CONST_STRING(lp_afs_username_map
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap 
FN_GLOBAL_INTEGER (lp_afs_token_lifetime,&Globals.iAfsTokenLifetime) FN_GLOBAL_STRING(lp_log_nt_token_command
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand 
FN_GLOBAL_STRING (lp_username_map,&Globals.szUsernameMap) FN_GLOBAL_CONST_STRING(lp_logon_script
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript 
FN_GLOBAL_CONST_STRING (lp_logon_path,&Globals.szLogonPath) FN_GLOBAL_CONST_STRING(lp_logon_drive
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript &Globals
szLogonDrive 
FN_GLOBAL_CONST_STRING (lp_logon_home,&Globals.szLogonHome) FN_GLOBAL_STRING(lp_remote_announce
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript &Globals
szLogonDrive &Globals szRemoteAnnounce 
FN_GLOBAL_STRING (lp_remote_browse_sync,&Globals.szRemoteBrowseSync) FN_GLOBAL_LIST(lp_wins_server_list
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript &Globals
szLogonDrive &Globals szRemoteAnnounce
&Globals szWINSservers 
FN_GLOBAL_LIST (lp_interfaces,&Globals.szInterfaces) FN_GLOBAL_STRING(lp_socket_address
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript &Globals
szLogonDrive &Globals szRemoteAnnounce
&Globals szWINSservers &Globals
szSocketAddress 
FN_GLOBAL_STRING (lp_nis_home_map_name,&Globals.szNISHomeMapName) static FN_GLOBAL_STRING(lp_announce_version
&Globals dos_charset &Globals
display_charset &Globals szConfigFile
&Globals szPrivateDir &Globals
PrintcapCacheTime &Globals
szEnumPortsCommand &Globals
szDeletePrinterCommand &Globals
szLockDir &Globals szManglingMethod
&Globals szUtmpDir &Globals
bUtmp &Globals szDefaultService
&Globals szGetQuota &Globals
szAutoServices &Globals szPasswdChat
&Globals szNameResolveOrder
&Globals szAfsUsernameMap
&Globals szLogNtTokenCommand
&Globals szLogonScript &Globals
szLogonDrive &Globals szRemoteAnnounce
&Globals szWINSservers &Globals
szSocketAddress &Globals szAnnounceVersion 
FN_GLOBAL_LIST (lp_netbios_aliases,&Globals.szNetbiosAliases) const char *lp_passdb_backend(void)
 FN_GLOBAL_LIST (lp_preload_modules,&Globals.szPreloadModules) FN_GLOBAL_STRING(lp_panic_action
&Globals szPanicAction FN_GLOBAL_STRING (lp_adduser_script,&Globals.szAddUserScript) FN_GLOBAL_STRING(lp_renameuser_script
&Globals szPanicAction &Globals
szRenameUserScript 
FN_GLOBAL_STRING (lp_deluser_script,&Globals.szDelUserScript) FN_GLOBAL_CONST_STRING(lp_guestaccount
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount 
FN_GLOBAL_STRING (lp_addgroup_script,&Globals.szAddGroupScript) FN_GLOBAL_STRING(lp_delgroup_script
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript 
FN_GLOBAL_STRING (lp_addusertogroup_script,&Globals.szAddUserToGroupScript) FN_GLOBAL_STRING(lp_deluserfromgroup_script
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript 
FN_GLOBAL_STRING (lp_setprimarygroup_script,&Globals.szSetPrimaryGroupScript) FN_GLOBAL_STRING(lp_addmachine_script
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript 
FN_GLOBAL_STRING (lp_shutdown_script,&Globals.szShutdownScript) FN_GLOBAL_STRING(lp_abort_shutdown_script
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript 
FN_GLOBAL_STRING (lp_username_map_script,&Globals.szUsernameMapScript) FN_GLOBAL_STRING(lp_check_password_script
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript 
FN_GLOBAL_STRING (lp_wins_hook,&Globals.szWINSHook) FN_GLOBAL_CONST_STRING(lp_template_homedir
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir 
FN_GLOBAL_CONST_STRING (lp_template_shell,&Globals.szTemplateShell) FN_GLOBAL_CONST_STRING(lp_winbind_separator
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator 
FN_GLOBAL_INTEGER (lp_acl_compatibility,&Globals.iAclCompat) FN_GLOBAL_BOOL(lp_winbind_enum_users
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers 
FN_GLOBAL_BOOL (lp_winbind_enum_groups,&Globals.bWinbindEnumGroups) FN_GLOBAL_BOOL(lp_winbind_use_default_domain
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain 
FN_GLOBAL_BOOL (lp_winbind_trusted_domains_only,&Globals.bWinbindTrustedDomainsOnly) FN_GLOBAL_BOOL(lp_winbind_nested_groups
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups 
FN_GLOBAL_BOOL (lp_winbind_refresh_tickets,&Globals.bWinbindRefreshTickets) FN_GLOBAL_BOOL(lp_winbind_offline_logon
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon 
FN_GLOBAL_BOOL (lp_winbind_normalize_names,&Globals.bWinbindNormalizeNames) FN_GLOBAL_LIST(lp_idmap_domains
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains 
FN_GLOBAL_LIST (lp_idmap_backend,&Globals.szIdmapBackend) FN_GLOBAL_STRING(lp_idmap_alloc_backend
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend 
FN_GLOBAL_INTEGER (lp_idmap_cache_time,&Globals.iIdmapCacheTime) FN_GLOBAL_INTEGER(lp_idmap_negative_cache_time
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime 
FN_GLOBAL_BOOL (lp_passdb_expand_explicit,&Globals.bPassdbExpandExplicit) FN_GLOBAL_STRING(lp_ldap_suffix
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix 
FN_GLOBAL_STRING (lp_ldap_admin_dn,&Globals.szLdapAdminDn) FN_GLOBAL_INTEGER(lp_ldap_ssl
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl 
FN_GLOBAL_INTEGER (lp_ldap_passwd_sync,&Globals.ldap_passwd_sync) FN_GLOBAL_BOOL(lp_ldap_delete_dn
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn 
FN_GLOBAL_INTEGER (lp_ldap_replication_sleep,&Globals.ldap_replication_sleep) FN_GLOBAL_INTEGER(lp_ldap_timeout
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout 
FN_GLOBAL_INTEGER (lp_ldap_page_size,&Globals.ldap_page_size) FN_GLOBAL_INTEGER(lp_ldap_debug_level
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level 
FN_GLOBAL_INTEGER (lp_ldap_debug_threshold,&Globals.ldap_debug_threshold) FN_GLOBAL_STRING(lp_add_share_cmd
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand 
FN_GLOBAL_STRING (lp_change_share_cmd,&Globals.szChangeShareCommand) FN_GLOBAL_STRING(lp_delete_share_cmd
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand 
FN_GLOBAL_STRING (lp_usershare_path,&Globals.szUsersharePath) FN_GLOBAL_LIST(lp_usershare_prefix_allow_list
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList 
FN_GLOBAL_LIST (lp_usershare_prefix_deny_list,&Globals.szUsersharePrefixDenyList) FN_GLOBAL_LIST(lp_eventlog_list
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs 
FN_GLOBAL_BOOL (lp_usershare_allow_guests,&Globals.bUsershareAllowGuests) FN_GLOBAL_BOOL(lp_usershare_owner_only
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly 
FN_GLOBAL_BOOL (lp_disable_netbios,&Globals.bDisableNetbios) FN_GLOBAL_BOOL(lp_reset_on_zero_vc
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC 
FN_GLOBAL_BOOL (lp_ms_add_printer_wizard,&Globals.bMsAddPrinterWizard) FN_GLOBAL_BOOL(lp_dns_proxy
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy 
FN_GLOBAL_BOOL (lp_wins_support,&Globals.bWINSsupport) FN_GLOBAL_BOOL(lp_we_are_a_wins_server
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport 
FN_GLOBAL_BOOL (lp_wins_proxy,&Globals.bWINSproxy) FN_GLOBAL_BOOL(lp_local_master
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster 
FN_GLOBAL_BOOL (lp_domain_logons,&Globals.bDomainLogons) FN_GLOBAL_BOOL(lp_load_printers
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters 
FN_GLOBAL_BOOL (lp_readbmpx,&Globals.bReadbmpx) FN_GLOBAL_BOOL(lp_readraw
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw 
FN_GLOBAL_BOOL (lp_large_readwrite,&Globals.bLargeReadwrite) FN_GLOBAL_BOOL(lp_writeraw
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw 
FN_GLOBAL_BOOL (lp_null_passwords,&Globals.bNullPasswords) FN_GLOBAL_BOOL(lp_obey_pam_restrictions
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions 
FN_GLOBAL_BOOL (lp_encrypted_passwords,&Globals.bEncryptPasswords) FN_GLOBAL_BOOL(lp_update_encrypted
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt 
FN_GLOBAL_INTEGER (lp_client_schannel,&Globals.clientSchannel) FN_GLOBAL_INTEGER(lp_server_schannel
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel 
FN_GLOBAL_BOOL (lp_syslog_only,&Globals.bSyslogOnly) FN_GLOBAL_BOOL(lp_timestamp_logs
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs 
FN_GLOBAL_BOOL (lp_debug_prefix_timestamp,&Globals.bDebugPrefixTimestamp) FN_GLOBAL_BOOL(lp_debug_hires_timestamp
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp 
FN_GLOBAL_BOOL (lp_debug_pid,&Globals.bDebugPid) FN_GLOBAL_BOOL(lp_debug_uid
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid 
FN_GLOBAL_BOOL (lp_enable_core_files,&Globals.bEnableCoreFiles) FN_GLOBAL_BOOL(lp_browse_list
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList 
FN_GLOBAL_BOOL (lp_nis_home_map,&Globals.bNISHomeMap) static FN_GLOBAL_BOOL(lp_time_server
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer 
FN_GLOBAL_BOOL (lp_bind_interfaces_only,&Globals.bBindInterfacesOnly) FN_GLOBAL_BOOL(lp_pam_password_change
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange 
FN_GLOBAL_BOOL (lp_unix_password_sync,&Globals.bUnixPasswdSync) FN_GLOBAL_BOOL(lp_passwd_chat_debug
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug 
FN_GLOBAL_INTEGER (lp_passwd_chat_timeout,&Globals.iPasswdChatTimeout) FN_GLOBAL_BOOL(lp_nt_pipe_support
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport 
FN_GLOBAL_BOOL (lp_nt_status_support,&Globals.bNTStatusSupport) FN_GLOBAL_BOOL(lp_stat_cache
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache 
FN_GLOBAL_INTEGER (lp_max_stat_cache_size,&Globals.iMaxStatCacheSize) FN_GLOBAL_BOOL(lp_allow_trusted_domains
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains 
FN_GLOBAL_INTEGER (lp_restrict_anonymous,&Globals.restrict_anonymous) FN_GLOBAL_BOOL(lp_lanman_auth
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth 
FN_GLOBAL_BOOL (lp_ntlm_auth,&Globals.bNTLMAuth) FN_GLOBAL_BOOL(lp_client_plaintext_auth
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth 
FN_GLOBAL_BOOL (lp_client_lanman_auth,&Globals.bClientLanManAuth) FN_GLOBAL_BOOL(lp_client_ntlmv2_auth
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth &Globals
bClientNTLMv2Auth 
FN_GLOBAL_BOOL (lp_host_msdfs,&Globals.bHostMSDfs) FN_GLOBAL_BOOL(lp_kernel_oplocks
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth &Globals
bClientNTLMv2Auth &Globals
bKernelOplocks 
FN_GLOBAL_BOOL (lp_enhanced_browsing,&Globals.enhanced_browsing) FN_GLOBAL_BOOL(lp_use_mmap
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth &Globals
bClientNTLMv2Auth &Globals
bKernelOplocks &Globals bUseMmap 
FN_GLOBAL_BOOL (lp_unix_extensions,&Globals.bUnixExtensions) FN_GLOBAL_BOOL(lp_use_spnego
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth &Globals
bClientNTLMv2Auth &Globals
bKernelOplocks &Globals bUseMmap
&Globals bUseSpnego 
FN_GLOBAL_BOOL (lp_client_use_spnego,&Globals.bClientUseSpnego) FN_GLOBAL_BOOL(lp_hostname_lookups
&Globals szPanicAction &Globals
szRenameUserScript &Globals
szGuestaccount &Globals szDelGroupScript
&Globals szDelUserFromGroupScript
&Globals szAddMachineScript
&Globals szAbortShutdownScript
&Globals szCheckPasswordScript
&Globals szTemplateHomedir
&Globals szWinbindSeparator
&Globals bWinbindEnumUsers
&Globals bWinbindUseDefaultDomain
&Globals bWinbindNestedGroups
&Globals bWinbindOfflineLogon
&Globals szIdmapDomains &Globals
szIdmapAllocBackend &Globals
iIdmapNegativeCacheTime &Globals
szLdapSuffix &Globals ldap_ssl
&Globals ldap_delete_dn &Globals
ldap_timeout &Globals ldap_debug_level
&Globals szAddShareCommand
&Globals szDeleteShareCommand
&Globals szUsersharePrefixAllowList
&Globals szEventLogs &Globals
bUsershareOwnerOnly &Globals
bResetOnZeroVC &Globals bDNSproxy
&Globals bWINSsupport &Globals
bLocalMaster &Globals bLoadPrinters
&Globals bReadRaw &Globals
bWriteRaw &Globals bObeyPamRestrictions
&Globals bUpdateEncrypt &Globals
serverSchannel &Globals bTimestampLogs
&Globals bDebugHiresTimestamp
&Globals bDebugUid &Globals
bBrowseList &Globals bTimeServer
&Globals bPamPasswordChange
&Globals bPasswdChatDebug
&Globals bNTPipeSupport &Globals
bStatCache &Globals bAllowTrustedDomains
&Globals bLanmanAuth &Globals
bClientPlaintextAuth &Globals
bClientNTLMv2Auth &Globals
bKernelOplocks &Globals bUseMmap
&Globals bUseSpnego &Globals
bHostnameLookups 
FN_LOCAL_PARM_BOOL (lp_change_notify, bChangeNotify)
static int lp_int (const char *s)
static unsigned long lp_ulong (const char *s)
static BOOL lp_bool (const char *s)
static int lp_enum (const char *s, const struct enum_list *_enum)
char * lp_parm_string (const char *servicename, const char *type, const char *option)
char * lp_parm_talloc_string (int snum, const char *type, const char *option, const char *def)
const char * lp_parm_const_string (int snum, const char *type, const char *option, const char *def)
const char ** lp_parm_string_list (int snum, const char *type, const char *option, const char **def)
int lp_parm_int (int snum, const char *type, const char *option, int def)
unsigned long lp_parm_ulong (int snum, const char *type, const char *option, unsigned long def)
BOOL lp_parm_bool (int snum, const char *type, const char *option, BOOL def)
int lp_parm_enum (int snum, const char *type, const char *option, const struct enum_list *_enum, int def)
static void init_service (service *pservice)
static void free_service (service *pservice)
static void free_service_byindex (int idx)
static int add_a_service (const service *pservice, const char *name)
static char * canonicalize_servicename (const char *src)
static BOOL hash_a_service (const char *name, int idx)
BOOL lp_add_home (const char *pszHomename, int iDefaultService, const char *user, const char *pszHomedir)
int lp_add_service (const char *pszService, int iDefaultService)
static BOOL lp_add_ipc (const char *ipc_name, BOOL guest_ok)
BOOL lp_add_printer (const char *pszPrintername, int iDefaultService)
static int map_parameter (const char *pszParmName)
void show_parameter_list (void)
static BOOL set_boolean (BOOL *pb, const char *pszParmValue)
static int getservicebyname (const char *pszServiceName, service *pserviceDest)
static void copy_service (service *pserviceDest, service *pserviceSource, BOOL *pcopymapDest)
static BOOL service_ok (int iService)
static void add_to_file_list (const char *fname, const char *subfname)
BOOL lp_file_list_changed (void)
BOOL lp_idmap_uid (uid_t *low, uid_t *high)
BOOL lp_idmap_gid (gid_t *low, gid_t *high)
static const char * append_ldap_suffix (const char *str)
const char * lp_ldap_machine_suffix (void)
const char * lp_ldap_user_suffix (void)
const char * lp_ldap_group_suffix (void)
const char * lp_ldap_idmap_suffix (void)
static void lp_set_enum_parm (struct parm_struct *parm, const char *pszParmValue, int *ptr)
static void init_copymap (service *pservice)
void * lp_local_ptr (int snum, void *ptr)
BOOL lp_do_parameter (int snum, const char *pszParmName, const char *pszParmValue)
static BOOL do_parameter (const char *pszParmName, const char *pszParmValue)
static void print_parameter (struct parm_struct *p, void *ptr, FILE *f)
static BOOL equal_parameter (parm_type type, void *ptr1, void *ptr2)
void init_locals (void)
static BOOL do_section (const char *pszSectionName)
static BOOL is_default (int i)
static void dump_globals (FILE *f)
BOOL lp_is_default (int snum, struct parm_struct *parm)
static void dump_a_service (service *pService, FILE *f)
BOOL dump_a_parameter (int snum, char *parm_name, FILE *f, BOOL isGlobal)
parm_structlp_next_parameter (int snum, int *i, int allparameters)
static void dump_copy_map (BOOL *pcopymap)
BOOL lp_snum_ok (int iService)
static void lp_add_auto_services (char *str)
void lp_add_one_printer (char *name, char *comment)
BOOL lp_loaded (void)
void lp_killunused (BOOL(*snumused)(int))
void lp_killservice (int iServiceIn)
static void lp_save_defaults (void)
const char * server_role_str (uint32 role)
static BOOL check_usershare_stat (const char *fname, SMB_STRUCT_STAT *psbuf)
enum usershare_err parse_usershare_file (TALLOC_CTX *ctx, SMB_STRUCT_STAT *psbuf, const char *servicename, int snum, char **lines, int numlines, pstring sharepath, pstring comment, SEC_DESC **ppsd, BOOL *pallow_guest)
static int process_usershare_file (const char *dir_name, const char *file_name, int snum_template)
static BOOL usershare_exists (int iService, time_t *last_mod)
int load_usershare_service (const char *servicename)

変数

BOOL in_client = False
BOOL bLoaded = False
pstring user_socket_options
enum protocol_types Protocol
userdom_struct current_user_info
int keepalive = DEFAULT_KEEPALIVE
BOOL use_getwd_cache = True
int extra_time_offset
static BOOL defaults_saved = False
static global Globals
static service sDefault
static service ** ServicePtrs = NULL
static int iNumServices = 0
static int iServiceIndex = 0
static TDB_CONTEXTServiceHash
static int * invalid_services = NULL
static int num_invalid_services = 0
static BOOL bInGlobalSection = True
static BOOL bGlobalOnly = False
static int server_role
static int default_server_announce
static struct enum_list enum_protocol []
static struct enum_list enum_security []
static struct enum_list enum_printing []
static struct enum_list enum_ldap_ssl []
static struct enum_list enum_ldap_passwd_sync []
static struct enum_list enum_announce_as []
static struct enum_list enum_map_readonly []
static struct enum_list enum_case []
static struct enum_list enum_bool_auto []
static struct enum_list enum_csc_policy []
static struct enum_list enum_smb_signing_vals []
static struct enum_list enum_acl_compat_vals []
static struct enum_list enum_map_to_guest []
static struct parm_struct parm_table []
static TALLOC_CTXlp_talloc
static uid_t idmap_uid_low
static uid_t idmap_uid_high
static gid_t idmap_gid_low
static gid_t idmap_gid_high
static struct srv_role_tab srv_role_tab []


型定義

typedef struct _param_opt_struct param_opt_struct

loadparm.c89 行で定義されています。


関数

static BOOL handle_include ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3200 行で定義されています。

参照先 add_to_file_list()current_user_infodo_parameter()do_section()userdom_struct::domainfile_exist()get_current_username()pm_process()standard_sub_basic()string_set().

03201 {
03202         pstring fname;
03203         pstrcpy(fname, pszParmValue);
03204 
03205         standard_sub_basic(get_current_username(), current_user_info.domain,
03206                            fname,sizeof(fname));
03207 
03208         add_to_file_list(pszParmValue, fname);
03209 
03210         string_set(ptr, fname);
03211 
03212         if (file_exist(fname, NULL))
03213                 return (pm_process(fname, do_section, do_parameter));
03214 
03215         DEBUG(2, ("Can't find include file %s\n", fname));
03216 
03217         return (False);
03218 }

static BOOL handle_copy ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3224 行で定義されています。

参照先 copy_service()free_service()getservicebyname()init_service()ServicePtrsstring_set().

03225 {
03226         BOOL bRetval;
03227         int iTemp;
03228         service serviceTemp;
03229 
03230         string_set(ptr, pszParmValue);
03231 
03232         init_service(&serviceTemp);
03233 
03234         bRetval = False;
03235 
03236         DEBUG(3, ("Copying service from service %s\n", pszParmValue));
03237 
03238         if ((iTemp = getservicebyname(pszParmValue, &serviceTemp)) >= 0) {
03239                 if (iTemp == iServiceIndex) {
03240                         DEBUG(0, ("Can't copy service %s - unable to copy self!\n", pszParmValue));
03241                 } else {
03242                         copy_service(ServicePtrs[iServiceIndex],
03243                                      &serviceTemp,
03244                                      ServicePtrs[iServiceIndex]->copymap);
03245                         bRetval = True;
03246                 }
03247         } else {
03248                 DEBUG(0, ("Unable to copy service - source not found: %s\n", pszParmValue));
03249                 bRetval = False;
03250         }
03251 
03252         free_service(&serviceTemp);
03253         return (bRetval);
03254 }

static BOOL handle_netbios_name ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3133 行で定義されています。

参照先 current_user_infouserdom_struct::domainget_current_username()global_mynameglobal_myname_override()Globalsset_global_myname()standard_sub_basic()string_set()global::szNetbiosName.

03134 {
03135         BOOL ret;
03136         pstring netbios_name;
03137 
03138         if (global_myname_override()) {
03139                 DEBUG(4, ("handle_netbios_name: ignoring netbios name "
03140                           "parameter"));
03141                 return True;
03142         }
03143 
03144         pstrcpy(netbios_name, pszParmValue);
03145 
03146         standard_sub_basic(get_current_username(), current_user_info.domain,
03147                            netbios_name, sizeof(netbios_name));
03148 
03149         ret = set_global_myname(netbios_name);
03150         string_set(&Globals.szNetbiosName,global_myname());
03151         
03152         DEBUG(4, ("handle_netbios_name: set global_myname to: %s\n",
03153                global_myname()));
03154 
03155         return ret;
03156 }

static BOOL handle_idmap_uid ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3312 行で定義されています。

参照先 string_set().

03313 {
03314         uint32 low, high;
03315 
03316         if (sscanf(pszParmValue, "%u - %u", &low, &high) != 2 || high < low)
03317                 return False;
03318 
03319         /* Parse OK */
03320 
03321         string_set(ptr, pszParmValue);
03322 
03323         idmap_uid_low = low;
03324         idmap_uid_high = high;
03325 
03326         return True;
03327 }

static BOOL handle_idmap_gid ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3329 行で定義されています。

参照先 string_set().

03330 {
03331         uint32 low, high;
03332 
03333         if (sscanf(pszParmValue, "%u - %u", &low, &high) != 2 || high < low)
03334                 return False;
03335 
03336         /* Parse OK */
03337 
03338         string_set(ptr, pszParmValue);
03339 
03340         idmap_gid_low = low;
03341         idmap_gid_high = high;
03342 
03343         return True;
03344 }

static BOOL handle_debug_list ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3350 行で定義されています。

参照先 debug_parse_levels()string_set().

03351 {
03352         pstring pszParmValue;
03353 
03354         pstrcpy(pszParmValue, pszParmValueIn);
03355         string_set(ptr, pszParmValueIn);
03356         return debug_parse_levels( pszParmValue );
03357 }

static BOOL handle_workgroup ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3169 行で定義されています。

参照先 Globalslp_workgroup()set_global_myworkgroup()string_set()global::szWorkgroup.

03170 {
03171         BOOL ret;
03172         
03173         ret = set_global_myworkgroup(pszParmValue);
03174         string_set(&Globals.szWorkgroup,lp_workgroup());
03175         
03176         return ret;
03177 }

static BOOL handle_netbios_aliases ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3189 行で定義されています。

参照先 Globalsset_netbios_aliases()str_list_free()str_list_make()global::szNetbiosAliases.

03190 {
03191         str_list_free(&Globals.szNetbiosAliases);
03192         Globals.szNetbiosAliases = str_list_make(pszParmValue, NULL);
03193         return set_netbios_aliases((const char **)Globals.szNetbiosAliases);
03194 }

static BOOL handle_netbios_scope ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3179 行で定義されています。

参照先 global_scope()Globalsset_global_scope()string_set()global::szNetbiosScope.

03180 {
03181         BOOL ret;
03182         
03183         ret = set_global_scope(pszParmValue);
03184         string_set(&Globals.szNetbiosScope,global_scope());
03185 
03186         return ret;
03187 }

static BOOL handle_charset ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3158 行で定義されています。

参照先 init_iconv()string_set().

03159 {
03160         if (strcmp(*ptr, pszParmValue) != 0) {
03161                 string_set(ptr, pszParmValue);
03162                 init_iconv();
03163         }
03164         return True;
03165 }

static BOOL handle_printing ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3432 行で定義されています。

参照先 init_printer_values()lp_set_enum_parm()map_parameter()parm_tablesDefaultServicePtrs.

03433 {
03434         static int parm_num = -1;
03435         service *s;
03436 
03437         if ( parm_num == -1 )
03438                 parm_num = map_parameter( "printing" );
03439 
03440         lp_set_enum_parm( &parm_table[parm_num], pszParmValue, (int*)ptr );
03441 
03442         if ( snum < 0 )
03443                 s = &sDefault;
03444         else
03445                 s = ServicePtrs[snum];
03446 
03447         init_printer_values( s );
03448 
03449         return True;
03450 }

static BOOL handle_ldap_debug_level ( int  snum,
const char *  pszParmValue,
char **  ptr 
) [static]

loadparm.c3256 行で定義されています。

参照先 Globalsinit_ldap_debugging()global::ldap_debug_levellp_int().

03257 {
03258         Globals.ldap_debug_level = lp_int(pszParmValue);
03259         init_ldap_debugging();
03260         return True;
03261 }

static void set_server_role ( void   )  [static]

loadparm.c4295 行で定義されています。

参照先 global::bDomainMasterGlobalsROLE_DOMAIN_BDCROLE_DOMAIN_MEMBERROLE_DOMAIN_PDCROLE_STANDALONESEC_ADSSEC_DOMAINSEC_SERVERSEC_SHARESEC_USERserver_roleserver_role_str().

04296 {
04297         server_role = ROLE_STANDALONE;
04298 
04299         switch (lp_security()) {
04300                 case SEC_SHARE:
04301                         if (lp_domain_logons())
04302                                 DEBUG(0, ("Server's Role (logon server) conflicts with share-level security\n"));
04303                         break;
04304                 case SEC_SERVER:
04305                         if (lp_domain_logons())
04306                                 DEBUG(0, ("Server's Role (logon server) conflicts with server-level security\n"));
04307                         /* this used to be considered ROLE_DOMAIN_MEMBER but that's just wrong */
04308                         server_role = ROLE_STANDALONE;
04309                         break;
04310                 case SEC_DOMAIN:
04311                         if (lp_domain_logons()) {
04312                                 DEBUG(1, ("Server's Role (logon server) NOT ADVISED with domain-level security\n"));
04313                                 server_role = ROLE_DOMAIN_BDC;
04314                                 break;
04315                         }
04316                         server_role = ROLE_DOMAIN_MEMBER;
04317                         break;
04318                 case SEC_ADS:
04319                         if (lp_domain_logons()) {
04320                                 server_role = ROLE_DOMAIN_PDC;
04321                                 break;
04322                         }
04323                         server_role = ROLE_DOMAIN_MEMBER;
04324                         break;
04325                 case SEC_USER:
04326                         if (lp_domain_logons()) {
04327 
04328                                 if (Globals.bDomainMaster) /* auto or yes */ 
04329                                         server_role = ROLE_DOMAIN_PDC;
04330                                 else
04331                                         server_role = ROLE_DOMAIN_BDC;
04332                         }
04333                         break;
04334                 default:
04335                         DEBUG(0, ("Server's Role undefined due to unknown security mode\n"));
04336                         break;
04337         }
04338 
04339         DEBUG(10, ("set_server_role: role = %s\n", server_role_str(server_role)));
04340 }

static void set_default_server_announce_type ( void   )  [static]

static void set_allowed_client_auth ( void   )  [static]

loadparm.c4346 行で定義されています。

参照先 global::bClientLanManAuthglobal::bClientNTLMv2Authglobal::bClientPlaintextAuthGlobals.

04347 {
04348         if (Globals.bClientNTLMv2Auth) {
04349                 Globals.bClientLanManAuth = False;
04350         }
04351         if (!Globals.bClientLanManAuth) {
04352                 Globals.bClientPlaintextAuth = False;
04353         }
04354 }

static void init_printer_values ( service pService  )  [static]

loadparm.c1317 行で定義されています。

参照先 service::iPrintingPRINT_AIXPRINT_BSDPRINT_CUPSPRINT_HPUXPRINT_LPRNGPRINT_LPRNTPRINT_LPROS2PRINT_PLPPRINT_QNXPRINT_SYSVPRINT_TESTstring_set()service::szLppausecommandservice::szLpqcommandservice::szLpresumecommandservice::szLprmcommandservice::szPrintcommandservice::szQueuepausecommandservice::szQueueresumecommand.

参照元 handle_printing()init_globals().

01318 {
01319         /* choose defaults depending on the type of printing */
01320         switch (pService->iPrinting) {
01321                 case PRINT_BSD:
01322                 case PRINT_AIX:
01323                 case PRINT_LPRNT:
01324                 case PRINT_LPROS2:
01325                         string_set(&pService->szLpqcommand, "lpq -P'%p'");
01326                         string_set(&pService->szLprmcommand, "lprm -P'%p' %j");
01327                         string_set(&pService->szPrintcommand, "lpr -r -P'%p' %s");
01328                         break;
01329 
01330                 case PRINT_LPRNG:
01331                 case PRINT_PLP:
01332                         string_set(&pService->szLpqcommand, "lpq -P'%p'");
01333                         string_set(&pService->szLprmcommand, "lprm -P'%p' %j");
01334                         string_set(&pService->szPrintcommand, "lpr -r -P'%p' %s");
01335                         string_set(&pService->szQueuepausecommand, "lpc stop '%p'");
01336                         string_set(&pService->szQueueresumecommand, "lpc start '%p'");
01337                         string_set(&pService->szLppausecommand, "lpc hold '%p' %j");
01338                         string_set(&pService->szLpresumecommand, "lpc release '%p' %j");
01339                         break;
01340 
01341                 case PRINT_CUPS:
01342                 case PRINT_IPRINT:
01343 #ifdef HAVE_CUPS
01344                         /* set the lpq command to contain the destination printer
01345                            name only.  This is used by cups_queue_get() */
01346                         string_set(&pService->szLpqcommand, "%p");
01347                         string_set(&pService->szLprmcommand, "");
01348                         string_set(&pService->szPrintcommand, "");
01349                         string_set(&pService->szLppausecommand, "");
01350                         string_set(&pService->szLpresumecommand, "");
01351                         string_set(&pService->szQueuepausecommand, "");
01352                         string_set(&pService->szQueueresumecommand, "");
01353 #else
01354                         string_set(&pService->szLpqcommand, "lpq -P'%p'");
01355                         string_set(&pService->szLprmcommand, "lprm -P'%p' %j");
01356                         string_set(&pService->szPrintcommand, "lpr -P'%p' %s; rm %s");
01357                         string_set(&pService->szLppausecommand, "lp -i '%p-%j' -H hold");
01358                         string_set(&pService->szLpresumecommand, "lp -i '%p-%j' -H resume");
01359                         string_set(&pService->szQueuepausecommand, "disable '%p'");
01360                         string_set(&pService->szQueueresumecommand, "enable '%p'");
01361 #endif /* HAVE_CUPS */
01362                         break;
01363 
01364                 case PRINT_SYSV:
01365                 case PRINT_HPUX:
01366                         string_set(&pService->szLpqcommand, "lpstat -o%p");
01367                         string_set(&pService->szLprmcommand, "cancel %p-%j");
01368                         string_set(&pService->szPrintcommand, "lp -c -d%p %s; rm %s");
01369                         string_set(&pService->szQueuepausecommand, "disable %p");
01370                         string_set(&pService->szQueueresumecommand, "enable %p");
01371 #ifndef HPUX
01372                         string_set(&pService->szLppausecommand, "lp -i %p-%j -H hold");
01373                         string_set(&pService->szLpresumecommand, "lp -i %p-%j -H resume");
01374 #endif /* HPUX */
01375                         break;
01376 
01377                 case PRINT_QNX:
01378                         string_set(&pService->szLpqcommand, "lpq -P%p");
01379                         string_set(&pService->szLprmcommand, "lprm -P%p %j");
01380                         string_set(&pService->szPrintcommand, "lp -r -P%p %s");
01381                         break;
01382 
01383 #ifdef DEVELOPER
01384         case PRINT_TEST:
01385         case PRINT_VLP:
01386                 string_set(&pService->szPrintcommand, "vlp print %p %s");
01387                 string_set(&pService->szLpqcommand, "vlp lpq %p");
01388                 string_set(&pService->szLprmcommand, "vlp lprm %p %j");
01389                 string_set(&pService->szLppausecommand, "vlp lppause %p %j");
01390                 string_set(&pService->szLpresumecommand, "vlp lpresum %p %j");
01391                 string_set(&pService->szQueuepausecommand, "vlp queuepause %p");
01392                 string_set(&pService->szQueueresumecommand, "vlp queueresume %p");
01393                 break;
01394 #endif /* DEVELOPER */
01395 
01396         }
01397 }

static void init_globals ( BOOL  first_time_only  )  [static]

loadparm.c1403 行で定義されています。

参照先 global::AlgorithmicRidBaseglobal::announce_asglobal::bAllowTrustedDomainsglobal::bASUSupportglobal::bBindInterfacesOnlyglobal::bBrowseListglobal::bClientLanManAuthglobal::bClientNTLMv2Authglobal::bClientPlaintextAuthglobal::bClientUseSpnegoglobal::bDebugHiresTimestampglobal::bDebugPidglobal::bDebugPrefixTimestampglobal::bDebugUidglobal::bDeferSharingViolationsglobal::bDisableSpoolssglobal::bDNSproxyglobal::bDomainLogonsglobal::bDomainMasterglobal::bEnableCoreFilesglobal::bEnablePrivilegesglobal::bEncryptPasswordsglobal::bHostMSDfsglobal::bHostnameLookupsglobal::bKernelOplocksglobal::bLanmanAuthglobal::bLargeReadwriteglobal::bLoadPrintersglobal::bLocalMasterglobal::bMsAddPrinterWizardglobal::bNISHomeMapglobal::bNTLMAuthglobal::bNTPipeSupportglobal::bNTStatusSupportglobal::bNullPasswordsglobal::bObeyPamRestrictionsglobal::bPamPasswordChangeglobal::bPassdbExpandExplicitglobal::bPasswdChatDebugglobal::bPreferredMasterglobal::bReadbmpxglobal::bReadRawglobal::bResetOnZeroVCglobal::bStatCacheglobal::bSyslogOnlyglobal::bTimeServerglobal::bTimestampLogsglobal::bUnixExtensionsglobal::bUnixPasswdSyncglobal::bUpdateEncryptglobal::bUseMmapglobal::bUsershareAllowGuestsglobal::bUsershareOwnerOnlyglobal::bUseSpnegoglobal::bWinbindEnumGroupsglobal::bWinbindEnumUsersglobal::bWinbindNestedGroupsglobal::bWinbindOfflineLogonglobal::bWinbindRefreshTicketsglobal::bWinbindTrustedDomainsOnlyglobal::bWinbindUseDefaultDomainglobal::bWINSproxyglobal::bWINSsupportglobal::bWriteRawglobal::client_signingglobal::clientSchannelglobal::deadtimeglobal::display_charsetglobal::dos_charsetdyn_LOCKDIRdyn_PIDDIRdyn_PRIVATE_DIRdyn_SMB_PASSWD_FILEglobal::enhanced_browsingservice::fstypeglobal_mynameglobal_myname_override()Globalsglobal::iAfsTokenLifetimeglobal::iIdmapCacheTimeglobal::iIdmapNegativeCacheTimeglobal::iLockSpinTimeglobal::iMaxSmbdProcessesglobal::iMaxStatCacheSizeinit_printer_values()global::iPasswdChatTimeoutglobal::iUsershareMaxSharesparm_struct::labelglobal::ldap_debug_levelglobal::ldap_debug_thresholdglobal::ldap_delete_dnglobal::ldap_page_sizeglobal::ldap_passwd_syncLDAP_PASSWD_SYNC_OFFglobal::ldap_replication_sleepglobal::ldap_sslLDAP_SSL_ONglobal::ldap_timeoutglobal::lm_announceglobal::lm_intervallp_workgroup()global::lpqcachetimeglobal::machine_password_timeoutglobal::mangle_prefixglobal::map_to_guestglobal::max_log_sizeglobal::max_muxglobal::max_open_filesglobal::max_ttlglobal::max_wins_ttlglobal::max_xmitglobal::maxprotocolglobal::min_wins_ttlglobal::minprotocolmyhostname()global::name_cache_timeoutglobal::open_files_db_hash_sizeglobal::oplock_break_wait_timeglobal::os_levelP_STRINGP_USTRINGglobal::paranoid_server_securityparm_tableglobal::PrintcapCacheTimePROTOCOL_COREPROTOCOL_NT1parm_struct::ptrglobal::pwordlevelglobal::restrict_anonymoussDefaultSEC_USERglobal::securityglobal::server_signingglobal::serverSchannelset_global_myname()set_global_myworkgroup()global::smb_portsstr_list_make()string_free()string_set()global::syslogglobal::szAnnounceVersionglobal::szCupsServerglobal::szGuestaccountglobal::szIPrintServerglobal::szLdapAdminDnglobal::szLdapGroupSuffixglobal::szLdapIdmapSuffixglobal::szLdapMachineSuffixglobal::szLdapSuffixglobal::szLdapUserSuffixglobal::szLockDirglobal::szLogFileglobal::szLogLevelglobal::szLogonDriveglobal::szLogonHomeglobal::szLogonPathglobal::szManglingMethodglobal::szNameResolveOrderglobal::szNetbiosNameglobal::szNISHomeMapNameglobal::szPanicActionglobal::szPassdbBackendglobal::szPasswdChatglobal::szPasswdProgramglobal::szPasswordServerglobal::szPidDirservice::szPrintjobUsernameglobal::szPrivateDirglobal::szServerStringglobal::szSMBPasswdFileglobal::szSocketAddressglobal::szTemplateHomedirglobal::szTemplateShellglobal::szUsersharePathglobal::szUsershareTemplateShareglobal::szWinbindNssInfoglobal::szWinbindSeparatorglobal::szWorkgrouptypeglobal::unamelevelglobal::unix_charsetuser_socket_optionsglobal::winbind_cache_time.

01404 {
01405         static BOOL done_init = False;
01406         pstring s;
01407 
01408         /* If requested to initialize only once and we've already done it... */
01409         if (first_time_only && done_init) {
01410                 /* ... then we have nothing more to do */
01411                 return;
01412         }
01413 
01414         if (!done_init) {
01415                 int i;
01416 
01417                 /* The logfile can be set before this is invoked. Free it if so. */
01418                 if (Globals.szLogFile != NULL) {
01419                         string_free(&Globals.szLogFile);
01420                         Globals.szLogFile = NULL;
01421                 }
01422 
01423                 memset((void *)&Globals, '\0', sizeof(Globals));
01424 
01425                 for (i = 0; parm_table[i].label; i++)
01426                         if ((parm_table[i].type == P_STRING ||
01427                              parm_table[i].type == P_USTRING) &&
01428                             parm_table[i].ptr)
01429                                 string_set((char **)parm_table[i].ptr, "");
01430 
01431                 string_set(&sDefault.fstype, FSTYPE_STRING);
01432                 string_set(&sDefault.szPrintjobUsername, "%U");
01433 
01434                 init_printer_values(&sDefault);
01435 
01436                 done_init = True;
01437         }
01438 
01439 
01440         DEBUG(3, ("Initialising global parameters\n"));
01441 
01442         string_set(&Globals.szSMBPasswdFile, dyn_SMB_PASSWD_FILE);
01443         string_set(&Globals.szPrivateDir, dyn_PRIVATE_DIR);
01444 
01445         /* use the new 'hash2' method by default, with a prefix of 1 */
01446         string_set(&Globals.szManglingMethod, "hash2");
01447         Globals.mangle_prefix = 1;
01448 
01449         string_set(&Globals.szGuestaccount, GUEST_ACCOUNT);
01450 
01451         /* using UTF8 by default allows us to support all chars */
01452         string_set(&Globals.unix_charset, DEFAULT_UNIX_CHARSET);
01453 
01454 #if defined(HAVE_NL_LANGINFO) && defined(CODESET)
01455         /* If the system supports nl_langinfo(), try to grab the value
01456            from the user's locale */
01457         string_set(&Globals.display_charset, "LOCALE");
01458 #else
01459         string_set(&Globals.display_charset, DEFAULT_DISPLAY_CHARSET);
01460 #endif
01461 
01462         /* Use codepage 850 as a default for the dos character set */
01463         string_set(&Globals.dos_charset, DEFAULT_DOS_CHARSET);
01464 
01465         /*
01466          * Allow the default PASSWD_CHAT to be overridden in local.h.
01467          */
01468         string_set(&Globals.szPasswdChat, DEFAULT_PASSWD_CHAT);
01469         
01470         if (!global_myname_override())
01471                 set_global_myname(myhostname());
01472         else
01473                 set_global_myname(global_myname_override());
01474         string_set(&Globals.szNetbiosName,global_myname());
01475 
01476         set_global_myworkgroup(WORKGROUP);
01477         string_set(&Globals.szWorkgroup, lp_workgroup());
01478         
01479         string_set(&Globals.szPasswdProgram, "");
01480         string_set(&Globals.szPidDir, dyn_PIDDIR);
01481         string_set(&Globals.szLockDir, dyn_LOCKDIR);
01482         string_set(&Globals.szSocketAddress, "0.0.0.0");
01483         pstrcpy(s, "Samba ");
01484         pstrcat(s, SAMBA_VERSION_STRING);
01485         string_set(&Globals.szServerString, s);
01486         slprintf(s, sizeof(s) - 1, "%d.%d", DEFAULT_MAJOR_VERSION,
01487                  DEFAULT_MINOR_VERSION);
01488         string_set(&Globals.szAnnounceVersion, s);
01489 #ifdef DEVELOPER
01490         string_set(&Globals.szPanicAction, "/bin/sleep 999999999");
01491 #endif
01492 
01493         pstrcpy(user_socket_options, DEFAULT_SOCKET_OPTIONS);
01494 
01495         string_set(&Globals.szLogonDrive, "");
01496         /* %N is the NIS auto.home server if -DAUTOHOME is used, else same as %L */
01497         string_set(&Globals.szLogonHome, "\\\\%N\\%U");
01498         string_set(&Globals.szLogonPath, "\\\\%N\\%U\\profile");
01499 
01500         string_set(&Globals.szNameResolveOrder, "lmhosts wins host bcast");
01501         string_set(&Globals.szPasswordServer, "*");
01502 
01503         Globals.AlgorithmicRidBase = BASE_RID;
01504 
01505         Globals.bLoadPrinters = True;
01506         Globals.PrintcapCacheTime = 750;        /* 12.5 minutes */
01507 
01508         /* Was 65535 (0xFFFF). 0x4101 matches W2K and causes major speed improvements... */
01509         /* Discovered by 2 days of pain by Don McCall @ HP :-). */
01510         Globals.max_xmit = 0x4104;
01511         Globals.max_mux = 50;   /* This is *needed* for profile support. */
01512         Globals.lpqcachetime = 30;      /* changed to handle large print servers better -- jerry */
01513         Globals.bDisableSpoolss = False;
01514         Globals.iMaxSmbdProcesses = 0;/* no limit specified */
01515         Globals.pwordlevel = 0;
01516         Globals.unamelevel = 0;
01517         Globals.deadtime = 0;
01518         Globals.bLargeReadwrite = True;
01519         Globals.max_log_size = 5000;
01520         Globals.max_open_files = MAX_OPEN_FILES;
01521         Globals.open_files_db_hash_size = SMB_OPEN_DATABASE_TDB_HASH_SIZE;
01522         Globals.maxprotocol = PROTOCOL_NT1;
01523         Globals.minprotocol = PROTOCOL_CORE;
01524         Globals.security = SEC_USER;
01525         Globals.paranoid_server_security = True;
01526         Globals.bEncryptPasswords = True;
01527         Globals.bUpdateEncrypt = False;
01528         Globals.clientSchannel = Auto;
01529         Globals.serverSchannel = Auto;
01530         Globals.bReadRaw = True;
01531         Globals.bWriteRaw = True;
01532         Globals.bReadbmpx = False;
01533         Globals.bNullPasswords = False;
01534         Globals.bObeyPamRestrictions = False;
01535         Globals.syslog = 1;
01536         Globals.bSyslogOnly = False;
01537         Globals.bTimestampLogs = True;
01538         string_set(&Globals.szLogLevel, "0");
01539         Globals.bDebugPrefixTimestamp = False;
01540         Globals.bDebugHiresTimestamp = False;
01541         Globals.bDebugPid = False;
01542         Globals.bDebugUid = False;
01543         Globals.bEnableCoreFiles = True;
01544         Globals.max_ttl = 60 * 60 * 24 * 3;     /* 3 days default. */
01545         Globals.max_wins_ttl = 60 * 60 * 24 * 6;        /* 6 days default. */
01546         Globals.min_wins_ttl = 60 * 60 * 6;     /* 6 hours default. */
01547         Globals.machine_password_timeout = 60 * 60 * 24 * 7;    /* 7 days default. */
01548         Globals.lm_announce = 2;        /* = Auto: send only if LM clients found */
01549         Globals.lm_interval = 60;
01550         Globals.announce_as = ANNOUNCE_AS_NT_SERVER;
01551 #if (defined(HAVE_NETGROUP) && defined(WITH_AUTOMOUNT))
01552         Globals.bNISHomeMap = False;
01553 #ifdef WITH_NISPLUS_HOME
01554         string_set(&Globals.szNISHomeMapName, "auto_home.org_dir");
01555 #else
01556         string_set(&Globals.szNISHomeMapName, "auto.home");
01557 #endif
01558 #endif
01559         Globals.bTimeServer = False;
01560         Globals.bBindInterfacesOnly = False;
01561         Globals.bUnixPasswdSync = False;
01562         Globals.bPamPasswordChange = False;
01563         Globals.bPasswdChatDebug = False;
01564         Globals.iPasswdChatTimeout = 2; /* 2 second default. */
01565         Globals.bNTPipeSupport = True;  /* Do NT pipes by default. */
01566         Globals.bNTStatusSupport = True; /* Use NT status by default. */
01567         Globals.bStatCache = True;      /* use stat cache by default */
01568         Globals.iMaxStatCacheSize = 1024; /* one Meg by default. */
01569         Globals.restrict_anonymous = 0;
01570         Globals.bClientLanManAuth = True;       /* Do use the LanMan hash if it is available */
01571         Globals.bClientPlaintextAuth = True;    /* Do use a plaintext password if is requested by the server */
01572         Globals.bLanmanAuth = True;     /* Do use the LanMan hash if it is available */
01573         Globals.bNTLMAuth = True;       /* Do use NTLMv1 if it is available (otherwise NTLMv2) */
01574         Globals.bClientNTLMv2Auth = False; /* Client should not use NTLMv2, as we can't tell that the server supports it. */
01575         /* Note, that we will use NTLM2 session security (which is different), if it is available */
01576 
01577         Globals.map_to_guest = 0;       /* By Default, "Never" */
01578         Globals.oplock_break_wait_time = 0;     /* By Default, 0 msecs. */
01579         Globals.enhanced_browsing = True; 
01580         Globals.iLockSpinTime = WINDOWS_MINIMUM_LOCK_TIMEOUT_MS; /* msec. */
01581 #ifdef MMAP_BLACKLIST
01582         Globals.bUseMmap = False;
01583 #else
01584         Globals.bUseMmap = True;
01585 #endif
01586         Globals.bUnixExtensions = True;
01587         Globals.bResetOnZeroVC = False;
01588 
01589         /* hostname lookups can be very expensive and are broken on
01590            a large number of sites (tridge) */
01591         Globals.bHostnameLookups = False;
01592 
01593         string_set(&Globals.szPassdbBackend, "smbpasswd");
01594         string_set(&Globals.szLdapSuffix, "");
01595         string_set(&Globals.szLdapMachineSuffix, "");
01596         string_set(&Globals.szLdapUserSuffix, "");
01597         string_set(&Globals.szLdapGroupSuffix, "");
01598         string_set(&Globals.szLdapIdmapSuffix, "");
01599 
01600         string_set(&Globals.szLdapAdminDn, "");
01601         Globals.ldap_ssl = LDAP_SSL_ON;
01602         Globals.ldap_passwd_sync = LDAP_PASSWD_SYNC_OFF;
01603         Globals.ldap_delete_dn = False;
01604         Globals.ldap_replication_sleep = 1000; /* wait 1 sec for replication */
01605         Globals.ldap_timeout = LDAP_CONNECT_DEFAULT_TIMEOUT;
01606         Globals.ldap_page_size = LDAP_PAGE_SIZE;
01607 
01608         Globals.ldap_debug_level = 0;
01609         Globals.ldap_debug_threshold = 10;
01610 
01611         /* This is what we tell the afs client. in reality we set the token 
01612          * to never expire, though, when this runs out the afs client will 
01613          * forget the token. Set to 0 to get NEVERDATE.*/
01614         Globals.iAfsTokenLifetime = 604800;
01615 
01616 /* these parameters are set to defaults that are more appropriate
01617    for the increasing samba install base:
01618 
01619    as a member of the workgroup, that will possibly become a
01620    _local_ master browser (lm = True).  this is opposed to a forced
01621    local master browser startup (pm = True).
01622 
01623    doesn't provide WINS server service by default (wsupp = False),
01624    and doesn't provide domain master browser services by default, either.
01625 
01626 */
01627 
01628         Globals.bMsAddPrinterWizard = True;
01629         Globals.bPreferredMaster = Auto;        /* depending on bDomainMaster */
01630         Globals.os_level = 20;
01631         Globals.bLocalMaster = True;
01632         Globals.bDomainMaster = Auto;   /* depending on bDomainLogons */
01633         Globals.bDomainLogons = False;
01634         Globals.bBrowseList = True;
01635         Globals.bWINSsupport = False;
01636         Globals.bWINSproxy = False;
01637 
01638         Globals.bDNSproxy = True;
01639 
01640         /* this just means to use them if they exist */
01641         Globals.bKernelOplocks = True;
01642 
01643         Globals.bAllowTrustedDomains = True;
01644 
01645         string_set(&Globals.szTemplateShell, "/bin/false");
01646         string_set(&Globals.szTemplateHomedir, "/home/%D/%U");
01647         string_set(&Globals.szWinbindSeparator, "\\");
01648 
01649         string_set(&Globals.szCupsServer, "");
01650         string_set(&Globals.szIPrintServer, "");
01651 
01652         Globals.winbind_cache_time = 300;       /* 5 minutes */
01653         Globals.bWinbindEnumUsers = False;
01654         Globals.bWinbindEnumGroups = False;
01655         Globals.bWinbindUseDefaultDomain = False;
01656         Globals.bWinbindTrustedDomainsOnly = False;
01657         Globals.bWinbindNestedGroups = True;
01658         Globals.szWinbindNssInfo = str_list_make("template", NULL);
01659         Globals.bWinbindRefreshTickets = False;
01660         Globals.bWinbindOfflineLogon = False;
01661 
01662         Globals.iIdmapCacheTime = 900; /* 15 minutes by default */
01663         Globals.iIdmapNegativeCacheTime = 120; /* 2 minutes by default */
01664 
01665         Globals.bPassdbExpandExplicit = False;
01666 
01667         Globals.name_cache_timeout = 660; /* In seconds */
01668 
01669         Globals.bUseSpnego = True;
01670         Globals.bClientUseSpnego = True;
01671 
01672         Globals.client_signing = Auto;
01673         Globals.server_signing = False;
01674 
01675         Globals.bDeferSharingViolations = True;
01676         string_set(&Globals.smb_ports, SMB_PORTS);
01677 
01678         Globals.bEnablePrivileges = True;
01679         Globals.bHostMSDfs        = True;
01680         Globals.bASUSupport       = False;
01681         
01682         /* User defined shares. */
01683         pstrcpy(s, dyn_LOCKDIR);
01684         pstrcat(s, "/usershares");
01685         string_set(&Globals.szUsersharePath, s);
01686         string_set(&Globals.szUsershareTemplateShare, "");
01687         Globals.iUsershareMaxShares = 0;
01688         /* By default disallow sharing of directories not owned by the sharer. */
01689         Globals.bUsershareOwnerOnly = True;
01690         /* By default disallow guest access to usershares. */
01691         Globals.bUsershareAllowGuests = False;
01692 }

void lp_TALLOC_FREE ( void   ) 

loadparm.c1700 行で定義されています。

参照元 open_sockets_smbd()process()process_loop()smbd_process().

01701 {
01702         if (!lp_talloc)
01703                 return;
01704         TALLOC_FREE(lp_talloc);
01705         lp_talloc = NULL;
01706 }

TALLOC_CTX* tmp_talloc_ctx ( void   ) 

loadparm.c1708 行で定義されています。

参照先 smb_panic()talloc_init().

参照元 call_nt_transact_create()call_trans2mkdir()call_trans2open()can_access_file_acl()map_unix_group()mkdir_internal()net_lookup_name()net_lookup_sid()net_sam_addmem()net_sam_createbuiltingroup()net_sam_delmem()net_sam_listmem()net_sam_set_comment()net_sam_set_pwdmustchangenow()net_sam_set_userflag()net_sam_show()net_sam_userset()new_afs_ace()open_file_ntcreate().

01709 {
01710         if (lp_talloc == NULL) {
01711                 lp_talloc = talloc_init("tmp_talloc_ctx");
01712         }
01713 
01714         if (lp_talloc == NULL) {
01715                 smb_panic("Could not create temporary talloc context\n");
01716         }
01717 
01718         return lp_talloc;
01719 }

static char* lp_string ( const char *  s  )  [static]

loadparm.c1727 行で定義されています。

参照先 alloc_sub_basic()current_user_infouserdom_struct::domainget_current_username()talloc_init()talloc_strdup()trim_char().

参照元 lp_ldap_group_suffix()lp_ldap_idmap_suffix()lp_ldap_machine_suffix()lp_ldap_user_suffix()lp_parm_talloc_string().

01728 {
01729         char *ret, *tmpstr;
01730 
01731         /* The follow debug is useful for tracking down memory problems
01732            especially if you have an inner loop that is calling a lp_*()
01733            function that returns a string.  Perhaps this debug should be
01734            present all the time? */
01735 
01736 #if 0
01737         DEBUG(10, ("lp_string(%s)\n", s));
01738 #endif
01739 
01740         if (!lp_talloc)
01741                 lp_talloc = talloc_init("lp_talloc");
01742 
01743         tmpstr = alloc_sub_basic(get_current_username(),
01744                                  current_user_info.domain, s);
01745         if (trim_char(tmpstr, '\"', '\"')) {
01746                 if (strchr(tmpstr,'\"') != NULL) {
01747                         SAFE_FREE(tmpstr);
01748                         tmpstr = alloc_sub_basic(get_current_username(),
01749                                                  current_user_info.domain, s);
01750                 }
01751         }
01752         ret = talloc_strdup(lp_talloc, tmpstr);
01753         SAFE_FREE(tmpstr);
01754                         
01755         return (ret);
01756 }

FN_GLOBAL_STRING ( lp_smb_ports  ,
&Globals.  smb_ports 
)

& Globals dos_charset FN_GLOBAL_STRING ( lp_unix_charset  ,
&Globals.  unix_charset 
)

& Globals dos_charset & Globals display_charset FN_GLOBAL_STRING ( lp_logfile  ,
&Globals.  szLogFile 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile FN_GLOBAL_STRING ( lp_smb_passwd_file  ,
&Globals.  szSMBPasswdFile 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir FN_GLOBAL_STRING ( lp_serverstring  ,
&Globals.  szServerString 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime FN_GLOBAL_STRING ( lp_addport_cmd  ,
&Globals.  szAddPortCommand 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand FN_GLOBAL_STRING ( lp_addprinter_cmd  ,
&Globals.  szAddPrinterCommand 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand FN_GLOBAL_STRING ( lp_os2_driver_map  ,
&Globals.  szOs2DriverMap 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir FN_GLOBAL_STRING ( lp_piddir  ,
&Globals.  szPidDir 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod FN_GLOBAL_INTEGER ( lp_mangle_prefix  ,
&Globals.  mangle_prefix 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir FN_GLOBAL_STRING ( lp_wtmpdir  ,
&Globals.  szWtmpDir 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp FN_GLOBAL_STRING ( lp_rootdir  ,
&Globals.  szRootdir 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService FN_GLOBAL_STRING ( lp_msg_command  ,
&Globals.  szMsgCommand 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota FN_GLOBAL_STRING ( lp_set_quota_command  ,
&Globals.  szSetQuota 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices FN_GLOBAL_STRING ( lp_passwd_program  ,
&Globals.  szPasswdProgram 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat FN_GLOBAL_STRING ( lp_passwordserver  ,
&Globals.  szPasswordServer 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder FN_GLOBAL_STRING ( lp_realm  ,
&Globals.  szRealm 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap FN_GLOBAL_INTEGER ( lp_afs_token_lifetime  ,
&Globals.  iAfsTokenLifetime 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand FN_GLOBAL_STRING ( lp_username_map  ,
&Globals.  szUsernameMap 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript FN_GLOBAL_CONST_STRING ( lp_logon_path  ,
&Globals.  szLogonPath 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript & Globals szLogonDrive FN_GLOBAL_CONST_STRING ( lp_logon_home  ,
&Globals.  szLogonHome 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript & Globals szLogonDrive & Globals szRemoteAnnounce FN_GLOBAL_STRING ( lp_remote_browse_sync  ,
&Globals.  szRemoteBrowseSync 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript & Globals szLogonDrive & Globals szRemoteAnnounce & Globals szWINSservers FN_GLOBAL_LIST ( lp_interfaces  ,
&Globals.  szInterfaces 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript & Globals szLogonDrive & Globals szRemoteAnnounce & Globals szWINSservers & Globals szSocketAddress FN_GLOBAL_STRING ( lp_nis_home_map_name  ,
&Globals.  szNISHomeMapName 
)

& Globals dos_charset & Globals display_charset & Globals szConfigFile & Globals szPrivateDir & Globals PrintcapCacheTime & Globals szEnumPortsCommand & Globals szDeletePrinterCommand & Globals szLockDir & Globals szManglingMethod & Globals szUtmpDir & Globals bUtmp & Globals szDefaultService & Globals szGetQuota & Globals szAutoServices & Globals szPasswdChat & Globals szNameResolveOrder & Globals szAfsUsernameMap & Globals szLogNtTokenCommand & Globals szLogonScript & Globals szLogonDrive & Globals szRemoteAnnounce & Globals szWINSservers & Globals szSocketAddress & Globals szAnnounceVersion FN_GLOBAL_LIST ( lp_netbios_aliases  ,
&Globals.  szNetbiosAliases 
) const

loadparm.c1844 行で定義されています。

参照先 Globalsglobal::szPassdbBackend.

01850 {
01851         char *delim, *quote;
01852 
01853         delim = strchr( Globals.szPassdbBackend, ' ');
01854         /* no space at all */
01855         if (delim == NULL) {
01856                 goto out;
01857         }
01858 
01859         quote = strchr(Globals.szPassdbBackend, '"');
01860         /* no quote char or non in the first part */
01861         if (quote == NULL || quote > delim) {
01862                 *delim = '\0';
01863                 goto warn;
01864         }
01865 
01866         quote = strchr(quote+1, '"');
01867         if (quote == NULL) {
01868                 DEBUG(0, ("WARNING: Your 'passdb backend' configuration is invalid due to a missing second \" char.\n"));
01869                 goto out;
01870         } else if (*(quote+1) == '\0') {
01871                 /* space, fitting quote char, and one backend only */
01872                 goto out;
01873         } else {
01874                 /* terminate string after the fitting quote char */
01875                 *(quote+1) = '\0';
01876         }
01877 
01878 warn:
01879         DEBUG(0, ("WARNING: Your 'passdb backend' configuration includes multiple backends.  This\n"
01880                 "is deprecated since Samba 3.0.23.  Please check WHATSNEW.txt or the section 'Passdb\n"
01881                 "Changes' from the ChangeNotes as part of the Samba HOWTO collection.  Only the first\n"
01882                 "backend (%s) is used.  The rest is ignored.\n", Globals.szPassdbBackend));
01883 
01884 out:
01885         return Globals.szPassdbBackend;
01886 }

FN_GLOBAL_LIST ( lp_preload_modules  ,
&Globals.  szPreloadModules 
)

& Globals szPanicAction FN_GLOBAL_STRING ( lp_adduser_script  ,
&Globals.  szAddUserScript 
)

& Globals szPanicAction & Globals szRenameUserScript FN_GLOBAL_STRING ( lp_deluser_script  ,
&Globals.  szDelUserScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount FN_GLOBAL_STRING ( lp_addgroup_script  ,
&Globals.  szAddGroupScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript FN_GLOBAL_STRING ( lp_addusertogroup_script  ,
&Globals.  szAddUserToGroupScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript FN_GLOBAL_STRING ( lp_setprimarygroup_script  ,
&Globals.  szSetPrimaryGroupScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript FN_GLOBAL_STRING ( lp_shutdown_script  ,
&Globals.  szShutdownScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript FN_GLOBAL_STRING ( lp_username_map_script  ,
&Globals.  szUsernameMapScript 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript FN_GLOBAL_STRING ( lp_wins_hook  ,
&Globals.  szWINSHook 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir FN_GLOBAL_CONST_STRING ( lp_template_shell  ,
&Globals.  szTemplateShell 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator FN_GLOBAL_INTEGER ( lp_acl_compatibility  ,
&Globals.  iAclCompat 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers FN_GLOBAL_BOOL ( lp_winbind_enum_groups  ,
&Globals.  bWinbindEnumGroups 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain FN_GLOBAL_BOOL ( lp_winbind_trusted_domains_only  ,
&Globals.  bWinbindTrustedDomainsOnly 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups FN_GLOBAL_BOOL ( lp_winbind_refresh_tickets  ,
&Globals.  bWinbindRefreshTickets 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon FN_GLOBAL_BOOL ( lp_winbind_normalize_names  ,
&Globals.  bWinbindNormalizeNames 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains FN_GLOBAL_LIST ( lp_idmap_backend  ,
&Globals.  szIdmapBackend 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend FN_GLOBAL_INTEGER ( lp_idmap_cache_time  ,
&Globals.  iIdmapCacheTime 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime FN_GLOBAL_BOOL ( lp_passdb_expand_explicit  ,
&Globals.  bPassdbExpandExplicit 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix FN_GLOBAL_STRING ( lp_ldap_admin_dn  ,
&Globals.  szLdapAdminDn 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl FN_GLOBAL_INTEGER ( lp_ldap_passwd_sync  ,
&Globals.  ldap_passwd_sync 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn FN_GLOBAL_INTEGER ( lp_ldap_replication_sleep  ,
&Globals.  ldap_replication_sleep 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout FN_GLOBAL_INTEGER ( lp_ldap_page_size  ,
&Globals.  ldap_page_size 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level FN_GLOBAL_INTEGER ( lp_ldap_debug_threshold  ,
&Globals.  ldap_debug_threshold 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand FN_GLOBAL_STRING ( lp_change_share_cmd  ,
&Globals.  szChangeShareCommand 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand FN_GLOBAL_STRING ( lp_usershare_path  ,
&Globals.  szUsersharePath 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList FN_GLOBAL_LIST ( lp_usershare_prefix_deny_list  ,
&Globals.  szUsersharePrefixDenyList 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs FN_GLOBAL_BOOL ( lp_usershare_allow_guests  ,
&Globals.  bUsershareAllowGuests 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly FN_GLOBAL_BOOL ( lp_disable_netbios  ,
&Globals.  bDisableNetbios 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC FN_GLOBAL_BOOL ( lp_ms_add_printer_wizard  ,
&Globals.  bMsAddPrinterWizard 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy FN_GLOBAL_BOOL ( lp_wins_support  ,
&Globals.  bWINSsupport 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport FN_GLOBAL_BOOL ( lp_wins_proxy  ,
&Globals.  bWINSproxy 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster FN_GLOBAL_BOOL ( lp_domain_logons  ,
&Globals.  bDomainLogons 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters FN_GLOBAL_BOOL ( lp_readbmpx  ,
&Globals.  bReadbmpx 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw FN_GLOBAL_BOOL ( lp_large_readwrite  ,
&Globals.  bLargeReadwrite 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw FN_GLOBAL_BOOL ( lp_null_passwords  ,
&Globals.  bNullPasswords 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions FN_GLOBAL_BOOL ( lp_encrypted_passwords  ,
&Globals.  bEncryptPasswords 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt FN_GLOBAL_INTEGER ( lp_client_schannel  ,
&Globals.  clientSchannel 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel FN_GLOBAL_BOOL ( lp_syslog_only  ,
&Globals.  bSyslogOnly 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs FN_GLOBAL_BOOL ( lp_debug_prefix_timestamp  ,
&Globals.  bDebugPrefixTimestamp 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp FN_GLOBAL_BOOL ( lp_debug_pid  ,
&Globals.  bDebugPid 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid FN_GLOBAL_BOOL ( lp_enable_core_files  ,
&Globals.  bEnableCoreFiles 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList FN_GLOBAL_BOOL ( lp_nis_home_map  ,
&Globals.  bNISHomeMap 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer FN_GLOBAL_BOOL ( lp_bind_interfaces_only  ,
&Globals.  bBindInterfacesOnly 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange FN_GLOBAL_BOOL ( lp_unix_password_sync  ,
&Globals.  bUnixPasswdSync 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug FN_GLOBAL_INTEGER ( lp_passwd_chat_timeout  ,
&Globals.  iPasswdChatTimeout 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport FN_GLOBAL_BOOL ( lp_nt_status_support  ,
&Globals.  bNTStatusSupport 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache FN_GLOBAL_INTEGER ( lp_max_stat_cache_size  ,
&Globals.  iMaxStatCacheSize 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains FN_GLOBAL_INTEGER ( lp_restrict_anonymous  ,
&Globals.  restrict_anonymous 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth FN_GLOBAL_BOOL ( lp_ntlm_auth  ,
&Globals.  bNTLMAuth 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth FN_GLOBAL_BOOL ( lp_client_lanman_auth  ,
&Globals.  bClientLanManAuth 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth & Globals bClientNTLMv2Auth FN_GLOBAL_BOOL ( lp_host_msdfs  ,
&Globals.  bHostMSDfs 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth & Globals bClientNTLMv2Auth & Globals bKernelOplocks FN_GLOBAL_BOOL ( lp_enhanced_browsing  ,
&Globals.  enhanced_browsing 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth & Globals bClientNTLMv2Auth & Globals bKernelOplocks & Globals bUseMmap FN_GLOBAL_BOOL ( lp_unix_extensions  ,
&Globals.  bUnixExtensions 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth & Globals bClientNTLMv2Auth & Globals bKernelOplocks & Globals bUseMmap & Globals bUseSpnego FN_GLOBAL_BOOL ( lp_client_use_spnego  ,
&Globals.  bClientUseSpnego 
)

& Globals szPanicAction & Globals szRenameUserScript & Globals szGuestaccount & Globals szDelGroupScript & Globals szDelUserFromGroupScript & Globals szAddMachineScript & Globals szAbortShutdownScript & Globals szCheckPasswordScript & Globals szTemplateHomedir & Globals szWinbindSeparator & Globals bWinbindEnumUsers & Globals bWinbindUseDefaultDomain & Globals bWinbindNestedGroups & Globals bWinbindOfflineLogon & Globals szIdmapDomains & Globals szIdmapAllocBackend & Globals iIdmapNegativeCacheTime & Globals szLdapSuffix & Globals ldap_ssl & Globals ldap_delete_dn & Globals ldap_timeout & Globals ldap_debug_level & Globals szAddShareCommand & Globals szDeleteShareCommand & Globals szUsersharePrefixAllowList & Globals szEventLogs & Globals bUsershareOwnerOnly & Globals bResetOnZeroVC & Globals bDNSproxy & Globals bWINSsupport & Globals bLocalMaster & Globals bLoadPrinters & Globals bReadRaw & Globals bWriteRaw & Globals bObeyPamRestrictions & Globals bUpdateEncrypt & Globals serverSchannel & Globals bTimestampLogs & Globals bDebugHiresTimestamp & Globals bDebugUid & Globals bBrowseList & Globals bTimeServer & Globals bPamPasswordChange & Globals bPasswdChatDebug & Globals bNTPipeSupport & Globals bStatCache & Globals bAllowTrustedDomains & Globals bLanmanAuth & Globals bClientPlaintextAuth & Globals bClientNTLMv2Auth & Globals bKernelOplocks & Globals bUseMmap & Globals bUseSpnego & Globals bHostnameLookups FN_LOCAL_PARM_BOOL ( lp_change_notify  ,
bChangeNotify   
)

loadparm.c2004 行で定義されています。

参照先 asprintf()Globals_param_opt_struct::key_param_opt_struct::nextservice::param_optglobal::param_optServicePtrsstring_free().

02197 {
02198         BOOL global_section = False;
02199         char* param_key;
02200         param_opt_struct *data;
02201         
02202         if (snum >= iNumServices) return NULL;
02203         
02204         if (snum < 0) { 
02205                 data = Globals.param_opt;
02206                 global_section = True;
02207         } else {
02208                 data = ServicePtrs[snum]->param_opt;
02209         }
02210     
02211         asprintf(&param_key, "%s:%s", type, option);
02212         if (!param_key) {
02213                 DEBUG(0,("asprintf failed!\n"));
02214                 return NULL;
02215         }
02216 
02217         while (data) {
02218                 if (strcmp(data->key, param_key) == 0) {
02219                         string_free(&param_key);
02220                         return data;
02221                 }
02222                 data = data->next;
02223         }
02224 
02225         if (!global_section) {
02226                 /* Try to fetch the same option but from globals */
02227                 /* but only if we are not already working with Globals */
02228                 data = Globals.param_opt;
02229                 while (data) {
02230                         if (strcmp(data->key, param_key) == 0) {
02231                                 string_free(&param_key);
02232                                 return data;
02233                         }
02234                         data = data->next;
02235                 }
02236         }
02237 
02238         string_free(&param_key);
02239         
02240         return NULL;
02241 }

static int lp_int ( const char *  s  )  [static]

loadparm.c2250 行で定義されています。

参照元 handle_ldap_debug_level()lp_do_parameter()lp_parm_int().

02251 {
02252 
02253         if (!s || !*s) {
02254                 MISSING_PARAMETER(lp_int);
02255                 return (-1);
02256         }
02257 
02258         return (int)strtol(s, NULL, 0);
02259 }

static unsigned long lp_ulong ( const char *  s  )  [static]

loadparm.c2264 行で定義されています。

参照元 lp_parm_ulong().

02265 {
02266 
02267         if (!s || !*s) {
02268                 MISSING_PARAMETER(lp_ulong);
02269                 return (0);
02270         }
02271 
02272         return strtoul(s, NULL, 0);
02273 }

static BOOL lp_bool ( const char *  s  )  [static]

loadparm.c2278 行で定義されています。

参照先 set_boolean().

参照元 lp_do_parameter()lp_parm_bool().

02279 {
02280         BOOL ret = False;
02281 
02282         if (!s || !*s) {
02283                 MISSING_PARAMETER(lp_bool);
02284                 return False;
02285         }
02286         
02287         if (!set_boolean(&ret,s)) {
02288                 DEBUG(0,("lp_bool(%s): value is not boolean!\n",s));
02289                 return False;
02290         }
02291 
02292         return ret;
02293 }

static int lp_enum ( const char *  s,
const struct enum_list _enum 
) [static]

loadparm.c2298 行で定義されています。

参照先 nameenum_list::namestrequal().

参照元 lp_parm_enum().

02299 {
02300         int i;
02301 
02302         if (!s || !*s || !_enum) {
02303                 MISSING_PARAMETER(lp_enum);
02304                 return (-1);
02305         }
02306         
02307         for (i=0; _enum[i].name; i++) {
02308                 if (strequal(_enum[i].name,s))
02309                         return _enum[i].value;
02310         }
02311 
02312         DEBUG(0,("lp_enum(%s,enum): value is not in enum_list!\n",s));
02313         return (-1);
02314 }

char * lp_parm_string ( const char *  servicename,
const char *  type,
const char *  option 
)

loadparm.c2325 行で定義されています。

参照先 lp_parm_talloc_string().

02326 {
02327         return lp_parm_talloc_string(lp_servicenumber(servicename), type, option, NULL);
02328 }

char* lp_parm_talloc_string ( int  snum,
const char *  type,
const char *  option,
const char *  def 
)

loadparm.c2333 行で定義されています。

参照先 lp_string()_param_opt_struct::value.

参照元 lp_parm_string().

02334 {
02335         param_opt_struct *data = get_parametrics(snum, type, option);
02336         
02337         if (data == NULL||data->value==NULL) {
02338                 if (def) {
02339                         return lp_string(def);
02340                 } else {
02341                         return NULL;
02342                 }
02343         }
02344 
02345         return lp_string(data->value);
02346 }

const char* lp_parm_const_string ( int  snum,
const char *  type,
const char *  option,
const char *  def 
)

loadparm.c2350 行で定義されています。

参照先 _param_opt_struct::value.

参照元 afs_set_nt_acl()afsacl_connect()audit_prefix()commit_open()cprime_connect()dump_a_parameter()get_credentials()idmap_ad_initialize()idmap_init()idmap_ldap_alloc_init()idmap_ldap_db_init()idmap_rid_initialize()idmap_tdb_alloc_init()idmap_tdb_db_init()net_idmap_secret()prealloc_open()readahead_connect()recycle_directory_mode()recycle_maxsize()recycle_minsize()recycle_repository()recycle_subdir_mode()script_check_user_credentials().

02351 {
02352         param_opt_struct *data = get_parametrics(snum, type, option);
02353         
02354         if (data == NULL||data->value==NULL)
02355                 return def;
02356                 
02357         return data->value;
02358 }

const char** lp_parm_string_list ( int  snum,
const char *  type,
const char *  option,
const char **  def 
)

loadparm.c2363 行で定義されています。

参照先 _param_opt_struct::liststr_list_make()_param_opt_struct::value.

参照元 readonly_connect()recycle_exclude()recycle_exclude_dir()recycle_noversions()smb_full_audit_connect().

02364 {
02365         param_opt_struct *data = get_parametrics(snum, type, option);
02366 
02367         if (data == NULL||data->value==NULL)
02368                 return (const char **)def;
02369                 
02370         if (data->list==NULL) {
02371                 data->list = str_list_make(data->value, NULL);
02372         }
02373 
02374         return (const char **)data->list;
02375 }

int lp_parm_int ( int  snum,
const char *  type,
const char *  option,
int  def 
)

loadparm.c2380 行で定義されています。

参照先 lp_int()_param_opt_struct::value.

参照元 commit_connect()cprime_connect()idmap_rid_initialize()ldapsam_get_seq_num()open_file_ntcreate()prealloc_connect().

02381 {
02382         param_opt_struct *data = get_parametrics(snum, type, option);
02383         
02384         if (data && data->value && *data->value)
02385                 return lp_int(data->value);
02386 
02387         return def;
02388 }

unsigned long lp_parm_ulong ( int  snum,
const char *  type,
const char *  option,
unsigned long  def 
)

loadparm.c2393 行で定義されています。

参照先 lp_ulong()_param_opt_struct::value.

02394 {
02395         param_opt_struct *data = get_parametrics(snum, type, option);
02396         
02397         if (data && data->value && *data->value)
02398                 return lp_ulong(data->value);
02399 
02400         return def;
02401 }

BOOL lp_parm_bool ( int  snum,
const char *  type,
const char *  option,
BOOL  def 
)

loadparm.c2406 行で定義されています。

参照先 lp_bool()_param_opt_struct::value.

参照元 afs_get_nt_acl()afs_set_nt_acl()idmap_init()init_group_from_ldap()init_sam_from_ldap()inotify_setup()ldapsam_get_seq_num()net_sam_provision()pdb_init_ldapsam()recycle_keep_dir_tree()recycle_touch()recycle_touch_mtime()recycle_versions()smbacl4_get_vfs_params().

02407 {
02408         param_opt_struct *data = get_parametrics(snum, type, option);
02409         
02410         if (data && data->value && *data->value)
02411                 return lp_bool(data->value);
02412 
02413         return def;
02414 }

int lp_parm_enum ( int  snum,
const char *  type,
const char *  option,
const struct enum_list _enum,
int  def 
)

loadparm.c2419 行で定義されています。

参照先 lp_enum()_param_opt_struct::value.

参照元 audit_syslog_facility()audit_syslog_priority()smbacl4_get_vfs_params().

02421 {
02422         param_opt_struct *data = get_parametrics(snum, type, option);
02423         
02424         if (data && data->value && *data->value && _enum)
02425                 return lp_enum(data->value, _enum);
02426 
02427         return def;
02428 }

static void init_service ( service pservice  )  [static]

loadparm.c2435 行で定義されています。

参照先 copy_service()sDefault.

参照元 add_a_service()handle_copy().

02436 {
02437         memset((char *)pservice, '\0', sizeof(service));
02438         copy_service(pservice, &sDefault, NULL);
02439 }

static void free_service ( service pservice  )  [static]

loadparm.c2445 行で定義されています。

参照先 service::copymap_param_opt_struct::keyparm_struct::label_param_opt_struct::list_param_opt_struct::nextparm_struct::p_classP_LISTP_LOCALP_STRINGP_USTRINGservice::param_optparm_tableparm_struct::ptrsDefaultstr_list_free()string_free()service::szServicetype_param_opt_struct::value.

参照元 free_service_byindex()handle_copy().

02446 {
02447         int i;
02448         param_opt_struct *data, *pdata;
02449         if (!pservice)
02450                 return;
02451 
02452         if (pservice->szService)
02453                 DEBUG(5, ("free_service: Freeing service %s\n",
02454                        pservice->szService));
02455 
02456         string_free(&pservice->szService);
02457         SAFE_FREE(pservice->copymap);
02458 
02459         for (i = 0; parm_table[i].label; i++) {
02460                 if ((parm_table[i].type == P_STRING ||
02461                      parm_table[i].type == P_USTRING) &&
02462                     parm_table[i].p_class == P_LOCAL)
02463                         string_free((char **)
02464                                     (((char *)pservice) +
02465                                      PTR_DIFF(parm_table[i].ptr, &sDefault)));
02466                 else if (parm_table[i].type == P_LIST &&
02467                          parm_table[i].p_class == P_LOCAL)
02468                              str_list_free((char ***)
02469                                             (((char *)pservice) +
02470                                              PTR_DIFF(parm_table[i].ptr, &sDefault)));
02471         }
02472 
02473         data = pservice->param_opt;
02474         if (data)
02475                 DEBUG(5,("Freeing parametrics:\n"));
02476         while (data) {
02477                 DEBUG(5,("[%s = %s]\n", data->key, data->value));
02478                 string_free(&data->key);
02479                 string_free(&data->value);
02480                 str_list_free(&data->list);
02481                 pdata = data->next;
02482                 SAFE_FREE(data);
02483                 data = pdata;
02484         }
02485 
02486         ZERO_STRUCTP(pservice);
02487 }

static void free_service_byindex ( int  idx  )  [static]

loadparm.c2495 行で定義されています。

参照先 canonicalize_servicename()free_service()ServiceHashServicePtrstdb_delete_bystring()service::valid.

参照元 add_a_service()lp_killservice()lp_killunused().

02496 {
02497         if ( !LP_SNUM_OK(idx) ) 
02498                 return;
02499 
02500         ServicePtrs[idx]->valid = False;
02501         invalid_services[num_invalid_services++] = idx;
02502 
02503         /* we have to cleanup the hash record */
02504 
02505         if (ServicePtrs[idx]->szService) {
02506                 char *canon_name = canonicalize_servicename( ServicePtrs[idx]->szService );
02507                 
02508                 tdb_delete_bystring(ServiceHash, canon_name );
02509         }
02510 
02511         free_service(ServicePtrs[idx]);
02512 }

static int add_a_service ( const service pservice,
const char *  name 
) [static]

loadparm.c2519 行で定義されています。

参照先 copy_service()free_service_byindex()getservicebyname()hash_a_service()init_service()_param_opt_struct::key_param_opt_struct::list_param_opt_struct::nextservice::param_optServicePtrsstr_list_free()string_free()string_set()service::valid_param_opt_struct::value.

参照元 do_section()lp_add_home()lp_add_ipc()lp_add_printer()lp_add_service()process_usershare_file().

02520 {
02521         int i;
02522         service tservice;
02523         int num_to_alloc = iNumServices + 1;
02524         param_opt_struct *data, *pdata;
02525 
02526         tservice = *pservice;
02527 
02528         /* it might already exist */
02529         if (name) {
02530                 i = getservicebyname(name, NULL);
02531                 if (i >= 0) {
02532                         /* Clean all parametric options for service */
02533                         /* They will be added during parsing again */
02534                         data = ServicePtrs[i]->param_opt;
02535                         while (data) {
02536                                 string_free(&data->key);
02537                                 string_free(&data->value);
02538                                 str_list_free(&data->list);
02539                                 pdata = data->next;
02540                                 SAFE_FREE(data);
02541                                 data = pdata;
02542                         }
02543                         ServicePtrs[i]->param_opt = NULL;
02544                         return (i);
02545                 }
02546         }
02547 
02548         /* find an invalid one */
02549         i = iNumServices;
02550         if (num_invalid_services > 0) {
02551                 i = invalid_services[--num_invalid_services];
02552         }
02553 
02554         /* if not, then create one */
02555         if (i == iNumServices) {
02556                 service **tsp;
02557                 int *tinvalid;
02558                 
02559                 tsp = SMB_REALLOC_ARRAY_KEEP_OLD_ON_ERROR(ServicePtrs, service *, num_to_alloc);
02560                 if (tsp == NULL) {
02561                         DEBUG(0,("add_a_service: failed to enlarge ServicePtrs!\n"));
02562                         return (-1);
02563                 }
02564                 ServicePtrs = tsp;
02565                 ServicePtrs[iNumServices] = SMB_MALLOC_P(service);
02566                 if (!ServicePtrs[iNumServices]) {
02567                         DEBUG(0,("add_a_service: out of memory!\n"));
02568                         return (-1);
02569                 }
02570                 iNumServices++;
02571 
02572                 /* enlarge invalid_services here for now... */
02573                 tinvalid = SMB_REALLOC_ARRAY_KEEP_OLD_ON_ERROR(invalid_services, int,
02574                                              num_to_alloc);
02575                 if (tinvalid == NULL) {
02576                         DEBUG(0,("add_a_service: failed to enlarge "
02577                                  "invalid_services!\n"));
02578                         return (-1);
02579                 }
02580                 invalid_services = tinvalid;
02581         } else {
02582                 free_service_byindex(i);
02583         }
02584 
02585         ServicePtrs[i]->valid = True;
02586 
02587         init_service(ServicePtrs[i]);
02588         copy_service(ServicePtrs[i], &tservice, NULL);
02589         if (name)
02590                 string_set(&ServicePtrs[i]->szService, name);
02591                 
02592         DEBUG(8,("add_a_service: Creating snum = %d for %s\n", 
02593                 i, ServicePtrs[i]->szService));
02594 
02595         if (!hash_a_service(ServicePtrs[i]->szService, i)) {
02596                 return (-1);
02597         }
02598                 
02599         return (i);
02600 }

static char* canonicalize_servicename ( const char *  src  )  [static]

loadparm.c2606 行で定義されています。

参照先 strlower_m().

参照元 free_service_byindex()getservicebyname()hash_a_service()process_usershare_file().

02607 {
02608         static fstring canon; /* is fstring large enough? */
02609 
02610         if ( !src ) {
02611                 DEBUG(0,("canonicalize_servicename: NULL source name!\n"));
02612                 return NULL;
02613         }
02614 
02615         fstrcpy( canon, src );
02616         strlower_m( canon );
02617 
02618         return canon;
02619 }

static BOOL hash_a_service ( const char *  name,
int  idx 
) [static]

loadparm.c2625 行で定義されています。

参照先 canonicalize_servicename()ServiceHashtdb_open()tdb_store_int32().

参照元 add_a_service().

02626 {
02627         char *canon_name;
02628 
02629         if ( !ServiceHash ) {
02630                 DEBUG(10,("hash_a_service: creating tdb servicehash\n"));
02631                 ServiceHash = tdb_open("servicehash", 1031, TDB_INTERNAL, 
02632                                         (O_RDWR|O_CREAT), 0600);
02633                 if ( !ServiceHash ) {
02634                         DEBUG(0,("hash_a_service: open tdb servicehash failed!\n"));
02635                         return False;
02636                 }
02637         }
02638 
02639         DEBUG(10,("hash_a_service: hashing index %d for service name %s\n",
02640                 idx, name));
02641 
02642         if ( !(canon_name = canonicalize_servicename( name )) )
02643                 return False;
02644 
02645         tdb_store_int32(ServiceHash, canon_name, idx);
02646 
02647         return True;
02648 }

BOOL lp_add_home ( const char *  pszHomename,
int  iDefaultService,
const char *  user,
const char *  pszHomedir 
)

loadparm.c2655 行で定義されています。

参照先 add_a_service()service::autoloadedservice::bBrowseablesDefaultServicePtrsstrequal()string_set().

参照元 add_home_service()lp_add_auto_services().

02657 {
02658         int i;
02659         pstring newHomedir;
02660 
02661         i = add_a_service(ServicePtrs[iDefaultService], pszHomename);
02662 
02663         if (i < 0)
02664                 return (False);
02665 
02666         if (!(*(ServicePtrs[iDefaultService]->szPath))
02667             || strequal(ServicePtrs[iDefaultService]->szPath, lp_pathname(GLOBAL_SECTION_SNUM))) {
02668                 pstrcpy(newHomedir, pszHomedir);
02669                 string_set(&ServicePtrs[i]->szPath, newHomedir);
02670         } 
02671 
02672         if (!(*(ServicePtrs[i]->comment))) {
02673                 pstring comment;
02674                 slprintf(comment, sizeof(comment) - 1,
02675                          "Home directory of %s", user);
02676                 string_set(&ServicePtrs[i]->comment, comment);
02677         }
02678 
02679         /* set the browseable flag from the global default */
02680 
02681         ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
02682 
02683         ServicePtrs[i]->autoloaded = True;
02684 
02685         DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n", pszHomename, 
02686                user, ServicePtrs[i]->szPath ));
02687         
02688         return (True);
02689 }

int lp_add_service ( const char *  pszService,
int  iDefaultService 
)

loadparm.c2695 行で定義されています。

参照先 add_a_service()ServicePtrs.

参照元 find_service().

02696 {
02697         return (add_a_service(ServicePtrs[iDefaultService], pszService));
02698 }

static BOOL lp_add_ipc ( const char *  ipc_name,
BOOL  guest_ok 
) [static]

loadparm.c2704 行で定義されています。

参照先 add_a_service()service::bAdministrative_shareservice::bAvailableservice::bBrowseableservice::bGuest_okservice::bGuest_onlyservice::bPrint_okservice::bRead_onlyGlobalsservice::iMaxConnectionssDefaultServicePtrsstring_set()global::szServerStringtmpdir().

02705 {
02706         pstring comment;
02707         int i = add_a_service(&sDefault, ipc_name);
02708 
02709         if (i < 0)
02710                 return (False);
02711 
02712         slprintf(comment, sizeof(comment) - 1,
02713                  "IPC Service (%s)", Globals.szServerString);
02714 
02715         string_set(&ServicePtrs[i]->szPath, tmpdir());
02716         string_set(&ServicePtrs[i]->szUsername, "");
02717         string_set(&ServicePtrs[i]->comment, comment);
02718         string_set(&ServicePtrs[i]->fstype, "IPC");
02719         ServicePtrs[i]->iMaxConnections = 0;
02720         ServicePtrs[i]->bAvailable = True;
02721         ServicePtrs[i]->bRead_only = True;
02722         ServicePtrs[i]->bGuest_only = False;
02723         ServicePtrs[i]->bAdministrative_share = True;
02724         ServicePtrs[i]->bGuest_ok = guest_ok;
02725         ServicePtrs[i]->bPrint_ok = False;
02726         ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
02727 
02728         DEBUG(3, ("adding IPC service\n"));
02729 
02730         return (True);
02731 }

BOOL lp_add_printer ( const char *  pszPrintername,
int  iDefaultService 
)

loadparm.c2737 行で定義されています。

参照先 add_a_service()service::bBrowseableservice::bOpLocksservice::bPrint_okservice::bRead_onlyservice::bShareModessDefaultServicePtrsstring_set().

参照元 add_auto_printers()find_service()lp_add_one_printer().

02738 {
02739         const char *comment = "From Printcap";
02740         int i = add_a_service(ServicePtrs[iDefaultService], pszPrintername);
02741 
02742         if (i < 0)
02743                 return (False);
02744 
02745         /* note that we do NOT default the availability flag to True - */
02746         /* we take it from the default service passed. This allows all */
02747         /* dynamic printers to be disabled by disabling the [printers] */
02748         /* entry (if/when the 'available' keyword is implemented!).    */
02749 
02750         /* the printer name is set to the service name. */
02751         string_set(&ServicePtrs[i]->szPrintername, pszPrintername);
02752         string_set(&ServicePtrs[i]->comment, comment);
02753 
02754         /* set the browseable flag from the gloabl default */
02755         ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
02756 
02757         /* Printers cannot be read_only. */
02758         ServicePtrs[i]->bRead_only = False;
02759         /* No share modes on printer services. */
02760         ServicePtrs[i]->bShareModes = False;
02761         /* No oplocks on printer services. */
02762         ServicePtrs[i]->bOpLocks = False;
02763         /* Printer services must be printable. */
02764         ServicePtrs[i]->bPrint_ok = True;
02765         
02766         DEBUG(3, ("adding printer service %s\n", pszPrintername));
02767 
02768         return (True);
02769 }

static int map_parameter ( const char *  pszParmName  )  [static]

loadparm.c2776 行で定義されています。

参照先 parm_struct::labelparm_tablestrwicmp().

参照元 handle_printing()lp_do_parameter().

02777 {
02778         int iIndex;
02779 
02780         if (*pszParmName == '-')
02781                 return (-1);
02782 
02783         for (iIndex = 0; parm_table[iIndex].label; iIndex++)
02784                 if (strwicmp(parm_table[iIndex].label, pszParmName) == 0)
02785                         return (iIndex);
02786 
02787         /* Warn only if it isn't parametric option */
02788         if (strchr(pszParmName, ':') == NULL)
02789                 DEBUG(0, ("Unknown parameter encountered: \"%s\"\n", pszParmName));
02790         /* We do return 'fail' for parametric options as well because they are
02791            stored in different storage
02792          */
02793         return (-1);
02794 }

void show_parameter_list ( void   ) 

loadparm.c2800 行で定義されています。

参照先 parm_struct::enum_listflagsparm_struct::labelnameenum_list::nameparm_struct::p_classP_ENUMparm_tableprintf()type.

参照元 main().

02801 {
02802         int classIndex, parmIndex, enumIndex, flagIndex;
02803         BOOL hadFlag;
02804         const char *section_names[] = { "local", "global", NULL};
02805         const char *type[] = { "P_BOOL", "P_BOOLREV", "P_CHAR", "P_INTEGER",
02806                 "P_OCTAL", "P_LIST", "P_STRING", "P_USTRING", "P_GSTRING",
02807                 "P_UGSTRING", "P_ENUM", "P_SEP"};
02808         unsigned flags[] = { FLAG_BASIC, FLAG_SHARE, FLAG_PRINT, FLAG_GLOBAL,
02809                 FLAG_WIZARD, FLAG_ADVANCED, FLAG_DEVELOPER, FLAG_DEPRECATED,
02810                 FLAG_HIDE, FLAG_DOS_STRING};
02811         const char *flag_names[] = { "FLAG_BASIC", "FLAG_SHARE", "FLAG_PRINT",
02812                 "FLAG_GLOBAL", "FLAG_WIZARD", "FLAG_ADVANCED", "FLAG_DEVELOPER",
02813                 "FLAG_DEPRECATED", "FLAG_HIDE", "FLAG_DOS_STRING", NULL};
02814 
02815         for ( classIndex=0; section_names[classIndex]; classIndex++) {
02816                 printf("[%s]\n", section_names[classIndex]);
02817                 for (parmIndex = 0; parm_table[parmIndex].label; parmIndex++) {
02818                         if (parm_table[parmIndex].p_class == classIndex) {
02819                                 printf("%s=%s", 
02820                                         parm_table[parmIndex].label,
02821                                         type[parm_table[parmIndex].type]);
02822                                 switch (parm_table[parmIndex].type) {
02823                                 case P_ENUM:
02824                                         printf(",");
02825                                         for (enumIndex=0; parm_table[parmIndex].enum_list[enumIndex].name; enumIndex++)
02826                                                 printf("%s%s",
02827                                                         enumIndex ? "|" : "",
02828                                                         parm_table[parmIndex].enum_list[enumIndex].name);
02829                                         break;
02830                                 default:
02831                                         break;
02832                                 }
02833                                 printf(",");
02834                                 hadFlag = False;
02835                                 for ( flagIndex=0; flag_names[flagIndex]; flagIndex++ ) {
02836                                         if (parm_table[parmIndex].flags & flags[flagIndex]) {
02837                                                 printf("%s%s",
02838                                                         hadFlag ? "|" : "",
02839                                                         flag_names[flagIndex]);
02840                                                 hadFlag = True;
02841                                         }
02842                                 }
02843                                 printf("\n");
02844                         }
02845                 }
02846         }
02847 }

static BOOL set_boolean ( BOOL pb,
const char *  pszParmValue 
) [static]

loadparm.c2855 行で定義されています。

参照先 strwicmp().

参照元 lp_bool().

02856 {
02857         BOOL bRetval;
02858 
02859         bRetval = True;
02860         if (strwicmp(pszParmValue, "yes") == 0 ||
02861             strwicmp(pszParmValue, "true") == 0 ||
02862             strwicmp(pszParmValue, "1") == 0)
02863                 *pb = True;
02864         else if (strwicmp(pszParmValue, "no") == 0 ||
02865                     strwicmp(pszParmValue, "False") == 0 ||
02866                     strwicmp(pszParmValue, "0") == 0)
02867                 *pb = False;
02868         else {
02869                 DEBUG(0,
02870                       ("ERROR: Badly formed boolean in configuration file: \"%s\".\n",
02871                        pszParmValue));
02872                 bRetval = False;
02873         }
02874         return (bRetval);
02875 }

static int getservicebyname ( const char *  pszServiceName,
service pserviceDest 
) [static]

loadparm.c2881 行で定義されています。

参照先 canonicalize_servicename()copy_service()ServiceHashServicePtrstdb_fetch_int32().

参照元 add_a_service()handle_copy().

02882 {
02883         int iService = -1;
02884         char *canon_name;
02885 
02886         if (ServiceHash != NULL) {
02887                 if ( !(canon_name = canonicalize_servicename( pszServiceName )) )
02888                         return -1;
02889 
02890                 iService = tdb_fetch_int32(ServiceHash, canon_name );
02891 
02892                 if (LP_SNUM_OK(iService)) {
02893                         if (pserviceDest != NULL) {
02894                                 copy_service(pserviceDest, ServicePtrs[iService], NULL);
02895                         }
02896                 } else {
02897                         iService = -1;
02898                 }
02899         }
02900 
02901         return (iService);
02902 }

static void copy_service ( service pserviceDest,
service pserviceSource,
BOOL pcopymapDest 
) [static]

loadparm.c2909 行で定義されています。

参照先 service::copymapinit_copymap()_param_opt_struct::keyparm_struct::label_param_opt_struct::list_param_opt_struct::nextP_BOOLP_BOOLREVP_CHARparm_struct::p_classP_ENUMP_INTEGERP_LISTP_LOCALP_OCTALP_STRINGP_USTRINGservice::param_optparm_tableparm_struct::ptrsDefaultstr_list_copy()str_list_free()string_free()string_set()strupper_m()type_param_opt_struct::value.

参照元 add_a_service()getservicebyname()handle_copy()init_service().

02910 {
02911         int i;
02912         BOOL bcopyall = (pcopymapDest == NULL);
02913         param_opt_struct *data, *pdata, *paramo;
02914         BOOL not_added;
02915 
02916         for (i = 0; parm_table[i].label; i++)
02917                 if (parm_table[i].ptr && parm_table[i].p_class == P_LOCAL &&
02918                     (bcopyall || pcopymapDest[i])) {
02919                         void *def_ptr = parm_table[i].ptr;
02920                         void *src_ptr =
02921                                 ((char *)pserviceSource) + PTR_DIFF(def_ptr,
02922                                                                     &sDefault);
02923                         void *dest_ptr =
02924                                 ((char *)pserviceDest) + PTR_DIFF(def_ptr,
02925                                                                   &sDefault);
02926 
02927                         switch (parm_table[i].type) {
02928                                 case P_BOOL:
02929                                 case P_BOOLREV:
02930                                         *(BOOL *)dest_ptr = *(BOOL *)src_ptr;
02931                                         break;
02932 
02933                                 case P_INTEGER:
02934                                 case P_ENUM:
02935                                 case P_OCTAL:
02936                                         *(int *)dest_ptr = *(int *)src_ptr;
02937                                         break;
02938 
02939                                 case P_CHAR:
02940                                         *(char *)dest_ptr = *(char *)src_ptr;
02941                                         break;
02942 
02943                                 case P_STRING:
02944                                         string_set((char **)dest_ptr,
02945                                                    *(char **)src_ptr);
02946                                         break;
02947 
02948                                 case P_USTRING:
02949                                         string_set((char **)dest_ptr,
02950                                                    *(char **)src_ptr);
02951                                         strupper_m(*(char **)dest_ptr);
02952                                         break;
02953                                 case P_LIST:
02954                                         str_list_free((char ***)dest_ptr);
02955                                         str_list_copy((char ***)dest_ptr, *(const char ***)src_ptr);
02956                                         break;
02957                                 default:
02958                                         break;
02959                         }
02960                 }
02961 
02962         if (bcopyall) {
02963                 init_copymap(pserviceDest);
02964                 if (pserviceSource->copymap)
02965                         memcpy((void *)pserviceDest->copymap,
02966                                (void *)pserviceSource->copymap,
02967                                sizeof(BOOL) * NUMPARAMETERS);
02968         }
02969         
02970         data = pserviceSource->param_opt;
02971         while (data) {
02972                 not_added = True;
02973                 pdata = pserviceDest->param_opt;
02974                 /* Traverse destination */
02975                 while (pdata) {
02976                         /* If we already have same option, override it */
02977                         if (strcmp(pdata->key, data->key) == 0) {
02978                                 string_free(&pdata->value);
02979                                 str_list_free(&data->list);
02980                                 pdata->value = SMB_STRDUP(data->value);
02981                                 not_added = False;
02982                                 break;
02983                         }
02984                         pdata = pdata->next;
02985                 }
02986                 if (not_added) {
02987                     paramo = SMB_XMALLOC_P(param_opt_struct);
02988                     paramo->key = SMB_STRDUP(data->key);
02989                     paramo->value = SMB_STRDUP(data->value);
02990                     paramo->list = NULL;
02991                     DLIST_ADD(pserviceDest->param_opt, paramo);
02992                 }
02993                 data = data->next;
02994         }
02995 }

static BOOL service_ok ( int  iService  )  [static]

loadparm.c3002 行で定義されています。

参照先 service::bAvailableservice::bBrowseableservice::bPrint_okServicePtrsstrwicmp().

参照元 do_section().

03003 {
03004         BOOL bRetval;
03005 
03006         bRetval = True;
03007         if (ServicePtrs[iService]->szService[0] == '\0') {
03008                 DEBUG(0, ("The following message indicates an internal error:\n"));
03009                 DEBUG(0, ("No service name in service entry.\n"));
03010                 bRetval = False;
03011         }
03012 
03013         /* The [printers] entry MUST be printable. I'm all for flexibility, but */
03014         /* I can't see why you'd want a non-printable printer service...        */
03015         if (strwicmp(ServicePtrs[iService]->szService, PRINTERS_NAME) == 0) {
03016                 if (!ServicePtrs[iService]->bPrint_ok) {
03017                         DEBUG(0, ("WARNING: [%s] service MUST be printable!\n",
03018                                ServicePtrs[iService]->szService));
03019                         ServicePtrs[iService]->bPrint_ok = True;
03020                 }
03021                 /* [printers] service must also be non-browsable. */
03022                 if (ServicePtrs[iService]->bBrowseable)
03023                         ServicePtrs[iService]->bBrowseable = False;
03024         }
03025 
03026         if (ServicePtrs[iService]->szPath[0] == '\0' &&
03027             strwicmp(ServicePtrs[iService]->szService, HOMES_NAME) != 0 &&
03028             ServicePtrs[iService]->szMSDfsProxy[0] == '\0'
03029             ) {
03030                 DEBUG(0, ("WARNING: No path in service %s - making it unavailable!\n",
03031                         ServicePtrs[iService]->szService));
03032                 ServicePtrs[iService]->bAvailable = False;
03033         }
03034 
03035         /* If a service is flagged unavailable, log the fact at level 0. */
03036         if (!ServicePtrs[iService]->bAvailable)
03037                 DEBUG(1, ("NOTE: Service %s is flagged unavailable.\n",
03038                           ServicePtrs[iService]->szService));
03039 
03040         return (bRetval);
03041 }

static void add_to_file_list ( const char *  fname,
const char *  subfname 
) [static]

loadparm.c3055 行で定義されています。

参照先 file_modtime()file_lists::modtimefile_lists::namefile_lists::nextfile_lists::subfnamet.

参照元 handle_include().

03056 {
03057         struct file_lists *f = file_lists;
03058 
03059         while (f) {
03060                 if (f->name && !strcmp(f->name, fname))
03061                         break;
03062                 f = f->next;
03063         }
03064 
03065         if (!f) {
03066                 f = SMB_MALLOC_P(struct file_lists);
03067                 if (!f)
03068                         return;
03069                 f->next = file_lists;
03070                 f->name = SMB_STRDUP(fname);
03071                 if (!f->name) {
03072                         SAFE_FREE(f);
03073                         return;
03074                 }
03075                 f->subfname = SMB_STRDUP(subfname);
03076                 if (!f->subfname) {
03077                         SAFE_FREE(f);
03078                         return;
03079                 }
03080                 file_lists = f;
03081                 f->modtime = file_modtime(subfname);
03082         } else {
03083                 time_t t = file_modtime(subfname);
03084                 if (t)
03085                         f->modtime = t;
03086         }
03087 }

BOOL lp_file_list_changed ( void   ) 

loadparm.c3093 行で定義されています。

参照先 current_user_infouserdom_struct::domainfile_modtime()get_current_username()file_lists::modtimefile_lists::namefile_lists::nextstandard_sub_basic()file_lists::subfname.

参照元 reload_nmbd_services()reload_services().

03094 {
03095         struct file_lists *f = file_lists;
03096 
03097         DEBUG(6, ("lp_file_list_changed()\n"));
03098 
03099         while (f) {
03100                 pstring n2;
03101                 time_t mod_time;
03102 
03103                 pstrcpy(n2, f->name);
03104                 standard_sub_basic( get_current_username(),
03105                                     current_user_info.domain,
03106                                     n2, sizeof(n2) );
03107 
03108                 DEBUGADD(6, ("file %s -> %s  last mod_time: %s\n",
03109                              f->name, n2, ctime(&f->modtime)));
03110 
03111                 mod_time = file_modtime(n2);
03112 
03113                 if (mod_time && ((f->modtime != mod_time) || (f->subfname == NULL) || (strcmp(n2, f->subfname) != 0))) {
03114                         DEBUGADD(6,
03115                                  ("file %s modified: %s\n", n2,
03116                                   ctime(&mod_time)));
03117                         f->modtime = mod_time;
03118                         SAFE_FREE(f->subfname);
03119                         f->subfname = SMB_STRDUP(n2);
03120                         return (True);
03121                 }
03122                 f = f->next;
03123         }
03124         return (False);
03125 }

BOOL lp_idmap_uid ( uid_t *  low,
uid_t *  high 
)

loadparm.c3282 行で定義されています。

参照元 idmap_ldap_alloc_init()idmap_rid_initialize()idmap_tdb_alloc_init()py_config_dict().

03283 {
03284         if (idmap_uid_low == 0 || idmap_uid_high == 0)
03285                 return False;
03286 
03287         if (low)
03288                 *low = idmap_uid_low;
03289 
03290         if (high)
03291                 *high = idmap_uid_high;
03292 
03293         return True;
03294 }

BOOL lp_idmap_gid ( gid_t *  low,
gid_t *  high 
)

loadparm.c3296 行で定義されています。

参照元 create_token_from_username()idmap_ldap_alloc_init()idmap_rid_initialize()idmap_tdb_alloc_init()py_config_dict().

03297 {
03298         if (idmap_gid_low == 0 || idmap_gid_high == 0)
03299                 return False;
03300 
03301         if (low)
03302                 *low = idmap_gid_low;
03303 
03304         if (high)
03305                 *high = idmap_gid_high;
03306 
03307         return True;
03308 }

static const char* append_ldap_suffix ( const char *  str  )  [static]

loadparm.c3363 行で定義されています。

参照先 Globalsglobal::szLdapSuffixtalloc_asprintf()talloc_init().

参照元 lp_ldap_group_suffix()lp_ldap_idmap_suffix()lp_ldap_machine_suffix()lp_ldap_user_suffix().

03364 {
03365         const char *suffix_string;
03366 
03367 
03368         if (!lp_talloc)
03369                 lp_talloc = talloc_init("lp_talloc");
03370 
03371         suffix_string = talloc_asprintf( lp_talloc, "%s,%s", str, Globals.szLdapSuffix );
03372         if ( !suffix_string ) {
03373                 DEBUG(0,("append_ldap_suffix: talloc_asprintf() failed!\n"));
03374                 return "";
03375         }
03376 
03377         return suffix_string;
03378 }

const char* lp_ldap_machine_suffix ( void   ) 

loadparm.c3380 行で定義されています。

参照先 append_ldap_suffix()Globalslp_string()global::szLdapMachineSuffixglobal::szLdapSuffix.

参照元 fetch_account_info_to_ldif()ldapsam_add_sam_account()ldapsam_create_user()ldapsam_search_users()ldapsam_setsampwent()populate_ldap_for_ldif().

03381 {
03382         if (Globals.szLdapMachineSuffix[0])
03383                 return append_ldap_suffix(Globals.szLdapMachineSuffix);
03384 
03385         return lp_string(Globals.szLdapSuffix);
03386 }

const char* lp_ldap_user_suffix ( void   ) 

loadparm.c3388 行で定義されています。

参照先 append_ldap_suffix()Globalslp_string()global::szLdapSuffixglobal::szLdapUserSuffix.

参照元 fetch_account_info_to_ldif()ldapsam_add_sam_account()ldapsam_create_user()ldapsam_lookup_rids()ldapsam_search_users()ldapsam_setsampwent()net_sam_provision()populate_ldap_for_ldif().

03389 {
03390         if (Globals.szLdapUserSuffix[0])
03391                 return append_ldap_suffix(Globals.szLdapUserSuffix);
03392 
03393         return lp_string(Globals.szLdapSuffix);
03394 }

const char* lp_ldap_group_suffix ( void   ) 

loadparm.c3396 行で定義されています。

参照先 append_ldap_suffix()Globalslp_string()global::szLdapGroupSuffixglobal::szLdapSuffix.

参照元 fetch_alias_info_to_ldif()fetch_group_info_to_ldif()ldapsam_create_dom_group()ldapsam_lookup_rids()ldapsam_search_grouptype()ldapsam_search_one_group()ldapsam_setsamgrent()map_populate_groups()net_sam_provision()populate_ldap_for_ldif().

03397 {
03398         if (Globals.szLdapGroupSuffix[0])
03399                 return append_ldap_suffix(Globals.szLdapGroupSuffix);
03400 
03401         return lp_string(Globals.szLdapSuffix);
03402 }

const char* lp_ldap_idmap_suffix ( void   ) 

loadparm.c3404 行で定義されています。

参照先 append_ldap_suffix()Globalslp_string()global::szLdapIdmapSuffixglobal::szLdapSuffix.

参照元 idmap_ldap_alloc_init()idmap_ldap_db_init()populate_ldap_for_ldif().

03405 {
03406         if (Globals.szLdapIdmapSuffix[0])
03407                 return append_ldap_suffix(Globals.szLdapIdmapSuffix);
03408 
03409         return lp_string(Globals.szLdapSuffix);
03410 }

static void lp_set_enum_parm ( struct parm_struct parm,
const char *  pszParmValue,
int *  ptr 
) [static]

loadparm.c3416 行で定義されています。

参照先 parm_struct::enum_listenum_list::namestrequal()enum_list::value.

参照元 handle_printing()lp_do_parameter().

03418 {
03419         int i;
03420 
03421         for (i = 0; parm->enum_list[i].name; i++) {
03422                 if ( strequal(pszParmValue, parm->enum_list[i].name)) {
03423                         *ptr = parm->enum_list[i].value;
03424                         break;
03425                 }
03426         }
03427 }

static void init_copymap ( service pservice  )  [static]

loadparm.c3457 行で定義されています。

参照先 service::copymap.

参照元 copy_service()lp_do_parameter().

03458 {
03459         int i;
03460         SAFE_FREE(pservice->copymap);
03461         pservice->copymap = SMB_MALLOC_ARRAY(BOOL,NUMPARAMETERS);
03462         if (!pservice->copymap)
03463                 DEBUG(0,
03464                       ("Couldn't allocate copymap!! (size %d)\n",
03465                        (int)NUMPARAMETERS));
03466         else
03467                 for (i = 0; i < NUMPARAMETERS; i++)
03468                         pservice->copymap[i] = True;
03469 }

void* lp_local_ptr ( int  snum,
void *  ptr 
)

loadparm.c3476 行で定義されています。

参照先 sDefaultServicePtrs.

参照元 show_parameter()show_parameters().

03477 {
03478         return (void *)(((char *)ServicePtrs[snum]) + PTR_DIFF(ptr, &sDefault));
03479 }

BOOL lp_do_parameter ( int  snum,
const char *  pszParmName,
const char *  pszParmValue 
)

loadparm.c3486 行で定義されています。

参照先 flagsGlobalsinit_copymap()_param_opt_struct::keyparm_struct::label_param_opt_struct::listlp_bool()lp_int()lp_set_enum_parm()map_parameter()P_BOOLP_BOOLREVP_CHARP_ENUMP_GLOBALP_GSTRINGP_INTEGERP_LISTP_OCTALP_SEPP_STRINGP_UGSTRINGP_USTRINGservice::param_optglobal::param_optparm_tablepstr_sprintf()parm_struct::ptrsDefaultServicePtrsstr_list_free()str_list_make()string_free()string_set()strupper_m()trim_char()type_param_opt_struct::value.

参照元 commit_parameter()do_parameter()printers_page()wizard_page().

03487 {
03488         int parmnum, i, slen;
03489         void *parm_ptr = NULL;  /* where we are going to store the result */
03490         void *def_ptr = NULL;
03491         pstring param_key;
03492         char *sep;
03493         param_opt_struct *paramo, *data;
03494         BOOL not_added;
03495 
03496         parmnum = map_parameter(pszParmName);
03497 
03498         if (parmnum < 0) {
03499                 if ((sep=strchr(pszParmName, ':')) != NULL) {
03500                         *sep = '\0';
03501                         ZERO_STRUCT(param_key);
03502                         pstr_sprintf(param_key, "%s:", pszParmName);
03503                         slen = strlen(param_key);
03504                         pstrcat(param_key, sep+1);
03505                         trim_char(param_key+slen, ' ', ' ');
03506                         not_added = True;
03507                         data = (snum < 0) ? Globals.param_opt : 
03508                                 ServicePtrs[snum]->param_opt;
03509                         /* Traverse destination */
03510                         while (data) {
03511                                 /* If we already have same option, override it */
03512                                 if (strcmp(data->key, param_key) == 0) {
03513                                         string_free(&data->value);
03514                                         str_list_free(&data->list);
03515                                         data->value = SMB_STRDUP(pszParmValue);
03516                                         not_added = False;
03517                                         break;
03518                                 }
03519                                 data = data->next;
03520                         }
03521                         if (not_added) {
03522                                 paramo = SMB_XMALLOC_P(param_opt_struct);
03523                                 paramo->key = SMB_STRDUP(param_key);
03524                                 paramo->value = SMB_STRDUP(pszParmValue);
03525                                 paramo->list = NULL;
03526                                 if (snum < 0) {
03527                                         DLIST_ADD(Globals.param_opt, paramo);
03528                                 } else {
03529                                         DLIST_ADD(ServicePtrs[snum]->param_opt, paramo);
03530                                 }
03531                         }
03532 
03533                         *sep = ':';
03534                         return (True);
03535                 }
03536                 DEBUG(0, ("Ignoring unknown parameter \"%s\"\n", pszParmName));
03537                 return (True);
03538         }
03539 
03540         if (parm_table[parmnum].flags & FLAG_DEPRECATED) {
03541                 DEBUG(1, ("WARNING: The \"%s\" option is deprecated\n",
03542                           pszParmName));
03543         }
03544 
03545         def_ptr = parm_table[parmnum].ptr;
03546 
03547         /* we might point at a service, the default service or a global */
03548         if (snum < 0) {
03549                 parm_ptr = def_ptr;
03550         } else {
03551                 if (parm_table[parmnum].p_class == P_GLOBAL) {
03552                         DEBUG(0,
03553                               ("Global parameter %s found in service section!\n",
03554                                pszParmName));
03555                         return (True);
03556                 }
03557                 parm_ptr =
03558                         ((char *)ServicePtrs[snum]) + PTR_DIFF(def_ptr,
03559                                                             &sDefault);
03560         }
03561 
03562         if (snum >= 0) {
03563                 if (!ServicePtrs[snum]->copymap)
03564                         init_copymap(ServicePtrs[snum]);
03565 
03566                 /* this handles the aliases - set the copymap for other entries with
03567                    the same data pointer */
03568                 for (i = 0; parm_table[i].label; i++)
03569                         if (parm_table[i].ptr == parm_table[parmnum].ptr)
03570                                 ServicePtrs[snum]->copymap[i] = False;
03571         }
03572 
03573         /* if it is a special case then go ahead */
03574         if (parm_table[parmnum].special) {
03575                 parm_table[parmnum].special(snum, pszParmValue, (char **)parm_ptr);
03576                 return (True);
03577         }
03578 
03579         /* now switch on the type of variable it is */
03580         switch (parm_table[parmnum].type)
03581         {
03582                 case P_BOOL:
03583                         *(BOOL *)parm_ptr = lp_bool(pszParmValue);
03584                         break;
03585 
03586                 case P_BOOLREV:
03587                         *(BOOL *)parm_ptr = !lp_bool(pszParmValue);
03588                         break;
03589 
03590                 case P_INTEGER:
03591                         *(int *)parm_ptr = lp_int(pszParmValue);
03592                         break;
03593 
03594                 case P_CHAR:
03595                         *(char *)parm_ptr = *pszParmValue;
03596                         break;
03597 
03598                 case P_OCTAL:
03599                         i = sscanf(pszParmValue, "%o", (int *)parm_ptr);
03600                         if ( i != 1 ) {
03601                             DEBUG ( 0, ("Invalid octal number %s\n", pszParmName ));
03602                         }
03603                         break;
03604 
03605                 case P_LIST:
03606                         str_list_free((char ***)parm_ptr);
03607                         *(char ***)parm_ptr = str_list_make(pszParmValue, NULL);
03608                         break;
03609 
03610                 case P_STRING:
03611                         string_set((char **)parm_ptr, pszParmValue);
03612                         break;
03613 
03614                 case P_USTRING:
03615                         string_set((char **)parm_ptr, pszParmValue);
03616                         strupper_m(*(char **)parm_ptr);
03617                         break;
03618 
03619                 case P_GSTRING:
03620                         pstrcpy((char *)parm_ptr, pszParmValue);
03621                         break;
03622 
03623                 case P_UGSTRING:
03624                         pstrcpy((char *)parm_ptr, pszParmValue);
03625                         strupper_m((char *)parm_ptr);
03626                         break;
03627 
03628                 case P_ENUM:
03629                         lp_set_enum_parm( &parm_table[parmnum], pszParmValue, (int*)parm_ptr );
03630                         break;
03631                 case P_SEP:
03632                         break;
03633         }
03634 
03635         return (True);
03636 }

static BOOL do_parameter ( const char *  pszParmName,
const char *  pszParmValue 
) [static]

loadparm.c3642 行で定義されています。

参照先 bGlobalOnlybInGlobalSectioniServiceIndexlp_do_parameter().

参照元 handle_include().

03643 {
03644         if (!bInGlobalSection && bGlobalOnly)
03645                 return (True);
03646 
03647         DEBUGADD(4, ("doing parameter %s = %s\n", pszParmName, pszParmValue));
03648 
03649         return (lp_do_parameter(bInGlobalSection ? -2 : iServiceIndex,
03650                                 pszParmName, pszParmValue));
03651 }

static void print_parameter ( struct parm_struct p,
void *  ptr,
FILE *  f 
) [static]

loadparm.c3657 行で定義されています。

参照先 parm_struct::enum_listfprintf()list()enum_list::nameoctal_string()P_BOOLP_BOOLREVP_CHARP_ENUMP_GSTRINGP_INTEGERP_LISTP_OCTALP_SEPP_STRINGP_UGSTRINGP_USTRINGstrchr_m()parm_struct::typeenum_list::value.

参照元 dump_a_parameter()dump_a_service()dump_globals().

03658 {
03659         int i;
03660         switch (p->type)
03661         {
03662                 case P_ENUM:
03663                         for (i = 0; p->enum_list[i].name; i++) {
03664                                 if (*(int *)ptr == p->enum_list[i].value) {
03665                                         fprintf(f, "%s",
03666                                                 p->enum_list[i].name);
03667                                         break;
03668                                 }
03669                         }
03670                         break;
03671 
03672                 case P_BOOL:
03673                         fprintf(f, "%s", BOOLSTR(*(BOOL *)ptr));
03674                         break;
03675 
03676                 case P_BOOLREV:
03677                         fprintf(f, "%s", BOOLSTR(!*(BOOL *)ptr));
03678                         break;
03679 
03680                 case P_INTEGER:
03681                         fprintf(f, "%d", *(int *)ptr);
03682                         break;
03683 
03684                 case P_CHAR:
03685                         fprintf(f, "%c", *(char *)ptr);
03686                         break;
03687 
03688                 case P_OCTAL:
03689                         fprintf(f, "%s", octal_string(*(int *)ptr));
03690                         break;
03691 
03692                 case P_LIST:
03693                         if ((char ***)ptr && *(char ***)ptr) {
03694                                 char **list = *(char ***)ptr;
03695                                 
03696                                 for (; *list; list++) {
03697                                         /* surround strings with whitespace in double quotes */
03698                                         if ( strchr_m( *list, ' ' ) )
03699                                                 fprintf(f, "\"%s\"%s", *list, ((*(list+1))?", ":""));
03700                                         else
03701                                                 fprintf(f, "%s%s", *list, ((*(list+1))?", ":""));
03702                                 }
03703                         }
03704                         break;
03705 
03706                 case P_GSTRING:
03707                 case P_UGSTRING:
03708                         if ((char *)ptr) {
03709                                 fprintf(f, "%s", (char *)ptr);
03710                         }
03711                         break;
03712 
03713                 case P_STRING:
03714                 case P_USTRING:
03715                         if (*(char **)ptr) {
03716                                 fprintf(f, "%s", *(char **)ptr);
03717                         }
03718                         break;
03719                 case P_SEP:
03720                         break;
03721         }
03722 }

static BOOL equal_parameter ( parm_type  type,
void *  ptr1,
void *  ptr2 
) [static]

loadparm.c3728 行で定義されています。

参照先 P_BOOLP_BOOLREVP_CHARP_ENUMP_GSTRINGP_INTEGERP_LISTP_OCTALP_SEPP_STRINGP_UGSTRINGP_USTRINGstr_list_compare()strequal().

参照元 dump_a_service()lp_is_default()lp_next_parameter().

03729 {
03730         switch (type) {
03731                 case P_BOOL:
03732                 case P_BOOLREV:
03733                         return (*((BOOL *)ptr1) == *((BOOL *)ptr2));
03734 
03735                 case P_INTEGER:
03736                 case P_ENUM:
03737                 case P_OCTAL:
03738                         return (*((int *)ptr1) == *((int *)ptr2));
03739 
03740                 case P_CHAR:
03741                         return (*((char *)ptr1) == *((char *)ptr2));
03742                 
03743                 case P_LIST:
03744                         return str_list_compare(*(char ***)ptr1, *(char ***)ptr2);
03745 
03746                 case P_GSTRING:
03747                 case P_UGSTRING:
03748                 {
03749                         char *p1 = (char *)ptr1, *p2 = (char *)ptr2;
03750                         if (p1 && !*p1)
03751                                 p1 = NULL;
03752                         if (p2 && !*p2)
03753                                 p2 = NULL;
03754                         return (p1 == p2 || strequal(p1, p2));
03755                 }
03756                 case P_STRING:
03757                 case P_USTRING:
03758                 {
03759                         char *p1 = *(char **)ptr1, *p2 = *(char **)ptr2;
03760                         if (p1 && !*p1)
03761                                 p1 = NULL;
03762                         if (p2 && !*p2)
03763                                 p2 = NULL;
03764                         return (p1 == p2 || strequal(p1, p2));
03765                 }
03766                 case P_SEP:
03767                         break;
03768         }
03769         return (False);
03770 }

void init_locals ( void   ) 

loadparm.c3776 行で定義されています。

参照元 do_section().

03777 {
03778         /* None as yet. */
03779 }

static BOOL do_section ( const char *  pszSectionName  )  [static]

loadparm.c3787 行で定義されています。

参照先 add_a_service()bGlobalOnlybInGlobalSectioninit_locals()iServiceIndexsDefaultservice_ok()strwicmp().

参照元 handle_include().

03788 {
03789         BOOL bRetval;
03790         BOOL isglobal = ((strwicmp(pszSectionName, GLOBAL_NAME) == 0) ||
03791                          (strwicmp(pszSectionName, GLOBAL_NAME2) == 0));
03792         bRetval = False;
03793 
03794         /* if we were in a global section then do the local inits */
03795         if (bInGlobalSection && !isglobal)
03796                 init_locals();
03797 
03798         /* if we've just struck a global section, note the fact. */
03799         bInGlobalSection = isglobal;
03800 
03801         /* check for multiple global sections */
03802         if (bInGlobalSection) {
03803                 DEBUG(3, ("Processing section \"[%s]\"\n", pszSectionName));
03804                 return (True);
03805         }
03806 
03807         if (!bInGlobalSection && bGlobalOnly)
03808                 return (True);
03809 
03810         /* if we have a current service, tidy it up before moving on */
03811         bRetval = True;
03812 
03813         if (iServiceIndex >= 0)
03814                 bRetval = service_ok(iServiceIndex);
03815 
03816         /* if all is still well, move to the next record in the services array */
03817         if (bRetval) {
03818                 /* We put this here to avoid an odd message order if messages are */
03819                 /* issued by the post-processing of a previous section. */
03820                 DEBUG(2, ("Processing section \"[%s]\"\n", pszSectionName));
03821 
03822                 if ((iServiceIndex = add_a_service(&sDefault, pszSectionName))
03823                     < 0) {
03824                         DEBUG(0, ("Failed to add a new service\n"));
03825                         return (False);
03826                 }
03827         }
03828 
03829         return (bRetval);
03830 }

static BOOL is_default ( int  i  )  [static]

loadparm.c3837 行で定義されています。

参照先 parm_struct::bvalueparm_struct::cvalueparm_struct::defdefaults_savedparm_struct::ivalueparm_struct::lvalueP_BOOLP_BOOLREVP_CHARP_ENUMP_GSTRINGP_INTEGERP_LISTP_OCTALP_SEPP_STRINGP_UGSTRINGP_USTRINGparm_tableparm_struct::ptrstr_list_compare()strequal()parm_struct::svaluetype.

参照元 dump_a_service()dump_globals().

03838 {
03839         if (!defaults_saved)
03840                 return False;
03841         switch (parm_table[i].type) {
03842                 case P_LIST:
03843                         return str_list_compare (parm_table[i].def.lvalue, 
03844                                                 *(char ***)parm_table[i].ptr);
03845                 case P_STRING:
03846                 case P_USTRING:
03847                         return strequal(parm_table[i].def.svalue,
03848                                         *(char **)parm_table[i].ptr);
03849                 case P_GSTRING:
03850                 case P_UGSTRING:
03851                         return strequal(parm_table[i].def.svalue,
03852                                         (char *)parm_table[i].ptr);
03853                 case P_BOOL:
03854                 case P_BOOLREV:
03855                         return parm_table[i].def.bvalue ==
03856                                 *(BOOL *)parm_table[i].ptr;
03857                 case P_CHAR:
03858                         return parm_table[i].def.cvalue ==
03859                                 *(char *)parm_table[i].ptr;
03860                 case P_INTEGER:
03861                 case P_OCTAL:
03862                 case P_ENUM:
03863                         return parm_table[i].def.ivalue ==
03864                                 *(int *)parm_table[i].ptr;
03865                 case P_SEP:
03866                         break;
03867         }
03868         return False;
03869 }

static void dump_globals ( FILE *  f  )  [static]

loadparm.c3875 行で定義されています。

参照先 defaults_savedfprintf()Globalsis_default()_param_opt_struct::keyparm_struct::label_param_opt_struct::nextP_GLOBALglobal::param_optparm_tableprint_parameter()_param_opt_struct::value.

03876 {
03877         int i;
03878         param_opt_struct *data;
03879         
03880         fprintf(f, "[global]\n");
03881 
03882         for (i = 0; parm_table[i].label; i++)
03883                 if (parm_table[i].p_class == P_GLOBAL &&
03884                     parm_table[i].ptr &&
03885                     (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr))) {
03886                         if (defaults_saved && is_default(i))
03887                                 continue;
03888                         fprintf(f, "\t%s = ", parm_table[i].label);
03889                         print_parameter(&parm_table[i], parm_table[i].ptr, f);
03890                         fprintf(f, "\n");
03891         }
03892         if (Globals.param_opt != NULL) {
03893                 data = Globals.param_opt;
03894                 while(data) {
03895                         fprintf(f, "\t%s = %s\n", data->key, data->value);
03896                         data = data->next;
03897                 }
03898         }
03899 
03900 }

BOOL lp_is_default ( int  snum,
struct parm_struct parm 
)

loadparm.c3906 行で定義されています。

参照先 equal_parameter()parm_struct::ptrsDefaultServicePtrsparm_struct::type.

参照元 commit_parameter().

03907 {
03908         int pdiff = PTR_DIFF(parm->ptr, &sDefault);
03909 
03910         return equal_parameter(parm->type,
03911                                ((char *)ServicePtrs[snum]) + pdiff,
03912                                ((char *)&sDefault) + pdiff);
03913 }

static void dump_a_service ( service pService,
FILE *  f 
) [static]

loadparm.c3919 行で定義されています。

参照先 defaults_savedequal_parameter()fprintf()is_default()_param_opt_struct::keyparm_struct::label_param_opt_struct::nextP_LOCALservice::param_optparm_tableprint_parameter()sDefaultservice::szServicetype_param_opt_struct::value.

03920 {
03921         int i;
03922         param_opt_struct *data;
03923         
03924         if (pService != &sDefault)
03925                 fprintf(f, "[%s]\n", pService->szService);
03926 
03927         for (i = 0; parm_table[i].label; i++) {
03928 
03929                 if (parm_table[i].p_class == P_LOCAL &&
03930                     parm_table[i].ptr &&
03931                     (*parm_table[i].label != '-') &&
03932                     (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr))) 
03933                 {
03934                 
03935                         int pdiff = PTR_DIFF(parm_table[i].ptr, &sDefault);
03936 
03937                         if (pService == &sDefault) {
03938                                 if (defaults_saved && is_default(i))
03939                                         continue;
03940                         } else {
03941                                 if (equal_parameter(parm_table[i].type,
03942                                                     ((char *)pService) +
03943                                                     pdiff,
03944                                                     ((char *)&sDefault) +
03945                                                     pdiff))
03946                                         continue;
03947                         }
03948 
03949                         fprintf(f, "\t%s = ", parm_table[i].label);
03950                         print_parameter(&parm_table[i],
03951                                         ((char *)pService) + pdiff, f);
03952                         fprintf(f, "\n");
03953                 }
03954         }
03955 
03956                 if (pService->param_opt != NULL) {
03957                         data = pService->param_opt;
03958                         while(data) {
03959                                 fprintf(f, "\t%s = %s\n", data->key, data->value);
03960                                 data = data->next;
03961                         }
03962                 }
03963 }

BOOL dump_a_parameter ( int  snum,
char *  parm_name,
FILE *  f,
BOOL  isGlobal 
)

loadparm.c3969 行で定義されています。

参照先 flagsfprintf()parm_struct::labellp_parm_const_string()P_GLOBALP_LOCALparm_tableprint_parameter()printf()resultsDefaultServicePtrsstrwicmp().

参照元 main().

03970 {
03971         int i;
03972         BOOL result = False;
03973         parm_class p_class;
03974         unsigned flag = 0;
03975         fstring local_parm_name;
03976         char *parm_opt;
03977         const char *parm_opt_value;
03978 
03979         /* check for parametrical option */
03980         fstrcpy( local_parm_name, parm_name);
03981         parm_opt = strchr( local_parm_name, ':');
03982 
03983         if (parm_opt) {
03984                 *parm_opt = '\0';
03985                 parm_opt++;
03986                 if (strlen(parm_opt)) {
03987                         parm_opt_value = lp_parm_const_string( snum,
03988                                 local_parm_name, parm_opt, NULL);
03989                         if (parm_opt_value) {
03990                                 printf( "%s\n", parm_opt_value);
03991                                 result = True;
03992                         }
03993                 }
03994                 return result;
03995         }
03996 
03997         /* check for a key and print the value */
03998         if (isGlobal) {
03999                 p_class = P_GLOBAL;
04000                 flag = FLAG_GLOBAL;
04001         } else
04002                 p_class = P_LOCAL;
04003 
04004         for (i = 0; parm_table[i].label; i++) {
04005                 if (strwicmp(parm_table[i].label, parm_name) == 0 &&
04006                     (parm_table[i].p_class == p_class || parm_table[i].flags & flag) &&
04007                     parm_table[i].ptr &&
04008                     (*parm_table[i].label != '-') &&
04009                     (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr))) 
04010                 {
04011                         void *ptr;
04012 
04013                         if (isGlobal) {
04014                                 ptr = parm_table[i].ptr;
04015                         } else {
04016                                 service * pService = ServicePtrs[snum];
04017                                 ptr = ((char *)pService) +
04018                                         PTR_DIFF(parm_table[i].ptr, &sDefault);
04019                         }
04020 
04021                         print_parameter(&parm_table[i],
04022                                         ptr, f);
04023                         fprintf(f, "\n");
04024                         result = True;
04025                         break;
04026                 }
04027         }
04028 
04029         return result;
04030 }

struct parm_struct* lp_next_parameter ( int  snum,
int *  i,
int  allparameters 
)

loadparm.c4037 行で定義されています。

参照先 equal_parameter()parm_struct::labelparm_struct::p_classP_LOCALP_SEPARATORparm_tableparm_struct::ptrsDefaultServicePtrstype.

参照元 commit_parameters()show_parameters().

04038 {
04039         if (snum < 0) {
04040                 /* do the globals */
04041                 for (; parm_table[*i].label; (*i)++) {
04042                         if (parm_table[*i].p_class == P_SEPARATOR)
04043                                 return &parm_table[(*i)++];
04044 
04045                         if (!parm_table[*i].ptr
04046                             || (*parm_table[*i].label == '-'))
04047                                 continue;
04048 
04049                         if ((*i) > 0
04050                             && (parm_table[*i].ptr ==
04051                                 parm_table[(*i) - 1].ptr))
04052                                 continue;
04053 
04054                         return &parm_table[(*i)++];
04055                 }
04056         } else {
04057                 service *pService = ServicePtrs[snum];
04058 
04059                 for (; parm_table[*i].label; (*i)++) {
04060                         if (parm_table[*i].p_class == P_SEPARATOR)
04061                                 return &parm_table[(*i)++];
04062 
04063                         if (parm_table[*i].p_class == P_LOCAL &&
04064                             parm_table[*i].ptr &&
04065                             (*parm_table[*i].label != '-') &&
04066                             ((*i) == 0 ||
04067                              (parm_table[*i].ptr !=
04068                               parm_table[(*i) - 1].ptr)))
04069                         {
04070                                 int pdiff =
04071                                         PTR_DIFF(parm_table[*i].ptr,
04072                                                  &sDefault);
04073 
04074                                 if (allparameters ||
04075                                     !equal_parameter(parm_table[*i].type,
04076                                                      ((char *)pService) +
04077                                                      pdiff,
04078                                                      ((char *)&sDefault) +
04079                                                      pdiff))
04080                                 {
04081                                         return &parm_table[(*i)++];
04082                                 }
04083                         }
04084                 }
04085         }
04086 
04087         return NULL;
04088 }

static void dump_copy_map ( BOOL pcopymap  )  [static]

loadparm.c4095 行で定義されています。

参照先 parm_struct::labelparm_struct::p_classP_LOCALparm_tableprintf()parm_struct::ptr.

04096 {
04097         int i;
04098         if (!pcopymap)
04099                 return;
04100 
04101         printf("\n\tNon-Copied parameters:\n");
04102 
04103         for (i = 0; parm_table[i].label; i++)
04104                 if (parm_table[i].p_class == P_LOCAL &&
04105                     parm_table[i].ptr && !pcopymap[i] &&
04106                     (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr)))
04107                 {
04108                         printf("\t\t%s\n", parm_table[i].label);
04109                 }
04110 }

BOOL lp_snum_ok ( int  iService  ) 

loadparm.c4117 行で定義されています。

参照先 ServicePtrs.

参照元 api_DosPrintQEnum()api_DosPrintQGetInfo()api_RNetShareEnum()api_WPrintDestEnum()api_WPrintDestGetInfo()api_WPrintJobEnumerate()check_published_printers()do_drv_upgrade_printer()enum_all_printers_info_1()enum_all_printers_info_2()init_srv_share_info_ctr()key_printers_fetch_keys()print_notify_deregister_pid()print_notify_register_pid()printer_driver_in_use()printserver_notify_info()reload_printers()reset_all_printerdata()set_printer_hnd_name()share_sanity_checks()validate_reg_filename().

04118 {
04119         return (LP_SNUM_OK(iService) && ServicePtrs[iService]->bAvailable);
04120 }

static void lp_add_auto_services ( char *  str  )  [static]

loadparm.c4126 行で定義されています。

参照先 get_user_home_dir()lp_add_home().

04127 {
04128         char *s;
04129         char *p;
04130         int homes;
04131 
04132         if (!str)
04133                 return;
04134 
04135         s = SMB_STRDUP(str);
04136         if (!s)
04137                 return;
04138 
04139         homes = lp_servicenumber(HOMES_NAME);
04140 
04141         for (p = strtok(s, LIST_SEP); p; p = strtok(NULL, LIST_SEP)) {
04142                 char *home = get_user_home_dir(p);
04143 
04144                 if (lp_servicenumber(p) >= 0)
04145                         continue;
04146 
04147                 if (home && homes >= 0)
04148                         lp_add_home(p, homes, p, home);
04149         }
04150         SAFE_FREE(s);
04151 }

void lp_add_one_printer ( char *  name,
char *  comment 
)

loadparm.c4157 行で定義されています。

参照先 service::autoloadedlp_add_printer()ServicePtrsstring_set().

参照元 load_printers().

04158 {
04159         int printers = lp_servicenumber(PRINTERS_NAME);
04160         int i;
04161 
04162         if (lp_servicenumber(name) < 0) {
04163                 lp_add_printer(name, printers);
04164                 if ((i = lp_servicenumber(name)) >= 0) {
04165                         string_set(&ServicePtrs[i]->comment, comment);
04166                         ServicePtrs[i]->autoloaded = True;
04167                 }
04168         }
04169 }

BOOL lp_loaded ( void   ) 

loadparm.c4175 行で定義されています。

参照先 bLoaded.

参照元 dbghdr()format_debug_text()reload_nmbd_services()reload_services()reload_services_file()reopen_logs().

04176 {
04177         return (bLoaded);
04178 }

void lp_killunused ( BOOL(*)(int)  snumused  ) 

loadparm.c4184 行で定義されています。

参照先 free_service_byindex()iNumServicesServicePtrs.

参照元 reload_services()save_reload().

04185 {
04186         int i;
04187         for (i = 0; i < iNumServices; i++) {
04188                 if (!VALID(i))
04189                         continue;
04190 
04191                 /* don't kill autoloaded or usershare services */
04192                 if ( ServicePtrs[i]->autoloaded ||
04193                                 ServicePtrs[i]->usershare == USERSHARE_VALID) {
04194                         continue;
04195                 }
04196 
04197                 if (!snumused || !snumused(i)) {
04198                         free_service_byindex(i);
04199                 }
04200         }
04201 }

void lp_killservice ( int  iServiceIn  ) 

loadparm.c4207 行で定義されています。

参照先 free_service_byindex().

参照元 _srv_net_share_del()reload_printers().

04208 {
04209         if (VALID(iServiceIn)) {
04210                 free_service_byindex(iServiceIn);
04211         }
04212 }

static void lp_save_defaults ( void   )  [static]

loadparm.c4220 行で定義されています。

参照先 parm_struct::bvalueparm_struct::cvalueparm_struct::defdefaults_savedparm_struct::ivalueparm_struct::labelP_BOOLP_BOOLREVP_CHARP_ENUMP_GSTRINGP_INTEGERP_LISTP_OCTALP_SEPP_STRINGP_UGSTRINGP_USTRINGparm_tableparm_struct::ptrstr_list_copy()parm_struct::svaluetype.

04221 {
04222         int i;
04223         for (i = 0; parm_table[i].label; i++) {
04224                 if (i > 0 && parm_table[i].ptr == parm_table[i - 1].ptr)
04225                         continue;
04226                 switch (parm_table[i].type) {
04227                         case P_LIST:
04228                                 str_list_copy(&(parm_table[i].def.lvalue),
04229                                             *(const char ***)parm_table[i].ptr);
04230                                 break;
04231                         case P_STRING:
04232                         case P_USTRING:
04233                                 if (parm_table[i].ptr) {
04234                                         parm_table[i].def.svalue = SMB_STRDUP(*(char **)parm_table[i].ptr);
04235                                 } else {
04236                                         parm_table[i].def.svalue = NULL;
04237                                 }
04238                                 break;
04239                         case P_GSTRING:
04240                         case P_UGSTRING:
04241                                 if (parm_table[i].ptr) {
04242                                         parm_table[i].def.svalue = SMB_STRDUP((char *)parm_table[i].ptr);
04243                                 } else {
04244                                         parm_table[i].def.svalue = NULL;
04245                                 }
04246                                 break;
04247                         case P_BOOL:
04248                         case P_BOOLREV:
04249                                 parm_table[i].def.bvalue =
04250                                         *(BOOL *)parm_table[i].ptr;
04251                                 break;
04252                         case P_CHAR:
04253                                 parm_table[i].def.cvalue =
04254                                         *(char *)parm_table[i].ptr;
04255                                 break;
04256                         case P_INTEGER:
04257                         case P_OCTAL:
04258                         case P_ENUM:
04259                                 parm_table[i].def.ivalue =
04260                                         *(int *)parm_table[i].ptr;
04261                                 break;
04262                         case P_SEP:
04263                                 break;
04264                 }
04265         }
04266         defaults_saved = True;
04267 }

const char* server_role_str ( uint32  role  ) 

loadparm.c4284 行で定義されています。

参照元 display_sam_unk_info_2()display_sam_unk_info_7()main()set_server_role().

04285 {
04286         int i = 0;
04287         for (i=0; srv_role_tab[i].role_str; i++) {
04288                 if (role == srv_role_tab[i].role) {
04289                         return srv_role_tab[i].role_str;
04290                 }
04291         }
04292         return NULL;
04293 }

static BOOL check_usershare_stat ( const char *  fname,
SMB_STRUCT_STAT *  psbuf 
) [static]

loadparm.c4375 行で定義されています。

参照元 process_usershare_file().

04376 {
04377         if (!S_ISREG(psbuf->st_mode)) {
04378                 DEBUG(0,("check_usershare_stat: file %s owned by uid %u is "
04379                         "not a regular file\n",
04380                         fname, (unsigned int)psbuf->st_uid ));
04381                 return False;
04382         }
04383 
04384         /* Ensure this doesn't have the other write bit set. */
04385         if (psbuf->st_mode & S_IWOTH) {
04386                 DEBUG(0,("check_usershare_stat: file %s owned by uid %u allows "
04387                         "public write. Refusing to allow as a usershare file.\n",
04388                         fname, (unsigned int)psbuf->st_uid ));
04389                 return False;
04390         }
04391 
04392         /* Should be 10k or less. */
04393         if (psbuf->st_size > MAX_USERSHARE_FILE_SIZE) {
04394                 DEBUG(0,("check_usershare_stat: file %s owned by uid %u is "
04395                         "too large (%u) to be a user share file.\n",
04396                         fname, (unsigned int)psbuf->st_uid,
04397                         (unsigned int)psbuf->st_size ));
04398                 return False;
04399         }
04400 
04401         return True;
04402 }

enum usershare_err parse_usershare_file ( TALLOC_CTX ctx,
SMB_STRUCT_STAT *  psbuf,
const char *  servicename,
int  snum,
char **  lines,
int  numlines,
pstring  sharepath,
pstring  comment,
SEC_DESC **  ppsd,
BOOL pallow_guest 
)

loadparm.c4408 行で定義されています。

参照先 errnoparse_usershare_acl()ServicePtrsstrerror()sys_closedir()sys_opendir()sys_stat()trim_char()trim_string()USERSHARE_ACL_ERRUSERSHARE_BAD_VERSIONUSERSHARE_MALFORMED_ACL_DEFUSERSHARE_MALFORMED_COMMENT_DEFUSERSHARE_MALFORMED_FILEUSERSHARE_MALFORMED_PATHUSERSHARE_OKUSERSHARE_PATH_IS_DENIEDUSERSHARE_PATH_NOT_ABSOLUTEUSERSHARE_PATH_NOT_ALLOWEDUSERSHARE_PATH_NOT_DIRECTORYUSERSHARE_POSIX_ERR.

参照元 info_fn()process_usershare_file().

04418 {
04419         const char **prefixallowlist = lp_usershare_prefix_allow_list();
04420         const char **prefixdenylist = lp_usershare_prefix_deny_list();
04421         int us_vers;
04422         SMB_STRUCT_DIR *dp;
04423         SMB_STRUCT_STAT sbuf;
04424 
04425         *pallow_guest = False;
04426 
04427         if (numlines < 4) {
04428                 return USERSHARE_MALFORMED_FILE;
04429         }
04430 
04431         if (strcmp(lines[0], "#VERSION 1") == 0) {
04432                 us_vers = 1;
04433         } else if (strcmp(lines[0], "#VERSION 2") == 0) {
04434                 us_vers = 2;
04435                 if (numlines < 5) {
04436                         return USERSHARE_MALFORMED_FILE;
04437                 }
04438         } else {
04439                 return USERSHARE_BAD_VERSION;
04440         }
04441 
04442         if (strncmp(lines[1], "path=", 5) != 0) {
04443                 return USERSHARE_MALFORMED_PATH;
04444         }
04445 
04446         pstrcpy(sharepath, &lines[1][5]);
04447         trim_string(sharepath, " ", " ");
04448 
04449         if (strncmp(lines[2], "comment=", 8) != 0) {
04450                 return USERSHARE_MALFORMED_COMMENT_DEF;
04451         }
04452 
04453         pstrcpy(comment, &lines[2][8]);
04454         trim_string(comment, " ", " ");
04455         trim_char(comment, '"', '"');
04456 
04457         if (strncmp(lines[3], "usershare_acl=", 14) != 0) {
04458                 return USERSHARE_MALFORMED_ACL_DEF;
04459         }
04460 
04461         if (!parse_usershare_acl(ctx, &lines[3][14], ppsd)) {
04462                 return USERSHARE_ACL_ERR;
04463         }
04464 
04465         if (us_vers == 2) {
04466                 if (strncmp(lines[4], "guest_ok=", 9) != 0) {
04467                         return USERSHARE_MALFORMED_ACL_DEF;
04468                 }
04469                 if (lines[4][9] == 'y') {
04470                         *pallow_guest = True;
04471                 }
04472         }
04473 
04474         if (snum != -1 && (strcmp(sharepath, ServicePtrs[snum]->szPath) == 0)) {
04475                 /* Path didn't change, no checks needed. */
04476                 return USERSHARE_OK;
04477         }
04478 
04479         /* The path *must* be absolute. */
04480         if (sharepath[0] != '/') {
04481                 DEBUG(2,("parse_usershare_file: share %s: path %s is not an absolute path.\n",
04482                         servicename, sharepath));
04483                 return USERSHARE_PATH_NOT_ABSOLUTE;
04484         }
04485 
04486         /* If there is a usershare prefix deny list ensure one of these paths
04487            doesn't match the start of the user given path. */
04488         if (prefixdenylist) {
04489                 int i;
04490                 for ( i=0; prefixdenylist[i]; i++ ) {
04491                         DEBUG(10,("parse_usershare_file: share %s : checking prefixdenylist[%d]='%s' against %s\n",
04492                                 servicename, i, prefixdenylist[i], sharepath ));
04493                         if (memcmp( sharepath, prefixdenylist[i], strlen(prefixdenylist[i])) == 0) {
04494                                 DEBUG(2,("parse_usershare_file: share %s path %s starts with one of the "
04495                                         "usershare prefix deny list entries.\n",
04496                                         servicename, sharepath));
04497                                 return USERSHARE_PATH_IS_DENIED;
04498                         }
04499                 }
04500         }
04501 
04502         /* If there is a usershare prefix allow list ensure one of these paths
04503            does match the start of the user given path. */
04504 
04505         if (prefixallowlist) {
04506                 int i;
04507                 for ( i=0; prefixallowlist[i]; i++ ) {
04508                         DEBUG(10,("parse_usershare_file: share %s checking prefixallowlist[%d]='%s' against %s\n",
04509                                 servicename, i, prefixallowlist[i], sharepath ));
04510                         if (memcmp( sharepath, prefixallowlist[i], strlen(prefixallowlist[i])) == 0) {
04511                                 break;
04512                         }
04513                 }
04514                 if (prefixallowlist[i] == NULL) {
04515                         DEBUG(2,("parse_usershare_file: share %s path %s doesn't start with one of the "
04516                                 "usershare prefix allow list entries.\n",
04517                                 servicename, sharepath));
04518                         return USERSHARE_PATH_NOT_ALLOWED;
04519                 }
04520         }
04521 
04522         /* Ensure this is pointing to a directory. */
04523         dp = sys_opendir(sharepath);
04524 
04525         if (!dp) {
04526                 DEBUG(2,("parse_usershare_file: share %s path %s is not a directory.\n",
04527                         servicename, sharepath));
04528                 return USERSHARE_PATH_NOT_DIRECTORY;
04529         }
04530 
04531         /* Ensure the owner of the usershare file has permission to share
04532            this directory. */
04533 
04534         if (sys_stat(sharepath, &sbuf) == -1) {
04535                 DEBUG(2,("parse_usershare_file: share %s : stat failed on path %s. %s\n",
04536                         servicename, sharepath, strerror(errno) ));
04537                 sys_closedir(dp);
04538                 return USERSHARE_POSIX_ERR;
04539         }
04540 
04541         sys_closedir(dp);
04542 
04543         if (!S_ISDIR(sbuf.st_mode)) {
04544                 DEBUG(2,("parse_usershare_file: share %s path %s is not a directory.\n",
04545                         servicename, sharepath ));
04546                 return USERSHARE_PATH_NOT_DIRECTORY;
04547         }
04548 
04549         /* Check if sharing is restricted to owner-only. */
04550         /* psbuf is the stat of the usershare definition file,
04551            sbuf is the stat of the target directory to be shared. */
04552 
04553         if (lp_usershare_owner_only()) {
04554                 /* root can share anything. */
04555                 if ((psbuf->st_uid != 0) && (sbuf.st_uid != psbuf->st_uid)) {
04556                         return USERSHARE_PATH_NOT_ALLOWED;
04557                 }
04558         }
04559 
04560         return USERSHARE_OK;
04561 }

static int process_usershare_file ( const char *  dir_name,
const char *  file_name,
int  snum_template 
) [static]

loadparm.c4572 行で定義されています。

参照先 add_a_service()service::bGuest_okservice::bRead_onlycanonicalize_servicename()check_usershare_stat()ctxerrnofdfd_lines_load()file_lines_free()parse_usershare_file()sDefaultServiceHashServicePtrsset_share_security()strerror()string_set()sys_fstat()sys_lstat()sys_open()talloc_init()tdb_fetch_int32()service::usershareservice::usershare_last_modUSERSHARE_OKservice::validvalidate_net_name().

参照元 load_usershare_service().

04573 {
04574         SMB_STRUCT_STAT sbuf;
04575         SMB_STRUCT_STAT lsbuf;
04576         pstring fname;
04577         pstring sharepath;
04578         pstring comment;
04579         fstring service_name;
04580         char **lines = NULL;
04581         int numlines = 0;
04582         int fd = -1;
04583         int iService = -1;
04584         TALLOC_CTX *ctx = NULL;
04585         SEC_DESC *psd = NULL;
04586         BOOL guest_ok = False;
04587 
04588         /* Ensure share name doesn't contain invalid characters. */
04589         if (!validate_net_name(file_name, INVALID_SHARENAME_CHARS, strlen(file_name))) {
04590                 DEBUG(0,("process_usershare_file: share name %s contains "
04591                         "invalid characters (any of %s)\n",
04592                         file_name, INVALID_SHARENAME_CHARS ));
04593                 return -1;
04594         }
04595 
04596         fstrcpy(service_name, file_name);
04597 
04598         pstrcpy(fname, dir_name);
04599         pstrcat(fname, "/");
04600         pstrcat(fname, file_name);
04601 
04602         /* Minimize the race condition by doing an lstat before we
04603            open and fstat. Ensure this isn't a symlink link. */
04604 
04605         if (sys_lstat(fname, &lsbuf) != 0) {
04606                 DEBUG(0,("process_usershare_file: stat of %s failed. %s\n",
04607                         fname, strerror(errno) ));
04608                 return -1;
04609         }
04610 
04611         /* This must be a regular file, not a symlink, directory or
04612            other strange filetype. */
04613         if (!check_usershare_stat(fname, &lsbuf)) {
04614                 return -1;
04615         }
04616 
04617         /* See if there is already a servicenum for this name. */
04618         /* tdb_fetch_int32 returns -1 if not found. */
04619         iService = (int)tdb_fetch_int32(ServiceHash, canonicalize_servicename(service_name) );
04620 
04621         if (iService != -1 && ServicePtrs[iService]->usershare_last_mod == lsbuf.st_mtime) {
04622                 /* Nothing changed - Mark valid and return. */
04623                 DEBUG(10,("process_usershare_file: service %s not changed.\n",
04624                         service_name ));
04625                 ServicePtrs[iService]->usershare = USERSHARE_VALID;
04626                 return iService;
04627         }
04628 
04629         /* Try and open the file read only - no symlinks allowed. */
04630 #ifdef O_NOFOLLOW
04631         fd = sys_open(fname, O_RDONLY|O_NOFOLLOW, 0);
04632 #else
04633         fd = sys_open(fname, O_RDONLY, 0);
04634 #endif
04635 
04636         if (fd == -1) {
04637                 DEBUG(0,("process_usershare_file: unable to open %s. %s\n",
04638                         fname, strerror(errno) ));
04639                 return -1;
04640         }
04641 
04642         /* Now fstat to be *SURE* it's a regular file. */
04643         if (sys_fstat(fd, &sbuf) != 0) {
04644                 close(fd);
04645                 DEBUG(0,("process_usershare_file: fstat of %s failed. %s\n",
04646                         fname, strerror(errno) ));
04647                 return -1;
04648         }
04649 
04650         /* Is it the same dev/inode as was lstated ? */
04651         if (lsbuf.st_dev != sbuf.st_dev || lsbuf.st_ino != sbuf.st_ino) {
04652                 close(fd);
04653                 DEBUG(0,("process_usershare_file: fstat of %s is a different file from lstat. "
04654                         "Symlink spoofing going on ?\n", fname ));
04655                 return -1;
04656         }
04657 
04658         /* This must be a regular file, not a symlink, directory or
04659            other strange filetype. */
04660         if (!check_usershare_stat(fname, &sbuf)) {
04661                 return -1;
04662         }
04663 
04664         lines = fd_lines_load(fd, &numlines, MAX_USERSHARE_FILE_SIZE);
04665 
04666         close(fd);
04667         if (lines == NULL) {
04668                 DEBUG(0,("process_usershare_file: loading file %s owned by %u failed.\n",
04669                         fname, (unsigned int)sbuf.st_uid ));
04670                 return -1;
04671         }
04672 
04673         /* Should we allow printers to be shared... ? */
04674         ctx = talloc_init("usershare_sd_xctx");
04675         if (!ctx) {
04676                 file_lines_free(lines);
04677                 return 1;
04678         }
04679 
04680         if (parse_usershare_file(ctx, &sbuf, service_name,
04681                         iService, lines, numlines, sharepath,
04682                         comment, &psd, &guest_ok) != USERSHARE_OK) {
04683                 talloc_destroy(ctx);
04684                 file_lines_free(lines);
04685                 return -1;
04686         }
04687 
04688         file_lines_free(lines);
04689 
04690         /* Everything ok - add the service possibly using a template. */
04691         if (iService < 0) {
04692                 const service *sp = &sDefault;
04693                 if (snum_template != -1) {
04694                         sp = ServicePtrs[snum_template];
04695                 }
04696 
04697                 if ((iService = add_a_service(sp, service_name)) < 0) {
04698                         DEBUG(0, ("process_usershare_file: Failed to add "
04699                                 "new service %s\n", service_name));
04700                         talloc_destroy(ctx);
04701                         return -1;
04702                 }
04703 
04704                 /* Read only is controlled by usershare ACL below. */
04705                 ServicePtrs[iService]->bRead_only = False;
04706         }
04707 
04708         /* Write the ACL of the new/modified share. */
04709         if (!set_share_security(service_name, psd)) {
04710                  DEBUG(0, ("process_usershare_file: Failed to set share "
04711                         "security for user share %s\n",
04712                         service_name ));
04713                 lp_remove_service(iService);
04714                 talloc_destroy(ctx);
04715                 return -1;
04716         }
04717 
04718         talloc_destroy(ctx);
04719 
04720         /* If from a template it may be marked invalid. */
04721         ServicePtrs[iService]->valid = True;
04722 
04723         /* Set the service as a valid usershare. */
04724         ServicePtrs[iService]->usershare = USERSHARE_VALID;
04725 
04726         /* Set guest access. */
04727         if (lp_usershare_allow_guests()) {
04728                 ServicePtrs[iService]->bGuest_ok = guest_ok;
04729         }
04730 
04731         /* And note when it was loaded. */
04732         ServicePtrs[iService]->usershare_last_mod = sbuf.st_mtime;
04733         string_set(&ServicePtrs[iService]->szPath, sharepath);
04734         string_set(&ServicePtrs[iService]->comment, comment);
04735 
04736         return iService;
04737 }

static BOOL usershare_exists ( int  iService,
time_t *  last_mod 
) [static]

loadparm.c4743 行で定義されています。

参照先 GlobalsServicePtrssys_lstat()global::szUsersharePath.

04744 {
04745         SMB_STRUCT_STAT lsbuf;
04746         const char *usersharepath = Globals.szUsersharePath;
04747         pstring fname;
04748 
04749         pstrcpy(fname, usersharepath);
04750         pstrcat(fname, "/");
04751         pstrcat(fname, ServicePtrs[iService]->szService);
04752 
04753         if (sys_lstat(fname, &lsbuf) != 0) {
04754                 return False;
04755         }
04756 
04757         if (!S_ISREG(lsbuf.st_mode)) {
04758                 return False;
04759         }
04760 
04761         *last_mod = lsbuf.st_mtime;
04762         return True;
04763 }

int load_usershare_service ( const char *  servicename  ) 

loadparm.c4769 行で定義されています。

参照先 errnoGlobalsiNumServicesglobal::iUsershareMaxSharesprocess_usershare_file()ServicePtrsstrequal()strerror()sys_stat()global::szUsersharePathglobal::szUsershareTemplateShare.

参照元 find_service().


変数

BOOL in_client = False

loadparm.c56 行で定義されています。

BOOL bLoaded = False

loadparm.c57 行で定義されています。

参照元 lp_loaded().

pstring user_socket_options

util.c72 行で定義されています。

enum protocol_types Protocol

util.c61 行で定義されています。

userdom_struct current_user_info

substitute.c29 行で定義されています。

int keepalive = DEFAULT_KEEPALIVE

loadparm.c82 行で定義されています。

参照元 timeout_processing().

BOOL use_getwd_cache = True

loadparm.c83 行で定義されています。

参照元 vfs_GetWd().

int extra_time_offset

time.c615 行で定義されています。

参照元 get_time_zone().

BOOL defaults_saved = False [static]

loadparm.c87 行で定義されています。

参照元 dump_a_service()dump_globals()is_default()lp_save_defaults().

global Globals [static]

loadparm.c322 行で定義されています。

参照元 append_ldap_suffix()dump_globals()FN_GLOBAL_LIST()FN_LOCAL_PARM_BOOL()handle_ldap_debug_level()handle_netbios_aliases()handle_netbios_name()handle_netbios_scope()handle_workgroup()init_globals()load_usershare_service()lp_add_ipc()lp_do_parameter()lp_ldap_group_suffix()lp_ldap_idmap_suffix()lp_ldap_machine_suffix()lp_ldap_user_suffix()set_allowed_client_auth()set_server_role()usershare_exists().

service sDefault [static]

loadparm.c470 行で定義されています。

参照元 copy_service()do_section()dump_a_parameter()dump_a_service()free_service()handle_printing()init_globals()init_service()lp_add_home()lp_add_ipc()lp_add_printer()lp_do_parameter()lp_is_default()lp_local_ptr()lp_next_parameter()process_usershare_file().

service** ServicePtrs = NULL [static]

loadparm.c616 行で定義されています。

参照元 add_a_service()dump_a_parameter()FN_LOCAL_PARM_BOOL()free_service_byindex()getservicebyname()handle_copy()handle_printing()load_usershare_service()lp_add_home()lp_add_ipc()lp_add_one_printer()lp_add_printer()lp_add_service()lp_do_parameter()lp_is_default()lp_killunused()lp_local_ptr()lp_next_parameter()lp_snum_ok()parse_usershare_file()process_usershare_file()service_ok()usershare_exists().

int iNumServices = 0 [static]

loadparm.c617 行で定義されています。

参照元 load_usershare_service()lp_killunused().

int iServiceIndex = 0 [static]

loadparm.c618 行で定義されています。

参照元 do_parameter()do_section().

TDB_CONTEXT* ServiceHash [static]

loadparm.c619 行で定義されています。

参照元 free_service_byindex()getservicebyname()hash_a_service()process_usershare_file().

int* invalid_services = NULL [static]

loadparm.c620 行で定義されています。

int num_invalid_services = 0 [static]

loadparm.c621 行で定義されています。

BOOL bInGlobalSection = True [static]

loadparm.c622 行で定義されています。

参照元 do_parameter()do_section().

BOOL bGlobalOnly = False [static]

loadparm.c623 行で定義されています。

参照元 do_parameter()do_section().

int server_role [static]

loadparm.c624 行で定義されています。

参照元 _samr_query_domain_info()set_server_role().

int default_server_announce [static]

loadparm.c625 行で定義されています。

struct enum_list enum_protocol[] [static]

初期値:

 {
        {PROTOCOL_NT1, "NT1"},
        {PROTOCOL_LANMAN2, "LANMAN2"},
        {PROTOCOL_LANMAN1, "LANMAN1"},
        {PROTOCOL_CORE, "CORE"},
        {PROTOCOL_COREPLUS, "COREPLUS"},
        {PROTOCOL_COREPLUS, "CORE+"},
        {-1, NULL}
}

loadparm.c647 行で定義されています。

struct enum_list enum_security[] [static]

初期値:

 {
        {SEC_SHARE, "SHARE"},
        {SEC_USER, "USER"},
        {SEC_SERVER, "SERVER"},
        {SEC_DOMAIN, "DOMAIN"},
#ifdef HAVE_ADS
        {SEC_ADS, "ADS"},
#endif
        {-1, NULL}
}

loadparm.c657 行で定義されています。

struct enum_list enum_printing[] [static]

初期値:

 {
        {PRINT_SYSV, "sysv"},
        {PRINT_AIX, "aix"},
        {PRINT_HPUX, "hpux"},
        {PRINT_BSD, "bsd"},
        {PRINT_QNX, "qnx"},
        {PRINT_PLP, "plp"},
        {PRINT_LPRNG, "lprng"},
        {PRINT_CUPS, "cups"},
        {PRINT_IPRINT, "iprint"},
        {PRINT_LPRNT, "nt"},
        {PRINT_LPROS2, "os2"},
#ifdef DEVELOPER
        {PRINT_TEST, "test"},
        {PRINT_VLP, "vlp"},
#endif 
        {-1, NULL}
}

loadparm.c668 行で定義されています。

struct enum_list enum_ldap_ssl[] [static]

初期値:

 {
        {LDAP_SSL_OFF, "no"},
        {LDAP_SSL_OFF, "No"},
        {LDAP_SSL_OFF, "off"},
        {LDAP_SSL_OFF, "Off"},
        {LDAP_SSL_START_TLS, "start tls"},
        {LDAP_SSL_START_TLS, "Start_tls"},
        {-1, NULL}
}

loadparm.c687 行で定義されています。

struct enum_list enum_ldap_passwd_sync[] [static]

初期値:

loadparm.c697 行で定義されています。

struct enum_list enum_announce_as[] [static]

初期値:

 {
        {ANNOUNCE_AS_NT_SERVER, "NT"},
        {ANNOUNCE_AS_NT_SERVER, "NT Server"},
        {ANNOUNCE_AS_NT_WORKSTATION, "NT Workstation"},
        {ANNOUNCE_AS_WIN95, "win95"},
        {ANNOUNCE_AS_WFW, "WfW"},
        {-1, NULL}
}

loadparm.c717 行で定義されています。

struct enum_list enum_map_readonly[] [static]

初期値:

 {
        {MAP_READONLY_NO, "no"},
        {MAP_READONLY_NO, "false"},
        {MAP_READONLY_NO, "0"},
        {MAP_READONLY_YES, "yes"},
        {MAP_READONLY_YES, "true"},
        {MAP_READONLY_YES, "1"},
        {MAP_READONLY_PERMISSIONS, "permissions"},
        {MAP_READONLY_PERMISSIONS, "perms"},
        {-1, NULL}
}

loadparm.c726 行で定義されています。

struct enum_list enum_case[] [static]

初期値:

 {
        {CASE_LOWER, "lower"},
        {CASE_UPPER, "upper"},
        {-1, NULL}
}

loadparm.c738 行で定義されています。

struct enum_list enum_bool_auto[] [static]

初期値:

 {
        {False, "No"},
        {False, "False"},
        {False, "0"},
        {True, "Yes"},
        {True, "True"},
        {True, "1"},
        {Auto, "Auto"},
        {-1, NULL}
}

loadparm.c744 行で定義されています。

struct enum_list enum_csc_policy[] [static]

初期値:

 {
        {CSC_POLICY_MANUAL, "manual"},
        {CSC_POLICY_DOCUMENTS, "documents"},
        {CSC_POLICY_PROGRAMS, "programs"},
        {CSC_POLICY_DISABLE, "disable"},
        {-1, NULL}
}

loadparm.c761 行で定義されています。

struct enum_list enum_smb_signing_vals[] [static]

初期値:

 {
        {False, "No"},
        {False, "False"},
        {False, "0"},
        {False, "Off"},
        {False, "disabled"},
        {True, "Yes"},
        {True, "True"},
        {True, "1"},
        {True, "On"},
        {True, "enabled"},
        {Auto, "auto"},
        {Required, "required"},
        {Required, "mandatory"},
        {Required, "force"},
        {Required, "forced"},
        {Required, "enforced"},
        {-1, NULL}
}

loadparm.c770 行で定義されています。

struct enum_list enum_acl_compat_vals[] [static]

初期値:

 {
    { ACL_COMPAT_AUTO, "auto" },
    { ACL_COMPAT_WINNT, "winnt" },
    { ACL_COMPAT_WIN2K, "win2k" },
    { -1, NULL}
}

loadparm.c791 行で定義されています。

struct enum_list enum_map_to_guest[] [static]

初期値:

 {
        {NEVER_MAP_TO_GUEST, "Never"},
        {MAP_TO_GUEST_ON_BAD_USER, "Bad User"},
        {MAP_TO_GUEST_ON_BAD_PASSWORD, "Bad Password"},
        {MAP_TO_GUEST_ON_BAD_UID, "Bad Uid"},
        {-1, NULL}
}

loadparm.c819 行で定義されています。

struct parm_struct parm_table[] [static]

loadparm.c845 行で定義されています。

参照元 copy_service()dump_a_parameter()dump_a_service()dump_copy_map()dump_globals()free_service()handle_printing()init_globals()is_default()lp_do_parameter()lp_next_parameter()lp_save_defaults()map_parameter()show_parameter_list().

TALLOC_CTX* lp_talloc [static]

loadparm.c1694 行で定義されています。

uid_t idmap_uid_low [static]

loadparm.c3279 行で定義されています。

uid_t idmap_uid_high [static]

loadparm.c3279 行で定義されています。

gid_t idmap_gid_low [static]

loadparm.c3280 行で定義されています。

gid_t idmap_gid_high [static]

loadparm.c3280 行で定義されています。

struct srv_role_tab srv_role_tab[] [static]


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