lib/param: Remove parameters for wins and spoolss databases
authorAndrew Bartlett <abartlet@samba.org>
Tue, 18 Oct 2011 00:33:33 +0000 (11:33 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 18 Oct 2011 03:39:54 +0000 (05:39 +0200)
This removes the smb.conf parameters per-database, replacing these
with hard-coded database names in well known (and configurable)
directories.

The wins.ldb is now always in the "state dir", rather than being in
both state and lock dir (ie, a bug).

Less smb.conf parameters means less parameters to try and sync up
between the loadparm subsystems.

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Tue Oct 18 05:39:54 CEST 2011 on sn-devel-104

lib/param/loadparm.c
source4/nbt_server/wins/winsdb.c
source4/ntptr/simple_ldb/ntptr_simple_ldb.c
source4/wrepl_server/wrepl_server.c

index e2dde453f8db39d69aa4d647c557c20ab894bf09..0918cce236ec67b15f6b0f95532cf1eaa07545c5 100644 (file)
@@ -375,30 +375,6 @@ static struct parm_struct parm_table[] = {
                .special        = NULL,
                .enum_list      = NULL
        },
-       {
-               .label          = "spoolss database",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSPOOLSS_URL),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "wins config database",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWINS_CONFIG_URL),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "wins database",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWINS_URL),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
        {
                .label          = "private dir",
                .type           = P_STRING,
@@ -1493,9 +1469,6 @@ FN_GLOBAL_INTEGER(web_port, web_port)
 FN_GLOBAL_BOOL(tls_enabled, tls_enabled)
 FN_GLOBAL_STRING(logfile, logfile)
 FN_GLOBAL_STRING(share_backend, szShareBackend)
-FN_GLOBAL_STRING(spoolss_url, szSPOOLSS_URL)
-FN_GLOBAL_STRING(wins_config_url, szWINS_CONFIG_URL)
-FN_GLOBAL_STRING(wins_url, szWINS_URL)
 FN_GLOBAL_CONST_STRING(winbind_separator, szWinbindSeparator)
 FN_GLOBAL_CONST_STRING(winbindd_socket_directory, szWinbinddSocketDirectory)
 FN_GLOBAL_CONST_STRING(winbindd_privileged_socket_directory, szWinbinddPrivilegedSocketDirectory)
@@ -3331,9 +3304,6 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        /* the winbind method for domain controllers is for both RODC
           auth forwarding and for trusted domains */
        lpcfg_do_global_parameter(lp_ctx, "private dir", dyn_PRIVATE_DIR);
-       lpcfg_do_global_parameter(lp_ctx, "spoolss database", "spoolss.ldb");
-       lpcfg_do_global_parameter(lp_ctx, "wins config database", "wins_config.ldb");
-       lpcfg_do_global_parameter(lp_ctx, "wins database", "wins.ldb");
        lpcfg_do_global_parameter(lp_ctx, "registry:HKEY_LOCAL_MACHINE", "hklm.ldb");
 
        /* This hive should be dynamically generated by Samba using
index 67274454372cf496170bc6cf6721803fe55674ac..18c1b725be84c6ec9085de1a49f1323421421d27 100644 (file)
@@ -929,7 +929,8 @@ failed:
 }
 
 static bool winsdb_check_or_add_module_list(struct tevent_context *ev_ctx, 
-                                           struct loadparm_context *lp_ctx, struct winsdb_handle *h)
+                                           struct loadparm_context *lp_ctx, struct winsdb_handle *h,
+                                           const char *wins_path)
 {
        int trans;
        int ret;
@@ -975,7 +976,7 @@ static bool winsdb_check_or_add_module_list(struct tevent_context *ev_ctx,
                flags |= LDB_FLG_NOSYNC;
        }
 
-       h->ldb = ldb_wrap_connect(h, ev_ctx, lp_ctx, lpcfg_state_path(h, lp_ctx, lpcfg_wins_url(lp_ctx)),
+       h->ldb = ldb_wrap_connect(h, ev_ctx, lp_ctx, wins_path,
                                  NULL, NULL, flags);
        if (!h->ldb) goto failed;
 
@@ -1003,15 +1004,18 @@ struct winsdb_handle *winsdb_connect(TALLOC_CTX *mem_ctx,
        unsigned int flags = 0;
        bool ret;
        int ldb_err;
+       char *wins_path;
 
        h = talloc_zero(mem_ctx, struct winsdb_handle);
        if (!h) return NULL;
 
+       wins_path = lpcfg_state_path(h, lp_ctx, "wins.ldb");
+
        if (lpcfg_parm_bool(lp_ctx, NULL,"winsdb", "nosync", false)) {
                flags |= LDB_FLG_NOSYNC;
        }
 
-       h->ldb = ldb_wrap_connect(h, ev_ctx, lp_ctx, lpcfg_lock_path(h, lp_ctx, lpcfg_wins_url(lp_ctx)),
+       h->ldb = ldb_wrap_connect(h, ev_ctx, lp_ctx, wins_path,
                                  NULL, NULL, flags);
        if (!h->ldb) goto failed;
 
@@ -1022,7 +1026,7 @@ struct winsdb_handle *winsdb_connect(TALLOC_CTX *mem_ctx,
        if (!h->local_owner) goto failed;
 
        /* make sure the module list is available and used */
-       ret = winsdb_check_or_add_module_list(ev_ctx, lp_ctx, h);
+       ret = winsdb_check_or_add_module_list(ev_ctx, lp_ctx, h, wins_path);
        if (!ret) goto failed;
 
        ldb_err = ldb_set_opaque(h->ldb, "winsdb_handle", h);
index c25c61d36bb16222094cbc65e26c56c365e695ac..04e380685316b71da95a24c729979d0efd60363c 100644 (file)
@@ -48,7 +48,7 @@ NTSTATUS ntptr_simple_ldb_init(void);
  */
 static struct ldb_context *sptr_db_connect(TALLOC_CTX *mem_ctx, struct tevent_context *ev_ctx, struct loadparm_context *lp_ctx)
 {
-       return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, lpcfg_spoolss_url(lp_ctx), system_session(lp_ctx),
+       return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, "spoolss.ldb", system_session(lp_ctx),
                                NULL, 0);
 }
 
index 064e11472cbef01f097e00fa6505daa571f1875d..e28afc6fe5af996c8c7bf3c64023dacbe47477df 100644 (file)
@@ -39,7 +39,7 @@ static struct ldb_context *wins_config_db_connect(TALLOC_CTX *mem_ctx,
                                                  struct loadparm_context *lp_ctx)
 {
        return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, lpcfg_private_path(mem_ctx,
-                               lp_ctx, lpcfg_wins_config_url(lp_ctx)),
+                               lp_ctx, "wins_config.ldb"),
                                system_session(lp_ctx), NULL, 0);
 }