s4 dns: Negotiate GSSAPI-based TKEYs
[obnox/samba/samba-obnox.git] / source4 / dns_server / dns_server.c
index 3592258a8b25bfbdc7d5fa0c098f0c11f0bb4e76..70fb6a262dd99cfa9528ec20ac5c7aa276e576a7 100644 (file)
@@ -43,6 +43,8 @@
 #include "auth/session.h"
 #include "lib/util/dlinklist.h"
 #include "lib/util/tevent_werror.h"
+#include "auth/auth.h"
+#include "auth/credentials/credentials.h"
 
 NTSTATUS server_service_dns_init(void);
 
@@ -720,6 +722,22 @@ static void dns_task_init(struct task_server *task)
 
        dns->task = task;
 
+       dns->server_credentials = cli_credentials_init(dns);
+       if (!dns->server_credentials) {
+               task_server_terminate(task, "Failed to init server credentials\n", true);
+               return;
+       }
+
+       cli_credentials_set_conf(dns->server_credentials, task->lp_ctx);
+       status = cli_credentials_set_machine_account(dns->server_credentials, task->lp_ctx);
+       if (!NT_STATUS_IS_OK(status)) {
+               task_server_terminate(task,
+                       talloc_asprintf(task, "Failed to obtain server credentials, perhaps a standalone server?: %s\n",
+                                       nt_errstr(status)),
+                       true);
+               return;
+       }
+
        dns->samdb = samdb_connect(dns, dns->task->event_ctx, dns->task->lp_ctx,
                              system_session(dns->task->lp_ctx), 0);
        if (!dns->samdb) {