From: Stefan Metzmacher Date: Fri, 22 Jul 2011 10:48:09 +0000 (+0200) Subject: s3:smbtree: try to fix completely broken logic in get_workgroups() X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=5bd80b20a1e7d2ad2cd5c426f3729ed0ba96cbb1;p=metze%2Fsamba%2Fwip.git s3:smbtree: try to fix completely broken logic in get_workgroups() metze --- diff --git a/source3/utils/smbtree.c b/source3/utils/smbtree.c index 41f4103e5a15..e1836ab4d775 100644 --- a/source3/utils/smbtree.c +++ b/source3/utils/smbtree.c @@ -95,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))