summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/param/loadparm.c822
-rw-r--r--source3/passdb/smbpass.c4
-rw-r--r--source3/printing/nt_printing.c20
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c6
-rw-r--r--source3/smbd/unix_acls.c8
5 files changed, 319 insertions, 541 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 3bab4dd175..a1b741a639 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -159,8 +159,6 @@ typedef struct
char *szAddUserScript;
char *szDelUserScript;
char *szWINSHook;
- char *szNtForms;
- char *szNtDriverFile;
#ifdef WITH_UTMP
char *szUtmpDir;
#endif /* WITH_UTMP */
@@ -515,25 +513,35 @@ static BOOL handle_winbind_id(char *pszParmValue, char **ptr);
static void set_server_role(void);
static void set_default_server_announce_type(void);
-static struct enum_list enum_protocol[] =
- { {PROTOCOL_NT1, "NT1"}, {PROTOCOL_LANMAN2, "LANMAN2"},
-{PROTOCOL_LANMAN1, "LANMAN1"}, {PROTOCOL_CORE, "CORE"},
-{PROTOCOL_COREPLUS, "COREPLUS"},
-{PROTOCOL_COREPLUS, "CORE+"}, {-1, NULL}
+static struct enum_list enum_protocol[] = {
+ {PROTOCOL_NT1, "NT1"},
+ {PROTOCOL_LANMAN2, "LANMAN2"},
+ {PROTOCOL_LANMAN1, "LANMAN1"},
+ {PROTOCOL_CORE, "CORE"},
+ {PROTOCOL_COREPLUS, "COREPLUS"},
+ {PROTOCOL_COREPLUS, "CORE+"},
+ {-1, NULL}
};
-static struct enum_list enum_security[] =
- { {SEC_SHARE, "SHARE"}, {SEC_USER, "USER"},
-{SEC_SERVER, "SERVER"}, {SEC_DOMAIN, "DOMAIN"},
-{-1, NULL}
+static struct enum_list enum_security[] = {
+ {SEC_SHARE, "SHARE"},
+ {SEC_USER, "USER"},
+ {SEC_SERVER, "SERVER"},
+ {SEC_DOMAIN, "DOMAIN"},
+ {-1, NULL}
};
-static struct enum_list enum_printing[] =
- { {PRINT_SYSV, "sysv"}, {PRINT_AIX, "aix"},
-{PRINT_HPUX, "hpux"}, {PRINT_BSD, "bsd"},
-{PRINT_QNX, "qnx"}, {PRINT_PLP, "plp"},
-{PRINT_LPRNG, "lprng"}, {PRINT_SOFTQ, "softq"},
-{PRINT_CUPS, "cups"}, {-1, NULL}
+static struct enum_list enum_printing[] = {
+ {PRINT_SYSV, "sysv"},
+ {PRINT_AIX, "aix"},
+ {PRINT_HPUX, "hpux"},
+ {PRINT_BSD, "bsd"},
+ {PRINT_QNX, "qnx"},
+ {PRINT_PLP, "plp"},
+ {PRINT_LPRNG, "lprng"},
+ {PRINT_SOFTQ, "softq"},
+ {PRINT_CUPS, "cups"},
+ {-1, NULL}
};
/* Types of machine we can announce as. */
@@ -542,17 +550,27 @@ static struct enum_list enum_printing[] =
#define ANNOUNCE_AS_WFW 3
#define ANNOUNCE_AS_NT_WORKSTATION 4
-static struct enum_list enum_announce_as[] =
- { {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} };
+static struct enum_list enum_announce_as[] = {
+ {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}
+};
-static struct enum_list enum_case[] =
- { {CASE_LOWER, "lower"}, {CASE_UPPER, "upper"}, {-1, NULL} };
+static struct enum_list enum_case[] = {
+ {CASE_LOWER, "lower"},
+ {CASE_UPPER, "upper"},
+ {-1, NULL}
+};
-static struct enum_list enum_bool_auto[] =
- { {False, "False"}, {True, "True"}, {Auto, "Auto"}, {-1, NULL} };
+static struct enum_list enum_bool_auto[] = {
+ {False, "False"},
+ {True, "True"},
+ {Auto, "Auto"},
+ {-1, NULL}
+};
/*
Do you want session setups at user level security with a invalid
@@ -575,15 +593,20 @@ static struct enum_list enum_bool_auto[] =
level security.
*/
-static struct enum_list enum_map_to_guest[] =
- { {NEVER_MAP_TO_GUEST, "Never"}, {MAP_TO_GUEST_ON_BAD_USER,
- "Bad User"},
- {MAP_TO_GUEST_ON_BAD_PASSWORD, "Bad Password"}, {-1, NULL} };
+static struct enum_list enum_map_to_guest[] = {
+ {NEVER_MAP_TO_GUEST, "Never"},
+ {MAP_TO_GUEST_ON_BAD_USER, "Bad User"},
+ {MAP_TO_GUEST_ON_BAD_PASSWORD, "Bad Password"},
+ {-1, NULL}
+};
#ifdef WITH_SSL
-static struct enum_list enum_ssl_version[] =
- { {SMB_SSL_V2, "ssl2"}, {SMB_SSL_V3, "ssl3"},
-{SMB_SSL_V23, "ssl2or3"}, {SMB_SSL_TLS1, "tls1"}, {-1, NULL}
+static struct enum_list enum_ssl_version[] = {
+ {SMB_SSL_V2, "ssl2"},
+ {SMB_SSL_V3, "ssl3"},
+ {SMB_SSL_V23, "ssl2or3"},
+ {SMB_SSL_TLS1, "tls1"},
+ {-1, NULL}
};
#endif
@@ -591,182 +614,106 @@ static struct enum_list enum_ssl_version[] =
static struct parm_struct parm_table[] = {
{"Base Options", P_SEP, P_SEPARATOR},
- {"coding system", P_STRING, P_GLOBAL, &Globals.szCodingSystem,
- handle_coding_system, NULL, 0},
- {"client code page", P_INTEGER, P_GLOBAL, &Globals.client_code_page,
- handle_client_code_page, NULL, 0},
- {"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL,
- FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_DOS_STRING},
- {"path", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL,
- FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_DOS_STRING},
- {"directory", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL,
- FLAG_DOS_STRING},
- {"workgroup", P_USTRING, P_GLOBAL, &Globals.szWorkGroup, NULL, NULL,
- FLAG_BASIC | FLAG_DOS_STRING},
- {"netbios name", P_UGSTRING, P_GLOBAL, global_myname,
- handle_netbios_name, NULL, FLAG_BASIC | FLAG_DOS_STRING},
- {"netbios aliases", P_STRING, P_GLOBAL, &Globals.szNetbiosAliases,
- NULL, NULL, FLAG_DOS_STRING},
- {"netbios scope", P_UGSTRING, P_GLOBAL, global_scope, NULL, NULL,
- FLAG_DOS_STRING},
- {"server string", P_STRING, P_GLOBAL, &Globals.szServerString, NULL,
- NULL, FLAG_BASIC | FLAG_DOS_STRING},
- {"interfaces", P_STRING, P_GLOBAL, &Globals.szInterfaces, NULL, NULL,
- FLAG_BASIC},
- {"bind interfaces only", P_BOOL, P_GLOBAL,
- &Globals.bBindInterfacesOnly, NULL, NULL, 0},
+ {"coding system", P_STRING, P_GLOBAL, &Globals.szCodingSystem, handle_coding_system, NULL, 0},
+ {"client code page", P_INTEGER, P_GLOBAL, &Globals.client_code_page, handle_client_code_page, NULL, 0},
+ {"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_DOS_STRING},
+ {"path", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_DOS_STRING},
+ {"directory", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_DOS_STRING},
+ {"workgroup", P_USTRING, P_GLOBAL, &Globals.szWorkGroup, NULL, NULL, FLAG_BASIC | FLAG_DOS_STRING},
+ {"netbios name", P_UGSTRING, P_GLOBAL, global_myname, handle_netbios_name, NULL, FLAG_BASIC | FLAG_DOS_STRING},
+ {"netbios aliases", P_STRING, P_GLOBAL, &Globals.szNetbiosAliases, NULL, NULL, FLAG_DOS_STRING},
+ {"netbios scope", P_UGSTRING, P_GLOBAL, global_scope, NULL, NULL, FLAG_DOS_STRING},
+ {"server string", P_STRING, P_GLOBAL, &Globals.szServerString, NULL, NULL, FLAG_BASIC | FLAG_DOS_STRING},
+ {"interfaces", P_STRING, P_GLOBAL, &Globals.szInterfaces, NULL, NULL, FLAG_BASIC},
+ {"bind interfaces only", P_BOOL, P_GLOBAL, &Globals.bBindInterfacesOnly, NULL, NULL, 0},
{"Security Options", P_SEP, P_SEPARATOR},
- {"security", P_ENUM, P_GLOBAL, &Globals.security, NULL,
- enum_security, FLAG_BASIC},
- {"encrypt passwords", P_BOOL, P_GLOBAL, &Globals.bEncryptPasswords,
- NULL, NULL, FLAG_BASIC},
- {"update encrypted", P_BOOL, P_GLOBAL, &Globals.bUpdateEncrypt, NULL,
- NULL, FLAG_BASIC},
- {"allow trusted domains", P_BOOL, P_GLOBAL,
- &Globals.bAllowTrustedDomains, NULL, NULL, 0},
- {"alternate permissions", P_BOOL, P_LOCAL, &sDefault.bAlternatePerm,
- NULL, NULL, FLAG_GLOBAL | FLAG_DEPRECATED},
- {"hosts equiv", P_STRING, P_GLOBAL, &Globals.szHostsEquiv, NULL, NULL,
- 0},
- {"min passwd length", P_INTEGER, P_GLOBAL, &Globals.min_passwd_length,
- NULL, NULL, 0},
- {"min password length", P_INTEGER, P_GLOBAL,
- &Globals.min_passwd_length, NULL, NULL, 0},
- {"map to guest", P_ENUM, P_GLOBAL, &Globals.map_to_guest, NULL,
- enum_map_to_guest, 0},
- {"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL,
- NULL, 0},
- {"password server", P_STRING, P_GLOBAL, &Globals.szPasswordServer,
- NULL, NULL, 0},
- {"smb passwd file", P_STRING, P_GLOBAL, &Globals.szSMBPasswdFile,
- NULL, NULL, 0},
- {"root directory", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL,
- 0},
+ {"security", P_ENUM, P_GLOBAL, &Globals.security, NULL, enum_security, FLAG_BASIC},
+ {"encrypt passwords", P_BOOL, P_GLOBAL, &Globals.bEncryptPasswords, NULL, NULL, FLAG_BASIC},
+ {"update encrypted", P_BOOL, P_GLOBAL, &Globals.bUpdateEncrypt, NULL, NULL, FLAG_BASIC},
+ {"allow trusted domains", P_BOOL, P_GLOBAL, &Globals.bAllowTrustedDomains, NULL, NULL, 0},
+ {"alternate permissions", P_BOOL, P_LOCAL, &sDefault.bAlternatePerm, NULL, NULL, FLAG_GLOBAL | FLAG_DEPRECATED},
+ {"hosts equiv", P_STRING, P_GLOBAL, &Globals.szHostsEquiv, NULL, NULL, 0},
+ {"min passwd length", P_INTEGER, P_GLOBAL, &Globals.min_passwd_length, NULL, NULL, 0},
+ {"min password length", P_INTEGER, P_GLOBAL, &Globals.min_passwd_length, NULL, NULL, 0},
+ {"map to guest", P_ENUM, P_GLOBAL, &Globals.map_to_guest, NULL, enum_map_to_guest, 0},
+ {"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL, NULL, 0},
+ {"password server", P_STRING, P_GLOBAL, &Globals.szPasswordServer, NULL, NULL, 0},
+ {"smb passwd file", P_STRING, P_GLOBAL, &Globals.szSMBPasswdFile, NULL, NULL, 0},
+ {"root directory", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, 0},
{"root dir", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, 0},
{"root", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, 0},
- {"passwd program", P_STRING, P_GLOBAL,
- &Globals.szPasswdProgram, NULL, NULL, 0},
- {"passwd chat", P_STRING, P_GLOBAL, &Globals.szPasswdChat, NULL, NULL,
- 0},
- {"passwd chat debug", P_BOOL, P_GLOBAL, &Globals.bPasswdChatDebug,
- NULL, NULL, 0},
- {"username map", P_STRING, P_GLOBAL, &Globals.szUsernameMap, NULL,
- NULL, 0},
- {"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL,
- NULL, 0},
- {"username level", P_INTEGER, P_GLOBAL, &Globals.unamelevel, NULL,
- NULL, 0},
- {"unix password sync", P_BOOL, P_GLOBAL, &Globals.bUnixPasswdSync,
- NULL, NULL, 0},
- {"restrict anonymous", P_BOOL, P_GLOBAL, &Globals.bRestrictAnonymous,
- NULL, NULL, 0},
+ {"passwd program", P_STRING, P_GLOBAL, &Globals.szPasswdProgram, NULL, NULL, 0},
+ {"passwd chat", P_STRING, P_GLOBAL, &Globals.szPasswdChat, NULL, NULL, 0},
+ {"passwd chat debug", P_BOOL, P_GLOBAL, &Globals.bPasswdChatDebug, NULL, NULL, 0},
+ {"username map", P_STRING, P_GLOBAL, &Globals.szUsernameMap, NULL, NULL, 0},
+ {"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL, NULL, 0},
+ {"username level", P_INTEGER, P_GLOBAL, &Globals.unamelevel, NULL, NULL, 0},
+ {"unix password sync", P_BOOL, P_GLOBAL, &Globals.bUnixPasswdSync, NULL, NULL, 0},
+ {"restrict anonymous", P_BOOL, P_GLOBAL, &Globals.bRestrictAnonymous, NULL, NULL, 0},
{"use rhosts", P_BOOL, P_GLOBAL, &Globals.bUseRhosts, NULL, NULL, 0},
- {"username", P_STRING, P_LOCAL, &sDefault.szUsername, NULL,
- NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"username", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
{"user", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, 0},
{"users", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, 0},
- {"guest account", P_STRING, P_LOCAL, &sDefault.szGuestaccount,
- NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_GLOBAL},
- {"invalid users", P_STRING, P_LOCAL, &sDefault.szInvalidUsers, NULL,
- NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"valid users", P_STRING, P_LOCAL, &sDefault.szValidUsers, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"admin users", P_STRING, P_LOCAL, &sDefault.szAdminUsers, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"read list", P_STRING, P_LOCAL, &sDefault.readlist, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"write list", P_STRING, P_LOCAL, &sDefault.writelist, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"force user", P_STRING, P_LOCAL, &sDefault.force_user, NULL, NULL,
- FLAG_SHARE},
- {"force group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL,
- FLAG_SHARE},
+ {"guest account", P_STRING, P_LOCAL, &sDefault.szGuestaccount, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT | FLAG_GLOBAL},
+ {"invalid users", P_STRING, P_LOCAL, &sDefault.szInvalidUsers, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"valid users", P_STRING, P_LOCAL, &sDefault.szValidUsers, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"admin users", P_STRING, P_LOCAL, &sDefault.szAdminUsers, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"read list", P_STRING, P_LOCAL, &sDefault.readlist, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"write list", P_STRING, P_LOCAL, &sDefault.writelist, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"force user", P_STRING, P_LOCAL, &sDefault.force_user, NULL, NULL, FLAG_SHARE},
+ {"force group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, FLAG_SHARE},
{"group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, 0},
- {"read only", P_BOOL, P_LOCAL, &sDefault.bRead_only, NULL,
- NULL, FLAG_BASIC | FLAG_SHARE},
+ {"read only", P_BOOL, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_BASIC | FLAG_SHARE},
{"write ok", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, 0},
{"writeable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, 0},
{"writable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, 0},
- {"create mask", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask,
- NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL,
- FLAG_GLOBAL},
- {"force create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_force_mode,
- NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"security mask", P_OCTAL, P_LOCAL, &sDefault.iSecurity_mask, NULL,
- NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"force security mode", P_OCTAL, P_LOCAL,
- &sDefault.iSecurity_force_mode, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"directory mask", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL,
- FLAG_GLOBAL},
- {"force directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_force_mode,
- NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"directory security mask", P_OCTAL, P_LOCAL,
- &sDefault.iDir_Security_mask, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
- {"force directory security mode", P_OCTAL, P_LOCAL,
- &sDefault.iDir_Security_force_mode, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE},
- {"inherit permissions", P_BOOL, P_LOCAL, &sDefault.bInheritPerms,
- NULL, NULL, FLAG_SHARE},
- {"guest only", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL,
- FLAG_SHARE},
+ {"create mask", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_GLOBAL},
+ {"force create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_force_mode, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"security mask", P_OCTAL, P_LOCAL, &sDefault.iSecurity_mask, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"force security mode", P_OCTAL, P_LOCAL, &sDefault.iSecurity_force_mode, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"directory mask", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_GLOBAL},
+ {"force directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_force_mode, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"directory security mask", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_mask, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"force directory security mode", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_force_mode, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE},
+ {"inherit permissions", P_BOOL, P_LOCAL, &sDefault.bInheritPerms, NULL, NULL, FLAG_SHARE},
+ {"guest only", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, FLAG_SHARE},
{"only guest", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, 0},
-
- {"guest ok", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL,
- FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
+
+ {"guest ok", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
{"public", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, 0},
- {"only user", P_BOOL, P_LOCAL, &sDefault.bOnlyUser, NULL,
- NULL, FLAG_SHARE},
- {"hosts allow", P_STRING, P_LOCAL, &sDefault.szHostsallow, NULL, NULL,
- FLAG_GLOBAL | FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
- {"allow hosts", P_STRING, P_LOCAL, &sDefault.szHostsallow, NULL, NULL,
- 0},
- {"hosts deny", P_STRING, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL,
- FLAG_GLOBAL | FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
- {"deny hosts", P_STRING, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL,
- 0},
+ {"only user", P_BOOL, P_LOCAL, &sDefault.bOnlyUser, NULL, NULL, FLAG_SHARE},
+ {"hosts allow", P_STRING, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
+ {"allow hosts", P_STRING, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, 0},
+ {"hosts deny", P_STRING, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
+ {"deny hosts", P_STRING, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, 0},
#ifdef WITH_SSL
{"Secure Socket Layer Options", P_SEP, P_SEPARATOR},
{"ssl", P_BOOL, P_GLOBAL, &Globals.sslEnabled, NULL, NULL, 0},
- {"ssl hosts", P_STRING, P_GLOBAL, &Globals.sslHostsRequire,
- NULL, NULL, 0},
- {"ssl hosts resign", P_STRING, P_GLOBAL, &Globals.sslHostsResign,
- NULL, NULL, 0},
- {"ssl CA certDir", P_STRING, P_GLOBAL, &Globals.sslCaCertDir, NULL,
- NULL, 0},
- {"ssl CA certFile", P_STRING, P_GLOBAL, &Globals.sslCaCertFile, NULL,
- NULL, 0},
- {"ssl server cert", P_STRING, P_GLOBAL, &Globals.sslCert, NULL, NULL,
- 0},
- {"ssl server key", P_STRING, P_GLOBAL, &Globals.sslPrivKey, NULL,
- NULL, 0},
- {"ssl client cert", P_STRING, P_GLOBAL, &Globals.sslClientCert, NULL,
- NULL, 0},
- {"ssl client key", P_STRING, P_GLOBAL, &Globals.sslClientPrivKey,
- NULL, NULL, 0},
- {"ssl require clientcert", P_BOOL, P_GLOBAL,
- &Globals.sslReqClientCert, NULL, NULL, 0},
- {"ssl require servercert", P_BOOL, P_GLOBAL,
- &Globals.sslReqServerCert, NULL, NULL, 0},
- {"ssl ciphers", P_STRING, P_GLOBAL, &Globals.sslCiphers, NULL, NULL,
- 0},
- {"ssl version", P_ENUM, P_GLOBAL, &Globals.sslVersion, NULL,
- enum_ssl_version, 0},
- {"ssl compatibility", P_BOOL, P_GLOBAL, &Globals.sslCompatibility,
- NULL, NULL, 0},
+ {"ssl hosts", P_STRING, P_GLOBAL, &Globals.sslHostsRequire, NULL, NULL, 0},
+ {"ssl hosts resign", P_STRING, P_GLOBAL, &Globals.sslHostsResign, NULL, NULL, 0},
+ {"ssl CA certDir", P_STRING, P_GLOBAL, &Globals.sslCaCertDir, NULL, NULL, 0},
+ {"ssl CA certFile", P_STRING, P_GLOBAL, &Globals.sslCaCertFile, NULL, NULL, 0},
+ {"ssl server cert", P_STRING, P_GLOBAL, &Globals.sslCert, NULL, NULL, 0},
+ {"ssl server key", P_STRING, P_GLOBAL, &Globals.sslPrivKey, NULL, NULL, 0},
+ {"ssl client cert", P_STRING, P_GLOBAL, &Globals.sslClientCert, NULL, NULL, 0},
+ {"ssl client key", P_STRING, P_GLOBAL, &Globals.sslClientPrivKey, NULL, NULL, 0},
+ {"ssl require clientcert", P_BOOL, P_GLOBAL, &Globals.sslReqClientCert, NULL, NULL, 0},
+ {"ssl require servercert", P_BOOL, P_GLOBAL, &Globals.sslReqServerCert, NULL, NULL, 0},
+ {"ssl ciphers", P_STRING, P_GLOBAL, &Globals.sslCiphers, NULL, NULL, 0},
+ {"ssl version", P_ENUM, P_GLOBAL, &Globals.sslVersion, NULL, enum_ssl_version, 0},
+ {"ssl compatibility", P_BOOL, P_GLOBAL, &Globals.sslCompatibility, NULL, NULL, 0},
#endif /* WITH_SSL */
{"Logging Options", P_SEP, P_SEPARATOR},
@@ -776,431 +723,252 @@ static struct parm_struct parm_table[] = {
{"syslog only", P_BOOL, P_GLOBAL, &Globals.bSyslogOnly, NULL, NULL, 0},
{"log file", P_STRING, P_GLOBAL, &Globals.szLogFile, NULL, NULL, 0},
- {"max log size", P_INTEGER, P_GLOBAL, &Globals.max_log_size,
- NULL, NULL, 0},
- {"timestamp logs", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL,
- NULL, 0},
- {"debug timestamp", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL,
- NULL, 0},
- {"debug hires timestamp", P_BOOL, P_GLOBAL,
- &Globals.bDebugHiresTimestamp, NULL, NULL, 0},
+ {"max log size", P_INTEGER, P_GLOBAL, &Globals.max_log_size, NULL, NULL, 0},
+ {"timestamp logs", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, 0},
+ {"debug timestamp", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, 0},
+ {"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, 0},
{"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, 0},
{"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, 0},
- {"status", P_BOOL, P_LOCAL, &sDefault.status, NULL, NULL,
- FLAG_GLOBAL | FLAG_SHARE | FLAG_PRINT},
+ {"status", P_BOOL, P_LOCAL, &sDefault.status, NULL, NULL, FLAG_GLOBAL | FLAG_SHARE | FLAG_PRINT},
{"Protocol Options", P_SEP, P_SEPARATOR},
- {"protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL,
- enum_protocol, 0},
+ {"protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, 0},
{"read bmpx", P_BOOL, P_GLOBAL, &Globals.bReadbmpx, NULL, NULL, 0},
{"read raw", P_BOOL, P_GLOBAL, &Globals.bReadRaw, NULL, NULL, 0},
{"write raw", P_BOOL, P_GLOBAL, &Globals.bWriteRaw, NULL, NULL, 0},
- {"nt smb support", P_BOOL, P_GLOBAL, &Globals.bNTSmbSupport,
- NULL, NULL, 0},
- {"nt pipe support", P_BOOL, P_GLOBAL, &Globals.bNTPipeSupport, NULL,
- NULL, 0},
- {"nt acl support", P_BOOL, P_GLOBAL, &Globals.bNTAclSupport, NULL,
- NULL, 0},
- {"announce version", P_STRING, P_GLOBAL, &Globals.szAnnounceVersion,
- NULL, NULL, 0},
- {"announce as", P_ENUM, P_GLOBAL, &Globals.announce_as, NULL,
- enum_announce_as, 0},
+ {"nt smb support", P_BOOL, P_GLOBAL, &Globals.bNTSmbSupport, NULL, NULL, 0},
+ {"nt pipe support", P_BOOL, P_GLOBAL, &Globals.bNTPipeSupport, NULL, NULL, 0},
+ {"nt acl support", P_BOOL, P_GLOBAL, &Globals.bNTAclSupport, NULL, NULL, 0},
+ {"announce version", P_STRING, P_GLOBAL, &Globals.szAnnounceVersion, NULL, NULL, 0},
+ {"announce as", P_ENUM, P_GLOBAL, &Globals.announce_as, NULL, enum_announce_as, 0},
{"max mux", P_INTEGER, P_GLOBAL, &Globals.max_mux, NULL, NULL, 0},
{"max xmit", P_INTEGER, P_GLOBAL, &Globals.max_xmit, NULL, NULL, 0},
- {"name resolve order", P_STRING, P_GLOBAL,
- &Globals.szNameResolveOrder, NULL, NULL, 0},
- {"max packet", P_INTEGER, P_GLOBAL, &Globals.max_packet, NULL, NULL,
- 0},
- {"packet size", P_INTEGER, P_GLOBAL, &Globals.max_packet, NULL, NULL,
- 0},
- {"max ttl", P_INTEGER, P_GLOBAL, &Globals.max_ttl, NULL, NULL, 0},
-
- {"max wins ttl", P_INTEGER, P_GLOBAL, &Globals.max_wins_ttl,
- NULL, NULL, 0},
- {"min wins ttl", P_INTEGER, P_GLOBAL, &Globals.min_wins_ttl, NULL,
- NULL, 0},
- {"time server", P_BOOL, P_GLOBAL, &Globals.bTimeServer, NULL, NULL,
- 0},
+ {"name resolve order", P_STRING, P_GLOBAL, &Globals.szNameResolveOrder, NULL, NULL, 0},
+ {"max packet", P_INTEGER, P_GLOBAL, &Globals.max_packet, NULL, NULL, 0},
+ {"packet size", P_INTEGER, P_GLOBAL, &Globals.max_packet, NULL, NULL, 0},
+ {"max ttl", P_INTEGER, P_GLOBAL, &Globals.max_ttl, NULL, NULL, 0},
+ {"max wins ttl", P_INTEGER, P_GLOBAL, &Globals.max_wins_ttl, NULL, NULL, 0},
+ {"min wins ttl", P_INTEGER, P_GLOBAL, &Globals.min_wins_ttl, NULL, NULL, 0},
+ {"time server", P_BOOL, P_GLOBAL, &Globals.bTimeServer, NULL, NULL, 0},
{"Tuning Options", P_SEP, P_SEPARATOR},
- {"change notify timeout", P_INTEGER, P_GLOBAL,
- &Globals.change_notify_timeout, NULL, NULL, 0},
+ {"change notify timeout", P_INTEGER, P_GLOBAL, &Globals.change_notify_timeout, NULL, NULL, 0},
{"deadtime", P_INTEGER, P_GLOBAL, &Globals.deadtime, NULL, NULL, 0},
{"getwd cache", P_BOOL, P_GLOBAL, &use_getwd_cache, NULL, NULL, 0},
{"keepalive", P_INTEGER, P_GLOBAL, &keepalive, NULL, NULL, 0},
- {"lpq cache time", P_INTEGER, P_GLOBAL, &Globals.lpqcachetime,
- NULL, NULL, 0},
- {"max connections", P_INTEGER, P_LOCAL, &sDefault.iMaxConnections,
- NULL, NULL, FLAG_SHARE},
- {"max disk size", P_INTEGER, P_GLOBAL, &Globals.maxdisksize, NULL,
- NULL, 0},
- {"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL,
- NULL, 0},
- {"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace,
- NULL, NULL, FLAG_PRINT},
- {"read prediction", P_BOOL, P_GLOBAL, &Globals.bReadPrediction, NULL,
- NULL, 0},
+ {"lpq cache time", P_INTEGER, P_GLOBAL, &Globals.lpqcachetime, NULL, NULL, 0},
+ {"max connections", P_INTEGER, P_LOCAL, &sDefault.iMaxConnections, NULL, NULL, FLAG_SHARE},
+ {"max disk size", P_INTEGER, P_GLOBAL, &Globals.maxdisksize, NULL, NULL, 0},
+ {"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL, NULL, 0},
+ {"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace, NULL, NULL, FLAG_PRINT},
{"read size", P_INTEGER, P_GLOBAL, &Globals.ReadSize, NULL, NULL, 0},
- {"shared mem size", P_INTEGER, P_GLOBAL, &Globals.shmem_size,
- NULL, NULL, 0},
- {"socket options", P_GSTRING, P_GLOBAL, user_socket_options, NULL,
- NULL, 0},
- {"stat cache size", P_INTEGER, P_GLOBAL, &Globals.stat_cache_size,
- NULL, NULL, 0},
- {"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL,
- FLAG_SHARE},
- {"sync always", P_BOOL, P_LOCAL, &sDefault.bSyncAlways, NULL, NULL,
- FLAG_SHARE},
- {"write cache size", P_INTEGER, P_LOCAL, &sDefault.iWriteCacheSize,
- NULL, NULL, FLAG_SHARE},
+ {"shared mem size", P_INTEGER, P_GLOBAL, &Globals.shmem_size, NULL, NULL, 0},
+ {"socket options", P_GSTRING, P_GLOBAL, user_socket_options, NULL, NULL, 0},
+ {"stat cache size", P_INTEGER, P_GLOBAL, &Globals.stat_cache_size, NULL, NULL, 0},
+ {"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL, FLAG_SHARE},
+ {"sync always", P_BOOL, P_LOCAL, &sDefault.bSyncAlways, NULL, NULL, FLAG_SHARE},
+ {"write cache size", P_INTEGER, P_LOCAL, &sDefault.iWriteCacheSize, NULL, NULL, FLAG_SHARE},
{"Printing Options", P_SEP, P_SEPARATOR},
- {"load printers", P_BOOL, P_GLOBAL, &Globals.bLoadPrinters,
- NULL, NULL, FLAG_PRINT},
- {"printcap name", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL,
- NULL, FLAG_PRINT},
- {"printcap", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL,
- 0},
- {"printer driver file", P_STRING, P_GLOBAL, &Globals.szDriverFile,
- NULL, NULL, FLAG_PRINT},
- {"printable", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL,
- FLAG_PRINT},
+ {"load printers", P_BOOL, P_GLOBAL, &Globals.bLoadPrinters, NULL, NULL, FLAG_PRINT},
+ {"printcap name", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, FLAG_PRINT},
+ {"printcap", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, 0},
+ {"printer driver file", P_STRING, P_GLOBAL, &Globals.szDriverFile, NULL, NULL, FLAG_PRINT},
+ {"printable", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_PRINT},
{"print ok", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, 0},
-
- {"postscript", P_BOOL, P_LOCAL, &sDefault.bPostscript, NULL,
- NULL, FLAG_PRINT},
- {"printing", P_ENUM, P_LOCAL, &sDefault.iPrinting, NULL,
- enum_printing, FLAG_PRINT | FLAG_GLOBAL},
- {"print command", P_STRING, P_LOCAL, &sDefault.szPrintcommand, NULL,
- NULL, FLAG_PRINT | FLAG_GLOBAL},
- {"lpq command", P_STRING, P_LOCAL, &sDefault.szLpqcommand, NULL, NULL,
- FLAG_PRINT | FLAG_GLOBAL},
- {"lprm command", P_STRING, P_LOCAL, &sDefault.szLprmcommand, NULL,
- NULL, FLAG_PRINT | FLAG_GLOBAL},
- {"lppause command", P_STRING, P_LOCAL, &sDefault.szLppausecommand,
- NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
- {"lpresume command", P_STRING, P_LOCAL, &sDefault.szLpresumecommand,
- NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
- {"queuepause command", P_STRING, P_LOCAL,
- &sDefault.szQueuepausecommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
- {"queueresume command", P_STRING, P_LOCAL,
- &sDefault.szQueueresumecommand, NULL, NULL,
- FLAG_PRINT | FLAG_GLOBAL},
-
-
- {"printer name", P_STRING, P_LOCAL, &sDefault.szPrintername,
- NULL, NULL, FLAG_PRINT},
- {"printer", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL,
- 0},
- {"printer driver", P_STRING, P_LOCAL, &sDefault.szPrinterDriver, NULL,
- NULL, FLAG_PRINT},
- {"printer driver location", P_STRING, P_LOCAL,
- &sDefault.szPrinterDriverLocation, NULL, NULL,
- FLAG_PRINT | FLAG_GLOBAL},
- {"nt forms file", P_STRING, P_GLOBAL, &Globals.szNtForms, NULL, NULL,
- FLAG_GLOBAL},
- {"nt printer driver", P_STRING, P_GLOBAL, &Globals.szNtDriverFile,
- NULL, NULL, FLAG_GLOBAL},
-
+ {"postscript", P_BOOL, P_LOCAL, &sDefault.bPostscript, NULL, NULL, FLAG_PRINT},
+ {"printing", P_ENUM, P_LOCAL, &sDefault.iPrinting, NULL, enum_printing, FLAG_PRINT | FLAG_GLOBAL},
+ {"print command", P_STRING, P_LOCAL, &sDefault.szPrintcommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"lpq command", P_STRING, P_LOCAL, &sDefault.szLpqcommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"lprm command", P_STRING, P_LOCAL, &sDefault.szLprmcommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"lppause command", P_STRING, P_LOCAL, &sDefault.szLppausecommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"lpresume command", P_STRING, P_LOCAL, &sDefault.szLpresumecommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"queuepause command", P_STRING, P_LOCAL, &sDefault.szQueuepausecommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+ {"queueresume command", P_STRING, P_LOCAL, &sDefault.szQueueresumecommand, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
+
+ {"printer name", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_PRINT},
+ {"printer", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, 0},
+ {"printer driver", P_STRING, P_LOCAL, &sDefault.szPrinterDriver, NULL, NULL, FLAG_PRINT},
+ {"printer driver location", P_STRING, P_LOCAL, &sDefault.szPrinterDriverLocation, NULL, NULL, FLAG_PRINT | FLAG_GLOBAL},
{"Filename Handling", P_SEP, P_SEPARATOR},
{"strip dot", P_BOOL, P_GLOBAL, &Globals.bStripDot, NULL, NULL, 0},
- {"character set", P_STRING, P_GLOBAL, &Globals.szCharacterSet,
- handle_character_set, NULL, 0},
- {"mangled stack", P_INTEGER, P_GLOBAL, &Globals.mangled_stack, NULL,
- NULL, 0},
- {"default case", P_ENUM, P_LOCAL, &sDefault.iDefaultCase, NULL,
- enum_case, FLAG_SHARE},
- {"case sensitive", P_BOOL, P_LOCAL, &sDefault.bCaseSensitive, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"casesignames", P_BOOL, P_LOCAL, &sDefault.bCaseSensitive, NULL,
- NULL, 0},
- {"preserve case", P_BOOL, P_LOCAL, &sDefault.bCasePreserve, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"short preserve case", P_BOOL, P_LOCAL, &sDefault.bShortCasePreserve,
- NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"mangle case", P_BOOL, P_LOCAL, &sDefault.bCaseMangle, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"mangling char", P_CHAR, P_LOCAL, &sDefault.magic_char, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"hide dot files", P_BOOL, P_LOCAL, &sDefault.bHideDotFiles, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"delete veto files", P_BOOL, P_LOCAL, &sDefault.bDeleteVetoFiles,
- NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"veto files", P_STRING, P_LOCAL, &sDefault.szVetoFiles, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
- {"hide files", P_STRING, P_LOCAL, &sDefault.szHideFiles, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
- {"veto oplock files", P_STRING, P_LOCAL, &sDefault.szVetoOplockFiles,
- NULL, NULL, FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
- {"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"mangled names", P_BOOL, P_LOCAL, &sDefault.bMangledNames, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"mangled map", P_STRING, P_LOCAL, &sDefault.szMangledMap, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
+ {"character set", P_STRING, P_GLOBAL, &Globals.szCharacterSet, handle_character_set, NULL, 0},
+ {"mangled stack", P_INTEGER, P_GLOBAL, &Globals.mangled_stack, NULL, NULL, 0},
+ {"default case", P_ENUM, P_LOCAL, &sDefault.iDefaultCase, NULL, enum_case, FLAG_SHARE},
+ {"case sensitive", P_BOOL, P_LOCAL, &sDefault.bCaseSensitive, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"casesignames", P_BOOL, P_LOCAL, &sDefault.bCaseSensitive, NULL, NULL, 0},
+ {"preserve case", P_BOOL, P_LOCAL, &sDefault.bCasePreserve, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"short preserve case", P_BOOL, P_LOCAL, &sDefault.bShortCasePreserve, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"mangle case", P_BOOL, P_LOCAL, &sDefault.bCaseMangle, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"mangling char", P_CHAR, P_LOCAL, &sDefault.magic_char, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"hide dot files", P_BOOL, P_LOCAL, &sDefault.bHideDotFiles, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"delete veto files", P_BOOL, P_LOCAL, &sDefault.bDeleteVetoFiles, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"veto files", P_STRING, P_LOCAL, &sDefault.szVetoFiles, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
+ {"hide files", P_STRING, P_LOCAL, &sDefault.szHideFiles, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
+ {"veto oplock files", P_STRING, P_LOCAL, &sDefault.szVetoOplockFiles, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL | FLAG_DOS_STRING},
+ {"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"mangled names", P_BOOL, P_LOCAL, &sDefault.bMangledNames, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"mangled map", P_STRING, P_LOCAL, &sDefault.szMangledMap, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
{"stat cache", P_BOOL, P_GLOBAL, &Globals.bStatCache, NULL, NULL, 0},
{"Domain Options", P_SEP, P_SEPARATOR},
- {"domain groups", P_STRING, P_GLOBAL, &Globals.szDomainGroups,
- NULL, NULL, 0},
- {"domain admin group", P_STRING, P_GLOBAL,
- &Globals.szDomainAdminGroup, NULL, NULL, 0},
- {"domain guest group", P_STRING, P_GLOBAL,
- &Globals.szDomainGuestGroup, NULL, NULL, 0},
- {"domain admin users", P_STRING, P_GLOBAL,
- &Globals.szDomainAdminUsers, NULL, NULL, 0},
- {"domain guest users", P_STRING, P_GLOBAL,
- &Globals.szDomainGuestUsers, NULL, NULL, 0},
+ {"domain groups", P_STRING, P_GLOBAL, &Globals.szDomainGroups, NULL, NULL, 0},
+ {"domain admin group", P_STRING, P_GLOBAL, &Globals.szDomainAdminGroup, NULL, NULL, 0},
+ {"domain guest group", P_STRING, P_GLOBAL, &Globals.szDomainGuestGroup, NULL, NULL, 0},
+ {"domain admin users", P_STRING, P_GLOBAL, &Globals.szDomainAdminUsers, NULL, NULL, 0},
+ {"domain guest users", P_STRING, P_GLOBAL, &Globals.szDomainGuestUsers, NULL, NULL, 0},
#ifdef USING_GROUPNAME_MAP
- {"groupname map", P_STRING, P_GLOBAL, &Globals.szGroupnameMap,
- NULL, NULL, 0},
+ {"groupname map", P_STRING, P_GLOBAL, &Globals.szGroupnameMap, NULL, NULL, 0},
#endif /* USING_GROUPNAME_MAP */
- {"machine password timeout", P_INTEGER, P_GLOBAL,
- &Globals.machine_password_timeout, NULL, NULL, 0},
+ {"machine password timeout", P_INTEGER, P_GLOBAL, &Globals.machine_password_timeout, NULL, NULL, 0},
{"Logon Options", P_SEP, P_SEPARATOR},
- {"add user script", P_STRING, P_GLOBAL,
- &Globals.szAddUserScript, NULL, NULL, 0},
- {"delete user script", P_STRING, P_GLOBAL, &Globals.szDelUserScript,
- NULL, NULL, 0},
- {"logon script", P_STRING, P_GLOBAL, &Globals.szLogonScript, NULL,
- NULL, FLAG_DOS_STRING},
- {"logon path", P_STRING, P_GLOBAL, &Globals.szLogonPath, NULL, NULL,
- FLAG_DOS_STRING},
- {"logon drive", P_STRING, P_GLOBAL, &Globals.szLogonDrive, NULL, NULL,
- 0},
- {"logon home", P_STRING, P_GLOBAL, &Globals.szLogonHome, NULL, NULL,
- FLAG_DOS_STRING},
- {"domain logons", P_BOOL, P_GLOBAL, &Globals.bDomainLogons, NULL,
- NULL, 0},
+ {"add user script", P_STRING, P_GLOBAL, &Globals.szAddUserScript, NULL, NULL, 0},
+ {"delete user script", P_STRING, P_GLOBAL, &Globals.szDelUserScript, NULL, NULL, 0},
+ {"logon script", P_STRING, P_GLOBAL, &Globals.szLogonScript, NULL, NULL, FLAG_DOS_STRING},
+ {"logon path", P_STRING, P_GLOBAL, &Globals.szLogonPath, NULL, NULL, FLAG_DOS_STRING},
+ {"logon drive", P_STRING, P_GLOBAL, &Globals.szLogonDrive, NULL, NULL, 0},
+ {"logon home", P_STRING, P_GLOBAL, &Globals.szLogonHome, NULL, NULL, FLAG_DOS_STRING},
+ {"domain logons", P_BOOL, P_GLOBAL, &Globals.bDomainLogons, NULL, NULL, 0},
{"Browse Options", P_SEP, P_SEPARATOR},
- {"os level", P_INTEGER, P_GLOBAL, &Globals.os_level, NULL,
- NULL, FLAG_BASIC},
- {"lm announce", P_ENUM, P_GLOBAL, &Globals.lm_announce, NULL,
- enum_bool_auto, 0},
- {"lm interval", P_INTEGER, P_GLOBAL, &Globals.lm_interval, NULL, NULL,
- 0},
- {"preferred master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster,
- NULL, enum_bool_auto, FLAG_BASIC},
- {"prefered master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster, NULL,
- enum_bool_auto, FLAG_HIDE},
- {"local master", P_BOOL, P_GLOBAL, &Globals.bLocalMaster, NULL, NULL,
- FLAG_BASIC},
- {"domain master", P_ENUM, P_GLOBAL, &Globals.bDomainMaster, NULL,
- enum_bool_auto, FLAG_BASIC},
- {"browse list", P_BOOL, P_GLOBAL, &Globals.bBrowseList, NULL, NULL,
- 0},
- {"browseable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL,
- FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
+ {"os level", P_INTEGER, P_GLOBAL, &Globals.os_level, NULL, NULL, FLAG_BASIC},
+ {"lm announce", P_ENUM, P_GLOBAL, &Globals.lm_announce, NULL, enum_bool_auto, 0},
+ {"lm interval", P_INTEGER, P_GLOBAL, &Globals.lm_interval, NULL, NULL, 0},
+ {"preferred master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster, NULL, enum_bool_auto, FLAG_BASIC},
+ {"prefered master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster, NULL, enum_bool_auto, FLAG_HIDE},
+ {"local master", P_BOOL, P_GLOBAL, &Globals.bLocalMaster, NULL, NULL, FLAG_BASIC},
+ {"domain master", P_ENUM, P_GLOBAL, &Globals.bDomainMaster, NULL, enum_bool_auto, FLAG_BASIC},
+ {"browse list", P_BOOL, P_GLOBAL, &Globals.bBrowseList, NULL, NULL, 0},
+ {"browseable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
{"browsable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, 0},
{"WINS Options", P_SEP, P_SEPARATOR},
{"dns proxy", P_BOOL, P_GLOBAL, &Globals.bDNSproxy, NULL, NULL, 0},
{"wins proxy", P_BOOL, P_GLOBAL, &Globals.bWINSproxy, NULL, NULL, 0},
- {"wins server", P_STRING, P_GLOBAL, &Globals.szWINSserver,
- NULL, NULL, FLAG_BASIC},
- {"wins support", P_BOOL, P_GLOBAL, &Globals.bWINSsupport, NULL, NULL,
- FLAG_BASIC},
+ {"wins server", P_STRING, P_GLOBAL, &Globals.szWINSserver, NULL, NULL, FLAG_BASIC},
+ {"wins support", P_BOOL, P_GLOBAL, &Globals.bWINSsupport, NULL, NULL, FLAG_BASIC},
{"wins hook", P_STRING, P_GLOBAL, &Globals.szWINSHook, NULL, NULL, 0},
{"Locking Options", P_SEP, P_SEPARATOR},
- {"blocking locks", P_BOOL, P_LOCAL, &sDefault.bBlockingLocks,
- NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"fake oplocks", P_BOOL, P_LOCAL, &sDefault.bFakeOplocks, NULL, NULL,
- FLAG_SHARE},
- {"kernel oplocks", P_BOOL, P_GLOBAL, &Globals.bKernelOplocks, NULL,
- NULL, FLAG_GLOBAL},
- {"locking", P_BOOL, P_LOCAL, &sDefault.bLocking, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
+ {"blocking locks", P_BOOL, P_LOCAL, &sDefault.bBlockingLocks, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"fake oplocks", P_BOOL, P_LOCAL, &sDefault.bFakeOplocks, NULL, NULL, FLAG_SHARE},
+ {"kernel oplocks", P_BOOL, P_GLOBAL, &Globals.bKernelOplocks, NULL, NULL, FLAG_GLOBAL},
+ {"locking", P_BOOL, P_LOCAL, &sDefault.bLocking, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
#ifdef WITH_UTMP
-
- {"utmp", P_BOOL, P_LOCAL, &sDefault.bUtmp, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
+ {"utmp", P_BOOL, P_LOCAL, &sDefault.bUtmp, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
#endif
- {"oplocks", P_BOOL, P_LOCAL, &sDefault.bOpLocks, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"level2 oplocks", P_BOOL, P_LOCAL, &sDefault.bLevel2OpLocks, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"oplock break wait time", P_INTEGER, P_GLOBAL,
- &Globals.oplock_break_wait_time, NULL, NULL, FLAG_GLOBAL},
- {"oplock contention limit", P_INTEGER, P_LOCAL,
- &sDefault.iOplockContentionLimit, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"posix locking", P_BOOL, P_LOCAL, &sDefault.bPosixLocking, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"strict locking", P_BOOL, P_LOCAL, &sDefault.bStrictLocking, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"share modes", P_BOOL, P_LOCAL, &sDefault.bShareModes, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
+ {"oplocks", P_BOOL, P_LOCAL, &sDefault.bOpLocks, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"level2 oplocks", P_BOOL, P_LOCAL, &sDefault.bLevel2OpLocks, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"oplock break wait time", P_INTEGER, P_GLOBAL, &Globals.oplock_break_wait_time, NULL, NULL, FLAG_GLOBAL},
+ {"oplock contention limit", P_INTEGER, P_LOCAL, &sDefault.iOplockContentionLimit, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"posix locking", P_BOOL, P_LOCAL, &sDefault.bPosixLocking, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"strict locking", P_BOOL, P_LOCAL, &sDefault.bStrictLocking, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"share modes", P_BOOL, P_LOCAL, &sDefault.bShareModes, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
#ifdef WITH_LDAP
{"Ldap Options", P_SEP, P_SEPARATOR},
- {"ldap server", P_STRING, P_GLOBAL, &Globals.szLdapServer,
- NULL, NULL, 0},
- {"ldap port", P_INTEGER, P_GLOBAL, &Globals.ldap_port, NULL, NULL, 0},
-
- {"ldap suffix", P_STRING, P_GLOBAL, &Globals.szLdapSuffix,
- NULL, NULL, 0},
- {"ldap filter", P_STRING, P_GLOBAL, &Globals.szLdapFilter, NULL, NULL,
- 0},
+ {"ldap server", P_STRING, P_GLOBAL, &Globals.szLdapServer, NULL, NULL, 0},
+ {"ldap port", P_INTEGER, P_GLOBAL, &Globals.ldap_port, NULL, NULL, 0},
+ {"ldap suffix", P_STRING, P_GLOBAL, &Globals.szLdapSuffix, NULL, NULL, 0},
+ {"ldap filter", P_STRING, P_GLOBAL, &Globals.szLdapFilter, NULL, NULL, 0},
{"ldap root", P_STRING, P_GLOBAL, &Globals.szLdapRoot, NULL, NULL, 0},
-
- {"ldap root passwd", P_STRING, P_GLOBAL,
- &Globals.szLdapRootPassword, NULL, NULL, 0},
+ {"ldap root passwd", P_STRING, P_GLOBAL, &Globals.szLdapRootPassword, NULL, NULL, 0},
#endif /* WITH_LDAP */
-
{"Miscellaneous Options", P_SEP, P_SEPARATOR},
{"smbrun", P_STRING, P_GLOBAL, &Globals.szSmbrun, NULL, NULL, 0},
- {"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile,
- NULL, NULL, FLAG_HIDE},
- {"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL,
- 0},
- {"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL,
- NULL, 0},
- {"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, 0},
-
- {"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir,
- NULL, NULL, 0},
+ {"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE},
+ {"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, 0},
+ {"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, 0},
+ {"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, 0},
+ {"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, 0},
#ifdef WITH_UTMP
{"utmp dir", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, 0},
-
- {"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir,
- NULL, NULL, 0},
+ {"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, 0},
#endif /* WITH_UTMP */
- {"default service", P_STRING, P_GLOBAL,
+ {"default service", P_STRING, P_GLOBAL,
&Globals.szDefaultService, NULL, NULL, 0},
- {"default", P_STRING, P_GLOBAL, &Globals.szDefaultService, NULL, NULL,
- 0},
- {"message command", P_STRING, P_GLOBAL, &Globals.szMsgCommand, NULL,
- NULL, 0},
- {"dfree command", P_STRING, P_GLOBAL, &Globals.szDfree, NULL, NULL,
- 0},
- {"valid chars", P_STRING, P_GLOBAL, &Globals.szValidChars,
- handle_valid_chars, NULL, 0},
- {"remote announce", P_STRING, P_GLOBAL, &Globals.szRemoteAnnounce,
- NULL, NULL, 0},
- {"remote browse sync", P_STRING, P_GLOBAL,
- &Globals.szRemoteBrowseSync, NULL, NULL, 0},
- {"socket address", P_STRING, P_GLOBAL, &Globals.szSocketAddress, NULL,
- NULL, 0},
- {"homedir map", P_STRING, P_GLOBAL, &Globals.szNISHomeMapName, NULL,
- NULL, 0},
- {"time offset", P_INTEGER, P_GLOBAL, &extra_time_offset, NULL, NULL,
- 0},
- {"unix realname", P_BOOL, P_GLOBAL, &Globals.bUnixRealname, NULL,
- NULL, 0},
- {"NIS homedir", P_BOOL, P_GLOBAL, &Globals.bNISHomeMap, NULL, NULL,
- 0},
+ {"default", P_STRING, P_GLOBAL, &Globals.szDefaultService, NULL, NULL, 0},
+ {"message command", P_STRING, P_GLOBAL, &Globals.szMsgCommand, NULL, NULL, 0},
+ {"dfree command", P_STRING, P_GLOBAL, &Globals.szDfree, NULL, NULL, 0},
+ {"valid chars", P_STRING, P_GLOBAL, &Globals.szValidChars, handle_valid_chars, NULL, 0},
+ {"remote announce", P_STRING, P_GLOBAL, &Globals.szRemoteAnnounce, NULL, NULL, 0},
+ {"remote browse sync", P_STRING, P_GLOBAL, &Globals.szRemoteBrowseSync, NULL, NULL, 0},
+ {"socket address", P_STRING, P_GLOBAL, &Globals.szSocketAddress, NULL, NULL, 0},
+ {"homedir map", P_STRING, P_GLOBAL, &Globals.szNISHomeMapName, NULL, NULL, 0},
+ {"time offset", P_INTEGER, P_GLOBAL, &extra_time_offset, NULL, NULL, 0},
+ {"unix realname", P_BOOL, P_GLOBAL, &Globals.bUnixRealname, NULL, NULL, 0},
+ {"NIS homedir", P_BOOL, P_GLOBAL, &Globals.bNISHomeMap, NULL, NULL, 0},
{"-valid", P_BOOL, P_LOCAL, &sDefault.valid, NULL, NULL, FLAG_HIDE},
- {"copy", P_STRING, P_LOCAL, &sDefault.szCopy, handle_copy,
- NULL, FLAG_HIDE},
- {"include", P_STRING, P_LOCAL, &sDefault.szInclude, handle_include,
- NULL, FLAG_HIDE},
- {"exec", P_STRING, P_LOCAL, &sDefault.szPreExec, NULL, NULL,
- FLAG_SHARE | FLAG_PRINT},
+ {"copy", P_STRING, P_LOCAL, &sDefault.szCopy, handle_copy, NULL, FLAG_HIDE},
+ {"include", P_STRING, P_LOCAL, &sDefault.szInclude, handle_include, NULL, FLAG_HIDE},
+ {"exec", P_STRING, P_LOCAL, &sDefault.szPreExec, NULL, NULL, FLAG_SHARE | FLAG_PRINT},
{"preexec", P_STRING, P_LOCAL, &sDefault.szPreExec, NULL, NULL, 0},
- {"preexec close", P_BOOL, P_LOCAL, &sDefault.bPreexecClose,
- NULL, NULL, FLAG_SHARE},
- {"postexec", P_STRING, P_LOCAL, &sDefault.szPostExec, NULL, NULL,
- FLAG_SHARE | FLAG_PRINT},
- {"root preexec", P_STRING, P_LOCAL, &sDefault.szRootPreExec, NULL,
- NULL, FLAG_SHARE | FLAG_PRINT},
- {"root preexec close", P_BOOL, P_LOCAL, &sDefault.bRootpreexecClose,
- NULL, NULL, FLAG_SHARE},
- {"root postexec", P_STRING, P_LOCAL, &sDefault.szRootPostExec, NULL,
- NULL, FLAG_SHARE | FLAG_PRINT},
- {"available", P_BOOL, P_LOCAL, &sDefault.bAvailable, NULL, NULL,
- FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
- {"volume", P_STRING, P_LOCAL, &sDefault.volume, NULL, NULL,
- FLAG_SHARE},
- {"fstype", P_STRING, P_LOCAL, &sDefault.fstype, NULL, NULL,
- FLAG_SHARE},
- {"set directory", P_BOOLREV, P_LOCAL, &sDefault.bNo_set_dir, NULL,
- NULL, FLAG_SHARE},
- {"source environment", P_STRING, P_GLOBAL, &Globals.szSourceEnv,
- handle_source_env, NULL, 0},
- {"wide links", P_BOOL, P_LOCAL, &sDefault.bWidelinks, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"follow symlinks", P_BOOL, P_LOCAL, &sDefault.bSymlinks, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
- {"dont descend", P_STRING, P_LOCAL, &sDefault.szDontdescend, NULL,
- NULL, FLAG_SHARE},
- {"magic script", P_STRING, P_LOCAL, &sDefault.szMagicScript, NULL,
- NULL, FLAG_SHARE},
- {"magic output", P_STRING, P_LOCAL, &sDefault.szMagicOutput, NULL,
- NULL, FLAG_SHARE},
- {"delete readonly", P_BOOL, P_LOCAL, &sDefault.bDeleteReadonly, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"dos filetimes", P_BOOL, P_LOCAL, &sDefault.bDosFiletimes, NULL,
- NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"dos filetime resolution", P_BOOL, P_LOCAL,
- &sDefault.bDosFiletimeResolution, NULL, NULL,
- FLAG_SHARE | FLAG_GLOBAL},
-
-
- {"fake directory create times", P_BOOL, P_LOCAL,
- &sDefault.bFakeDirCreateTimes, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
- {"panic action", P_STRING, P_GLOBAL, &Globals.szPanicAction, NULL,
- NULL, 0},
+ {"preexec close", P_BOOL, P_LOCAL, &sDefault.bPreexecClose, NULL, NULL, FLAG_SHARE},
+ {"postexec", P_STRING, P_LOCAL, &sDefault.szPostExec, NULL, NULL, FLAG_SHARE | FLAG_PRINT},
+ {"root preexec", P_STRING, P_LOCAL, &sDefault.szRootPreExec, NULL, NULL, FLAG_SHARE | FLAG_PRINT},
+ {"root preexec close", P_BOOL, P_LOCAL, &sDefault.bRootpreexecClose, NULL, NULL, FLAG_SHARE},
+ {"root postexec", P_STRING, P_LOCAL, &sDefault.szRootPostExec, NULL, NULL, FLAG_SHARE | FLAG_PRINT},
+ {"available", P_BOOL, P_LOCAL, &sDefault.bAvailable, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT},
+ {"volume", P_STRING, P_LOCAL, &sDefault.volume, NULL, NULL, FLAG_SHARE},
+ {"fstype", P_STRING, P_LOCAL, &sDefault.fstype, NULL, NULL, FLAG_SHARE},
+ {"set directory", P_BOOLREV, P_LOCAL, &sDefault.bNo_set_dir, NULL, NULL, FLAG_SHARE},
+ {"source environment", P_STRING, P_GLOBAL, &Globals.szSourceEnv, handle_source_env, NULL, 0},
+ {"wide links", P_BOOL, P_LOCAL, &sDefault.bWidelinks, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"follow symlinks", P_BOOL, P_LOCAL, &sDefault.bSymlinks, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"dont descend", P_STRING, P_LOCAL, &sDefault.szDontdescend, NULL, NULL, FLAG_SHARE},
+ {"magic script", P_STRING, P_LOCAL, &sDefault.szMagicScript, NULL, NULL, FLAG_SHARE},
+ {"magic output", P_STRING, P_LOCAL, &sDefault.szMagicOutput, NULL, NULL, FLAG_SHARE},
+ {"delete readonly", P_BOOL, P_LOCAL, &sDefault.bDeleteReadonly, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"dos filetimes", P_BOOL, P_LOCAL, &sDefault.bDosFiletimes, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"dos filetime resolution", P_BOOL, P_LOCAL, &sDefault.bDosFiletimeResolution, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+
+ {"fake directory create times", P_BOOL, P_LOCAL, &sDefault.bFakeDirCreateTimes, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+ {"panic action", P_STRING, P_GLOBAL, &Globals.szPanicAction, NULL, NULL, 0},
{"VFS options", P_SEP, P_SEPARATOR},
-
- {"vfs object", P_STRING, P_LOCAL, &sDefault.szVfsObjectFile,
- handle_vfs_object, NULL, 0},
- {"vfs options", P_STRING, P_LOCAL, &sDefault.szVfsOptions, NULL, NULL,
- 0},
+ {"vfs object", P_STRING, P_LOCAL, &sDefault.szVfsObjectFile, handle_vfs_object, NULL, 0},
+ {"vfs options", P_STRING, P_LOCAL, &sDefault.szVfsOptions, NULL, NULL, 0},
- {"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL,
- NULL, FLAG_SHARE},
- {"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL,
- FLAG_GLOBAL},
+ {"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL, NULL, FLAG_SHARE},
+ {"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL, FLAG_GLOBAL},
{"Winbind options", P_SEP, P_SEPARATOR},
-
- {"winbind uid", P_STRING, P_GLOBAL, &Globals.szWinbindUID,
- handle_winbind_id, NULL, 0},
- {"winbind gid", P_STRING, P_GLOBAL, &Globals.szWinbindGID,
- handle_winbind_id, NULL, 0},
- {"template homedir", P_STRING, P_GLOBAL, &Globals.szTemplateHomedir,
- NULL, NULL, 0},
- {"template shell", P_STRING, P_GLOBAL, &Globals.szTemplateShell, NULL,
- NULL, 0},
- {"winbind separator", P_STRING, P_GLOBAL, &Globals.szWinbindSeparator,
- NULL, NULL, 0},
- {"winbind cache time", P_INTEGER, P_GLOBAL,
- &Globals.winbind_cache_time, NULL, NULL, 0},
+ {"winbind uid", P_STRING, P_GLOBAL, &Globals.szWinbindUID, handle_winbind_id, NULL, 0},
+ {"winbind gid", P_STRING, P_GLOBAL, &Globals.szWinbindGID, handle_winbind_id, NULL, 0},
+ {"template homedir", P_STRING, P_GLOBAL, &Globals.szTemplateHomedir, NULL, NULL, 0},
+ {"template shell", P_STRING, P_GLOBAL, &Globals.szTemplateShell, NULL, NULL, 0},
+ {"winbind separator", P_STRING, P_GLOBAL, &Globals.szWinbindSeparator, NULL, NULL, 0},
+ {"winbind cache time", P_INTEGER, P_GLOBAL, &Globals.winbind_cache_time, NULL, NULL, 0},
{NULL, P_BOOL, P_NONE, NULL, NULL, NULL, 0}
};
@@ -1245,8 +1013,6 @@ static void init_globals(void)
string_set(&Globals.szPasswdProgram, PASSWD_PROGRAM);
string_set(&Globals.szPrintcapname, PRINTCAP_NAME);
string_set(&Globals.szDriverFile, DRIVERFILE);
- string_set(&Globals.szNtForms, FORMSFILE);
- string_set(&Globals.szNtDriverFile, NTDRIVERSDIR);
string_set(&Globals.szLockDir, LOCKDIR);
string_set(&Globals.szRootdir, "/");
#ifdef WITH_UTMP
@@ -1597,8 +1363,6 @@ FN_GLOBAL_STRING(lp_domain_admin_group, &Globals.szDomainAdminGroup)
FN_GLOBAL_STRING(lp_domain_guest_group, &Globals.szDomainGuestGroup)
FN_GLOBAL_STRING(lp_domain_admin_users, &Globals.szDomainAdminUsers)
FN_GLOBAL_STRING(lp_domain_guest_users, &Globals.szDomainGuestUsers)
-FN_GLOBAL_STRING(lp_nt_forms, &Globals.szNtForms)
-FN_GLOBAL_STRING(lp_nt_drivers_file, &Globals.szNtDriverFile)
FN_GLOBAL_STRING(lp_winbind_uid, &Globals.szWinbindUID)
FN_GLOBAL_STRING(lp_winbind_gid, &Globals.szWinbindGID)
FN_GLOBAL_STRING(lp_template_homedir, &Globals.szTemplateHomedir)
diff --git a/source3/passdb/smbpass.c b/source3/passdb/smbpass.c
index 1579a5e00d..ec1a984b76 100644
--- a/source3/passdb/smbpass.c
+++ b/source3/passdb/smbpass.c
@@ -236,7 +236,9 @@ static struct smb_passwd *getsmbfilepwent(void *vp)
* Check if the string is terminated with a newline - if not
* then we must keep reading and discard until we get one.
*/
- linebuf_len = strlen(linebuf);
+ if ((linebuf_len = strlen(linebuf)) == 0)
+ continue;
+
if (linebuf[linebuf_len - 1] != '\n') {
c = '\0';
while (!ferror(fp) && !feof(fp)) {
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 023f4ce9d1..de3b9ed6c5 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -362,7 +362,9 @@ static uint32 get_a_printer_driver_3_default(NT_PRINTER_DRIVER_INFO_LEVEL_3 **in
fstrcpy(info.name, lp_printerdriver(snum));
fstrcpy(info.defaultdatatype, "RAW");
- info.dependentfiles=(fstring *)malloc(sizeof(fstring));
+ if ((info.dependentfiles=(char *)malloc(sizeof(fstring))) == NULL)
+ return ERROR_NOT_ENOUGH_MEMORY;
+
fstrcpy(info.dependentfiles[0], "");
*info_ptr = memdup(&info, sizeof(info));
@@ -407,15 +409,22 @@ static uint32 get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr,
while (len < dbuf.dsize) {
driver.dependentfiles = (fstring *)Realloc(driver.dependentfiles,
sizeof(fstring)*(i+2));
+ if (driver.dependentfiles == NULL)
+ break;
+
len += tdb_unpack(dbuf.dptr+len, dbuf.dsize-len, "f",
- driver.dependentfiles[i]);
+ &driver.dependentfiles[i]);
i++;
}
- fstrcpy(driver.dependentfiles[i], "");
+ if (driver.dependentfiles != NULL)
+ fstrcpy(driver.dependentfiles[i], "");
safe_free(dbuf.dptr);
if (len != dbuf.dsize) {
+ if (driver.dependentfiles != NULL)
+ safe_free(driver.dependentfiles);
+
return get_a_printer_driver_3_default(info_ptr, in_prt, in_arch);
}
@@ -1155,6 +1164,8 @@ uint32 get_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level, fstring s
if (success == 0) {
dump_a_printer(*printer, level);
*pp_printer = printer;
+ } else {
+ safe_free(printer);
}
break;
}
@@ -1274,8 +1285,7 @@ uint32 free_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32 level)
if (driver.info_3 != NULL)
{
info3=driver.info_3;
- if (info3->dependentfiles)
- free(info3->dependentfiles);
+ safe_free(info3->dependentfiles);
safe_free(info3);
ZERO_STRUCTP(info3);
success=0;
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 424e1f5e95..f181585c84 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -3862,6 +3862,7 @@ static uint32 modify_driver_heirarchy(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint
pstring path_old;
pstring path_new;
pstring short_archi;
+
/* find_service is an smbd-specific function call */
int snum = find_service("print$");
char *model = NULL;
@@ -3886,10 +3887,11 @@ static uint32 modify_driver_heirarchy(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint
(unsigned int)sys_getpid());
slprintf(path_new, sizeof(path_new)-1, "%s/%s/%s", lp_pathname(snum), short_archi, model);
- DEBUG(10,("_spoolss_addprinterdriver: old_path=%s, new_path=%s\n",
+ DEBUG(10,("modify_driver_heirarchy: old_path=%s, new_path=%s\n",
path_old, path_new ));
if (dos_rename(path_old, path_new) == -1) {
- DEBUG(0,("modify_driver_heirarchy: rename failed (%s)\n", strerror(errno) ));
+ DEBUG(0,("modify_driver_heirarchy: rename from %s to %s failed (%s)\n",
+ path_old, path_new, strerror(errno) ));
/* We need to clean up here.... - how ? */
return ERROR_ACCESS_DENIED; /* We need a generic mapping from NT errors here... */
}
diff --git a/source3/smbd/unix_acls.c b/source3/smbd/unix_acls.c
index 08dfbc0006..40bb281c74 100644
--- a/source3/smbd/unix_acls.c
+++ b/source3/smbd/unix_acls.c
@@ -338,7 +338,7 @@ size_t get_nt_acl(files_struct *fsp, SEC_DESC **ppdesc)
SEC_ACE ace_list[6];
DOM_SID owner_sid;
DOM_SID group_sid;
- size_t sec_desc_size;
+ size_t sd_size;
SEC_ACL *psa = NULL;
SEC_ACCESS owner_access;
int owner_acl_type;
@@ -429,16 +429,16 @@ size_t get_nt_acl(files_struct *fsp, SEC_DESC **ppdesc)
}
}
- *ppdesc = make_standard_sec_desc( &owner_sid, &group_sid, psa, &sec_desc_size);
+ *ppdesc = make_standard_sec_desc( &owner_sid, &group_sid, psa, &sd_size);
if(!*ppdesc) {
DEBUG(0,("get_nt_acl: Unable to malloc space for security descriptor.\n"));
- sec_desc_size = 0;
+ sd_size = 0;
}
free_sec_acl(&psa);
- return sec_desc_size;
+ return sd_size;
}
/****************************************************************************