s3:net ads join: reduce indentation in _net_ads_join_dns_updates()
[ira/wip.git] / source3 / utils / net_ads.c
index c52dfb9bf9fb429118e05313ac8148dbbcb00e0b..09235051e9e98fa248afb4d9aaf817c6cf54f9df 100644 (file)
@@ -1309,6 +1309,10 @@ static int net_ads_join_usage(struct net_context *c, int argc, const char **argv
 static void _net_ads_join_dns_updates(TALLOC_CTX *ctx, struct libnet_JoinCtx *r)
 {
 #if defined(WITH_DNS_UPDATES)
+       ADS_STRUCT *ads_dns = NULL;
+       int ret;
+       NTSTATUS status;
+
        /*
         * In a clustered environment, don't do dynamic dns updates:
         * Registering the set of ip addresses that are assigned to
@@ -1323,67 +1327,64 @@ static void _net_ads_join_dns_updates(TALLOC_CTX *ctx, struct libnet_JoinCtx *r)
        if (lp_clustering()) {
                d_fprintf(stderr, _("Not doing automatic DNS update in a "
                                    "clustered setup.\n"));
-               goto done;
+               return;
        }
 
-       if (r->out.domain_is_ad) {
-               /*
-                * We enter this block with user creds.
-                * kinit with the machine password to do dns update.
-                */
-               ADS_STRUCT *ads_dns = NULL;
-               int ret;
-               NTSTATUS status;
+       if (!r->out.domain_is_ad) {
+               return;
+       }
 
-               ads_dns = ads_init(lp_realm(), NULL, r->in.dc_name);
+       /*
+        * We enter this block with user creds.
+        * kinit with the machine password to do dns update.
+        */
 
-               if (ads_dns == NULL) {
-                       d_fprintf(stderr, _("DNS update failed: out of memory!\n"));
-                       goto done;
-               }
+       ads_dns = ads_init(lp_realm(), NULL, r->in.dc_name);
 
-               use_in_memory_ccache();
+       if (ads_dns == NULL) {
+               d_fprintf(stderr, _("DNS update failed: out of memory!\n"));
+               goto done;
+       }
 
-               ret = asprintf(&ads_dns->auth.user_name, "%s$", lp_netbios_name());
-               if (ret == -1) {
-                       d_fprintf(stderr, _("DNS update failed: out of memory\n"));
-                       goto dns_done;
-               }
+       use_in_memory_ccache();
 
-               ads_dns->auth.password = secrets_fetch_machine_password(
-                       r->out.netbios_domain_name, NULL, NULL);
-               if (ads_dns->auth.password == NULL) {
-                       d_fprintf(stderr, _("DNS update failed: out of memory\n"));
-                       goto dns_done;
-               }
+       ret = asprintf(&ads_dns->auth.user_name, "%s$", lp_netbios_name());
+       if (ret == -1) {
+               d_fprintf(stderr, _("DNS update failed: out of memory\n"));
+               goto done;
+       }
 
-               ads_dns->auth.realm = SMB_STRDUP(r->out.dns_domain_name);
-               if (ads_dns->auth.realm == NULL) {
-                       d_fprintf(stderr, _("DNS update failed: out of memory\n"));
-                       goto dns_done;
-               }
+       ads_dns->auth.password = secrets_fetch_machine_password(
+               r->out.netbios_domain_name, NULL, NULL);
+       if (ads_dns->auth.password == NULL) {
+               d_fprintf(stderr, _("DNS update failed: out of memory\n"));
+               goto done;
+       }
 
-               strupper_m(ads_dns->auth.realm);
+       ads_dns->auth.realm = SMB_STRDUP(r->out.dns_domain_name);
+       if (ads_dns->auth.realm == NULL) {
+               d_fprintf(stderr, _("DNS update failed: out of memory\n"));
+               goto done;
+       }
 
-               ret = ads_kinit_password(ads_dns);
-               if (ret != 0) {
-                       d_fprintf(stderr,
-                                 _("DNS update failed: kinit failed: %s\n"),
-                                 error_message(ret));
-                       goto dns_done;
-               }
+       strupper_m(ads_dns->auth.realm);
 
-               status = net_update_dns(ctx, ads_dns, NULL);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_fprintf( stderr, _("DNS update failed: %s\n"),
-                                 nt_errstr(status));
-               }
+       ret = ads_kinit_password(ads_dns);
+       if (ret != 0) {
+               d_fprintf(stderr,
+                         _("DNS update failed: kinit failed: %s\n"),
+                         error_message(ret));
+               goto done;
+       }
 
-dns_done:
-               ads_destroy(&ads_dns);
+       status = net_update_dns(ctx, ads_dns, NULL);
+       if (!NT_STATUS_IS_OK(status)) {
+               d_fprintf( stderr, _("DNS update failed: %s\n"),
+                         nt_errstr(status));
        }
 
 done:
+       ads_destroy(&ads_dns);
 #endif
 
        return;