diff options
author | Jeremy Allison <jra@samba.org> | 2009-11-09 12:41:13 -0800 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2010-01-13 14:00:53 +0100 |
commit | a3f264ffd954e596c7bb732341435729735f50ab (patch) | |
tree | a8ea94ba1c5010b756303b9f33ca8830e0c9c5ce /source | |
parent | 835e7aac96eec5e9d8d6b58ece7687f5fa73e3c5 (diff) | |
download | samba-a3f264ffd954e596c7bb732341435729735f50ab.tar.gz samba-a3f264ffd954e596c7bb732341435729735f50ab.tar.xz samba-a3f264ffd954e596c7bb732341435729735f50ab.zip |
Fix bug 6880 - cannot list workgroup servers reported by Alban Browaeys <prahal@yahoo.com> with fix. Revert 2e989bab0764c298a2530a2d4c8690258eba210c with extra comments - this broke workgroup enumeration. Jeremy.
(cherry picked from commit ed99189208b65bcc1a108c4f1a60c0535e75022c)
Diffstat (limited to 'source')
-rw-r--r-- | source/libsmb/libsmb_dir.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/source/libsmb/libsmb_dir.c b/source/libsmb/libsmb_dir.c index d238ab9a192..b370f4b9938 100644 --- a/source/libsmb/libsmb_dir.c +++ b/source/libsmb/libsmb_dir.c @@ -617,7 +617,11 @@ SMBC_opendir_ctx(SMBCCTX *context, !is_ipaddress(server) && (resolve_name(server, &rem_ss, 0x1d) || /* LMB */ resolve_name(server, &rem_ss, 0x1b) )) { /* DMB */ - + /* + * "server" is actually a workgroup name, + * not a server. Make this clear. + */ + char *wgroup = server; fstring buserver; dir->dir_type = SMBC_SERVER; @@ -625,12 +629,17 @@ SMBC_opendir_ctx(SMBCCTX *context, /* * Get the backup list ... */ - if (!name_status_find(server, 0x20, 0x20, + if (!name_status_find(wgroup, 0, 0, &rem_ss, buserver)) { + char addr[INET6_ADDRSTRLEN]; + print_sockaddr(addr, sizeof(addr), &rem_ss); DEBUG(0,("Could not get name of " - "local/domain master browser " - "for server %s\n", server)); + "local/domain master browser " + "for workgroup %s fro m" + "address %s\n", + wgroup, + addr)); if (dir) { SAFE_FREE(dir->fname); SAFE_FREE(dir); @@ -663,7 +672,7 @@ SMBC_opendir_ctx(SMBCCTX *context, dir->srv = srv; /* Now, list the servers ... */ - if (!cli_NetServerEnum(srv->cli, server, + if (!cli_NetServerEnum(srv->cli, wgroup, 0x0000FFFE, list_fn, (void *)dir)) { |