s3-registry: Check return code of push_reg_sz().
[kai/samba.git] / source3 / utils / smbtree.c
index 81b9ca3257bd8aec0f9fa3c4b05ea096df0738f5..40b1f096ad995defca273a285b70e2986533717a 100644 (file)
@@ -23,6 +23,8 @@
 #include "popt_common.h"
 #include "rpc_client/cli_pipe.h"
 #include "../librpc/gen_ndr/ndr_srvsvc_c.h"
+#include "libsmb/libsmb.h"
+#include "libsmb/clirap.h"
 
 static int use_bcast;
 
@@ -93,24 +95,32 @@ static bool get_workgroups(struct user_auth_info *user_info)
                return false;
        }
 
-        if (!use_bcast && !find_master_ip(lp_workgroup(), &server_ss)) {
-                DEBUG(4, ("Unable to find master browser for workgroup %s, falling back to broadcast\n", 
-                         master_workgroup));
-                               use_bcast = True;
-               } else if(!use_bcast) {
-                       char addr[INET6_ADDRSTRLEN];
-                       print_sockaddr(addr, sizeof(addr), &server_ss);
-                       if (!(cli = get_ipc_connect(addr, &server_ss, user_info)))
-                               return False;
-               }
+       if (!use_bcast && !find_master_ip(lp_workgroup(), &server_ss)) {
+               DEBUG(4,("Unable to find master browser for workgroup %s, "
+                        "falling back to broadcast\n",
+                        master_workgroup));
+               use_bcast = true;
+       }
+
+       if (!use_bcast) {
+               char addr[INET6_ADDRSTRLEN];
+
+               print_sockaddr(addr, sizeof(addr), &server_ss);
 
-               if (!(cli = get_ipc_connect_master_ip_bcast(talloc_tos(),
-                                                       user_info,
-                                                       &master_workgroup))) {
+               cli = get_ipc_connect(addr, &server_ss, user_info);
+               if (cli == NULL) {
+                       return false;
+               }
+       } else {
+               cli = get_ipc_connect_master_ip_bcast(talloc_tos(),
+                                                     user_info,
+                                                     &master_workgroup);
+               if (cli == NULL) {
                        DEBUG(4, ("Unable to find master browser by "
                                  "broadcast\n"));
-                       return False;
-        }
+                       return false;
+               }
+       }
 
         if (!cli_NetServerEnum(cli, master_workgroup,
                                SV_TYPE_DOMAIN_ENUM, add_name, &workgroups))
@@ -307,8 +317,9 @@ static bool print_tree(struct user_auth_info *user_info)
                                                POPT_CONTEXT_KEEP_FIRST);
        while(poptGetNextOpt(pc) != -1);
        poptFreeContext(pc);
+       popt_burn_cmdline_password(argc, argv);
 
-       lp_load(get_dyn_CONFIGFILE(),True,False,False,True);
+       lp_load_global(get_dyn_CONFIGFILE());
        load_interfaces();
 
        /* Parse command line args */