From 5954a37997a786a8808ee2544b594a0c90f1c893 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 18 Oct 2011 11:33:33 +1100 Subject: [PATCH] lib/param: Remove parameters for wins and spoolss databases 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 Autobuild-Date: Tue Oct 18 05:39:54 CEST 2011 on sn-devel-104 --- lib/param/loadparm.c | 30 --------------------- source4/nbt_server/wins/winsdb.c | 12 ++++++--- source4/ntptr/simple_ldb/ntptr_simple_ldb.c | 2 +- source4/wrepl_server/wrepl_server.c | 2 +- 4 files changed, 10 insertions(+), 36 deletions(-) diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index e2dde453f8d..0918cce236e 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -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 diff --git a/source4/nbt_server/wins/winsdb.c b/source4/nbt_server/wins/winsdb.c index 67274454372..18c1b725be8 100644 --- a/source4/nbt_server/wins/winsdb.c +++ b/source4/nbt_server/wins/winsdb.c @@ -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); diff --git a/source4/ntptr/simple_ldb/ntptr_simple_ldb.c b/source4/ntptr/simple_ldb/ntptr_simple_ldb.c index c25c61d36bb..04e38068531 100644 --- a/source4/ntptr/simple_ldb/ntptr_simple_ldb.c +++ b/source4/ntptr/simple_ldb/ntptr_simple_ldb.c @@ -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); } diff --git a/source4/wrepl_server/wrepl_server.c b/source4/wrepl_server/wrepl_server.c index 064e11472cb..e28afc6fe5a 100644 --- a/source4/wrepl_server/wrepl_server.c +++ b/source4/wrepl_server/wrepl_server.c @@ -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); } -- 2.34.1