The branch, master has been updated
       via  8972c92 s3:net ads join: remove a useless empty comment block
       via  976672b s3:net ads join: add a comment for the call to 
_net_ads_join_dns_update()
       via  be312e7 s3:net ads join: reduce indentation in 
_net_ads_join_dns_updates()
       via  7e5c5bd s3:net ads join: move dns update code out to new function 
_net_ads_join_dns_updates()
       via  1768d36 s3:net ads join: improve comment for dns update block
       via  8f9b432 s3:net ads join: improve status evaluation for call to 
net_update_dns()
       via  9cd7b8f s3:net ads join: interpret return code of 
ads_kinit_password() in dns update block
       via  4831b6e s3:net ads join: check for malloc success and react 
accordingly in dns update block
       via  ca913c9 s3:net ads join: check for success of fetching machine 
password in dns update block
       via  04fa9a3 s3:net ads join: untangle assignment from check, fix return 
code and improve error logging
       via  63d9b5d s3:net ads join: reduce indentation and improve logging in 
the dns update code block
       via  1d83f21 s3:net ads join: untangle assignment from check.
       via  dc4cf82 s3:net registry: fix a copy and paste error in a help text
      from  2343703 tevent: Fix python documentation strings

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8972c92342211fefb3d76bc306f7fbc467089010
Author: Michael Adam <ob...@samba.org>
Date:   Tue Jan 31 16:16:47 2012 +0100

    s3:net ads join: remove a useless empty comment block
    
    Autobuild-User: Michael Adam <ob...@samba.org>
    Autobuild-Date: Tue Jan 31 18:37:45 CET 2012 on sn-devel-104

commit 976672bf805e3ec44c10e07baeaa4a4ebc0da5cc
Author: Michael Adam <ob...@samba.org>
Date:   Tue Jan 31 16:15:54 2012 +0100

    s3:net ads join: add a comment for the call to _net_ads_join_dns_update()

commit be312e76d2b27674c5e38b760ca6521052caa460
Author: Michael Adam <ob...@samba.org>
Date:   Tue Jan 31 01:05:14 2012 +0100

    s3:net ads join: reduce indentation in _net_ads_join_dns_updates()

commit 7e5c5bdcc46b55c5890d755601fe5278557d0948
Author: Michael Adam <ob...@samba.org>
Date:   Tue Jan 31 00:59:21 2012 +0100

    s3:net ads join: move dns update code out to new function 
_net_ads_join_dns_updates()

commit 1768d3621a077eb8b0457cbcabc1f7e2a4545948
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 18:04:41 2012 +0100

    s3:net ads join: improve comment for dns update block

commit 8f9b43281d7ad425a4e6681503eb6e872d9040d7
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 14:15:14 2012 +0100

    s3:net ads join: improve status evaluation for call to net_update_dns()
    
    untangle assignment from check and log error code in message if failed.

commit 9cd7b8f04d6e51a0be4e18e8842ff1062134afae
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 14:12:15 2012 +0100

    s3:net ads join: interpret return code of ads_kinit_password() in dns 
update block
    
    If failed, print according error message and skip the attempt to do dns 
update.

commit 4831b6e6bb422a9186cf42980894b5e46c147ed4
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 14:07:52 2012 +0100

    s3:net ads join: check for malloc success and react accordingly in dns 
update block

commit ca913c98a6948f1b4acf38dd548fb6fa0191367c
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 14:05:59 2012 +0100

    s3:net ads join: check for success of fetching machine password in dns 
update block
    
    log and cleanup accordingly if failed

commit 04fa9a389c6d027dc4defb2527550fda650c4a6b
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 14:00:12 2012 +0100

    s3:net ads join: untangle assignment from check, fix return code and 
improve error logging
    
    only the dns update failed, not the join.
    Also do proper memory cleanup

commit 63d9b5d75a435bbbc06aa8d00371a1c61b69acfb
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 13:56:45 2012 +0100

    s3:net ads join: reduce indentation and improve logging in the dns update 
code block
    
    by doing an early goto done upon error condition

commit 1d83f2118e0e9e1de02909247114ac18ce55a6be
Author: Michael Adam <ob...@samba.org>
Date:   Mon Jan 30 13:03:59 2012 +0100

    s3:net ads join: untangle assignment from check.

commit dc4cf82fb573074b4bb063321c86cb306902a4bc
Author: Michael Adam <ob...@samba.org>
Date:   Fri Jan 27 14:02:07 2012 +0100

    s3:net registry: fix a copy and paste error in a help text

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/net_ads.c      |  135 +++++++++++++++++++++++++++--------------
 source3/utils/net_registry.c |    4 +-
 2 files changed, 91 insertions(+), 48 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index 0893a1d..381393e 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -1304,8 +1304,91 @@ static int net_ads_join_usage(struct net_context *c, int 
argc, const char **argv
        return -1;
 }
 
-/*******************************************************************
- ********************************************************************/
+
+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
+        * the interfaces of the node that performs the join does usually
+        * not have the desired effect, since the local interfaces do not
+        * carry the complete set of the cluster's public IP addresses.
+        * And it can also contain internal addresses that should not
+        * be visible to the outside at all.
+        * In order to do dns updates in a clustererd setup, use
+        * net ads dns register.
+        */
+       if (lp_clustering()) {
+               d_fprintf(stderr, _("Not doing automatic DNS update in a "
+                                   "clustered setup.\n"));
+               return;
+       }
+
+       if (!r->out.domain_is_ad) {
+               return;
+       }
+
+       /*
+        * We enter this block with user creds.
+        * kinit with the machine password to do dns update.
+        */
+
+       ads_dns = ads_init(lp_realm(), NULL, r->in.dc_name);
+
+       if (ads_dns == NULL) {
+               d_fprintf(stderr, _("DNS update failed: out of memory!\n"));
+               goto done;
+       }
+
+       use_in_memory_ccache();
+
+       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.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;
+       }
+
+       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;
+       }
+
+       strupper_m(ads_dns->auth.realm);
+
+       ret = ads_kinit_password(ads_dns);
+       if (ret != 0) {
+               d_fprintf(stderr,
+                         _("DNS update failed: kinit failed: %s\n"),
+                         error_message(ret));
+               goto done;
+       }
+
+       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;
+}
+
 
 int net_ads_join(struct net_context *c, int argc, const char **argv)
 {
@@ -1444,52 +1527,12 @@ int net_ads_join(struct net_context *c, int argc, const 
char **argv)
                        r->out.netbios_domain_name);
        }
 
-#if defined(WITH_DNS_UPDATES)
        /*
-        * In a clustered environment, don't do dynamic dns updates:
-        * Registering the set of ip addresses that are assigned to
-        * the interfaces of the node that performs the join does usually
-        * not have the desired effect, since the local interfaces do not
-        * carry the complete set of the cluster's public IP addresses.
-        * And it can also contain internal addresses that should not
-        * be visible to the outside at all.
-        * In order to do dns updates in a clustererd setup, use
-        * net ads dns register.
+        * We try doing the dns update (if it was compiled in).
+        * If the dns update fails, we still consider the join
+        * operation as succeeded if we came this far.
         */
-       if (lp_clustering()) {
-               d_fprintf(stderr, _("Not doing automatic DNS update in a "
-                                   "clustered setup.\n"));
-               goto done;
-       }
-
-       if (r->out.domain_is_ad) {
-               /* We enter this block with user creds */
-               ADS_STRUCT *ads_dns = NULL;
-
-               if ( (ads_dns = ads_init( lp_realm(), NULL, r->in.dc_name )) != 
NULL ) {
-                       /* kinit with the machine password */
-
-                       use_in_memory_ccache();
-                       if (asprintf( &ads_dns->auth.user_name, "%s$", 
lp_netbios_name()) == -1) {
-                               goto fail;
-                       }
-                       ads_dns->auth.password = secrets_fetch_machine_password(
-                               r->out.netbios_domain_name, NULL, NULL );
-                       ads_dns->auth.realm = SMB_STRDUP( 
r->out.dns_domain_name );
-                       strupper_m(ads_dns->auth.realm );
-                       ads_kinit_password( ads_dns );
-               }
-
-               if ( !ads_dns || !NT_STATUS_IS_OK(net_update_dns( ctx, ads_dns, 
NULL)) ) {
-                       d_fprintf( stderr, _("DNS update failed!\n") );
-               }
-
-               /* exit from this block using machine creds */
-               ads_destroy(&ads_dns);
-       }
-
-done:
-#endif
+       _net_ads_join_dns_updates(ctx, r);
 
        TALLOC_FREE(r);
        TALLOC_FREE( ctx );
diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c
index 90b0d19..eb7d19a 100644
--- a/source3/utils/net_registry.c
+++ b/source3/utils/net_registry.c
@@ -1439,9 +1439,9 @@ int net_registry(struct net_context *c, int argc, const 
char **argv)
                        "check",
                        net_registry_check,
                        NET_TRANSPORT_LOCAL,
-                       N_("Check .reg file"),
+                       N_("Check a registry database"),
                        N_("net registry check\n"
-                          "    Check .reg file")
+                          "    Check a registry database")
                },
        { NULL, NULL, 0, NULL, NULL }
        };


-- 
Samba Shared Repository

Reply via email to