param: Use a bool to hold boolean parameters
[kai/samba-autobuild/.git] / source4 / param / loadparm.c
index ba9668a1c645488e83add8c19fc668c8e4ba237b..a9fa00293186772eab6796cc3795b09815695bd9 100644 (file)
@@ -105,7 +105,8 @@ static bool handle_logfile(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr);
 
 static const struct enum_list enum_protocol[] = {
-       {PROTOCOL_SMB2, "SMB2"},
+       {PROTOCOL_SMB2_02, "SMB2"},
+       {PROTOCOL_SMB2_02, "SMB2_02"},
        {PROTOCOL_NT1, "NT1"},
        {PROTOCOL_LANMAN2, "LANMAN2"},
        {PROTOCOL_LANMAN1, "LANMAN1"},
@@ -319,6 +320,14 @@ static struct parm_struct parm_table[] = {
                .special        = NULL,
                .enum_list      = NULL
        },
+       {
+               .label          = "passdb backend",
+               .type           = P_STRING,
+               .p_class        = P_GLOBAL,
+               .offset         = GLOBAL_VAR(passdb_backend),
+               .special        = NULL,
+               .enum_list      = NULL
+       },
        {
                .label          = "dcerpc endpoint servers",
                .type           = P_LIST,
@@ -1511,6 +1520,7 @@ FN_GLOBAL_LIST(nsupdate_command, szNSUpdateCommand)
 FN_GLOBAL_LIST(dcerpc_endpoint_servers, dcerpc_ep_servers)
 FN_GLOBAL_LIST(server_services, server_services)
 FN_GLOBAL_STRING(ntptr_providor, ntptr_providor)
+FN_GLOBAL_STRING(passdb_backend, passdb_backend)
 FN_GLOBAL_STRING(auto_services, szAutoServices)
 FN_GLOBAL_STRING(passwd_chat, szPasswdChat)
 FN_GLOBAL_LIST(passwordserver, szPasswordServers)
@@ -2122,7 +2132,7 @@ static void copy_service(struct loadparm_service *pserviceDest,
 
                        switch (parm_table[i].type) {
                                case P_BOOL:
-                                       *(int *)dest_ptr = *(int *)src_ptr;
+                                       *(bool *)dest_ptr = *(bool *)src_ptr;
                                        break;
 
                                case P_INTEGER:
@@ -2496,7 +2506,7 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                                DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
                                return false;
                        }
-                       *(int *)parm_ptr = b;
+                       *(bool *)parm_ptr = b;
                        }
                        break;
 
@@ -2506,7 +2516,7 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                                DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
                                return false;
                        }
-                       *(int *)parm_ptr = !b;
+                       *(bool *)parm_ptr = !b;
                        }
                        break;
 
@@ -2827,11 +2837,11 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
                        break;
 
                case P_BOOL:
-                       fprintf(f, "%s", BOOLSTR((bool)*(int *)ptr));
+                       fprintf(f, "%s", BOOLSTR(*(bool *)ptr));
                        break;
 
                case P_BOOLREV:
-                       fprintf(f, "%s", BOOLSTR(!(bool)*(int *)ptr));
+                       fprintf(f, "%s", BOOLSTR(!*(bool *)ptr));
                        break;
 
                case P_INTEGER:
@@ -2882,7 +2892,7 @@ static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
        switch (type) {
                case P_BOOL:
                case P_BOOLREV:
-                       return (*((int *)ptr1) == *((int *)ptr2));
+                       return (*((bool *)ptr1) == *((bool *)ptr2));
 
                case P_INTEGER:
                case P_OCTAL:
@@ -2982,7 +2992,7 @@ static bool is_default(struct loadparm_service *sDefault, int i)
                case P_BOOL:
                case P_BOOLREV:
                        return parm_table[i].def.bvalue ==
-                               *(int *)def_ptr;
+                               *(bool *)def_ptr;
                case P_INTEGER:
                case P_CHAR:
                case P_OCTAL:
@@ -3281,7 +3291,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "max connections", "-1");
 
        lpcfg_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo browser eventlog6 backupkey");
-       lpcfg_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate web");
+       lpcfg_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate");
        lpcfg_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
        /* the winbind method for domain controllers is for both RODC
           auth forwarding and for trusted domains */
@@ -3580,6 +3590,11 @@ void lpcfg_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults,
 {
        int iService;
 
+       if (lp_ctx->s3_fns) {
+               lp_ctx->s3_fns->dump(f, show_defaults, maxtoprint);
+               return;
+       }
+
        defaults_saved = !show_defaults;
 
        dump_globals(lp_ctx, f, show_defaults);