When loading the default configuration, allow the configuration file to be
[ira/wip.git] / source4 / param / loadparm.c
index d660141efc82bb5c291301de972f625e6d9ab6ee..2d9af333259d1b61218e232064e476af073d69ea 100644 (file)
@@ -2296,7 +2296,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lp_do_global_parameter(lp_ctx, "ntvfs handler", "unixuid default");
        lp_do_global_parameter(lp_ctx, "max connections", "-1");
 
-       lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo");
+       lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo browser");
        lp_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd");
        lp_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
        lp_do_global_parameter(lp_ctx, "auth methods:domain controller", "anonymous sam_ignoredomain");
@@ -2429,10 +2429,19 @@ const char *lp_configfile(struct loadparm_context *lp_ctx)
 
 bool lp_load_default(struct loadparm_context *lp_ctx)
 {
+    const char *path;
     if (getenv("SMB_CONF_PATH"))
-        return lp_load(lp_ctx, getenv("SMB_CONF_PATH"));
+        path = getenv("SMB_CONF_PATH");
     else
-        return lp_load(lp_ctx, dyn_CONFIGFILE);
+        path = dyn_CONFIGFILE;
+
+    if (!file_exist(path)) {
+           /* We allow the default smb.conf file to not exist, 
+            * basically the equivalent of an empty file. */
+           return true;
+    }
+
+    return lp_load(lp_ctx, path);
 }
 
 /**