s4-param: added "dns update command" smb.conf option
authorAndrew Tridgell <tridge@samba.org>
Wed, 17 Feb 2010 10:14:10 +0000 (21:14 +1100)
committerStefan Metzmacher <metze@samba.org>
Tue, 23 Feb 2010 12:48:20 +0000 (13:48 +0100)
defaults to SBINDIR/samba_dnsupdate

This command will do periodic dynamic DNS updates using TSIG-GSS

source4/param/loadparm.c
source4/param/param.h

index bcd31888d74c1d8f01aae2e2a016775417080cec..8bb56c764aceb3aef04cae503b929b089d27e6b4 100644 (file)
@@ -187,6 +187,7 @@ struct loadparm_global
        int bRpcBigEndian;
        char *szNTPSignDSocketDirectory;
        char *szRNDCCommand;
+       char *szDNSUpdateCommand;
        struct parmlist_entry *param_opt;
 };
 
@@ -505,6 +506,7 @@ static struct parm_struct parm_table[] = {
 
        {"ntp signd socket directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szNTPSignDSocketDirectory), NULL, NULL },
        {"rndc command", P_STRING, P_GLOBAL, GLOBAL_VAR(szRNDCCommand), NULL, NULL },
+       {"dns update command", P_STRING, P_GLOBAL, GLOBAL_VAR(szDNSUpdateCommand), NULL, NULL },
 
        {NULL, P_BOOL, P_NONE, 0, NULL, NULL}
 };
@@ -657,6 +659,7 @@ _PUBLIC_ FN_GLOBAL_STRING(lp_unix_charset, unix_charset)
 _PUBLIC_ FN_GLOBAL_STRING(lp_display_charset, display_charset)
 _PUBLIC_ FN_GLOBAL_STRING(lp_piddir, szPidDir)
 _PUBLIC_ FN_GLOBAL_STRING(lp_rndc_command, szRNDCCommand)
+_PUBLIC_ FN_GLOBAL_STRING(lp_dns_update_command, szDNSUpdateCommand)
 _PUBLIC_ FN_GLOBAL_LIST(lp_dcerpc_endpoint_servers, dcerpc_ep_servers)
 _PUBLIC_ FN_GLOBAL_LIST(lp_server_services, server_services)
 _PUBLIC_ FN_GLOBAL_STRING(lp_ntptr_providor, ntptr_providor)
@@ -2451,6 +2454,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lp_do_global_parameter(lp_ctx, "ntp signd socket directory", dyn_NTP_SIGND_SOCKET_DIR);
        lp_do_global_parameter(lp_ctx, "rndc command", "/usr/sbin/rndc");
+       lp_do_global_parameter_var(lp_ctx, "dns update command", "%s/samba_dnsupdate", dyn_SBINDIR);
 
        for (i = 0; parm_table[i].label; i++) {
                if (!(lp_ctx->flags[i] & FLAG_CMDLINE)) {
index 05b3939a48add64d2b9fbf144ed089ad84d63231..4ac7eef0f17e655d43216323889792a2c343c471 100644 (file)
@@ -131,6 +131,7 @@ const char **lp_interfaces(struct loadparm_context *);
 const char *lp_socket_address(struct loadparm_context *);
 const char **lp_netbios_aliases(struct loadparm_context *);
 const char *lp_rndc_command(struct loadparm_context *);
+const char *lp_dns_update_command(struct loadparm_context *);
 bool lp_disable_netbios(struct loadparm_context *);
 bool lp_wins_support(struct loadparm_context *);
 bool lp_wins_dns_proxy(struct loadparm_context *);