diff options
Diffstat (limited to 'source3/smbwrapper/smbw.c')
-rw-r--r-- | source3/smbwrapper/smbw.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c index 0abe823e29..054b694c41 100644 --- a/source3/smbwrapper/smbw.c +++ b/source3/smbwrapper/smbw.c @@ -360,21 +360,27 @@ struct smbw_server *smbw_server(char *server, char *share) return NULL; } + make_nmb_name(&calling, global_myname, 0x0, ""); + make_nmb_name(&called , server, 0x20, ""); + + again: /* have to open a new connection */ if (!cli_initialise(&c) || !cli_connect(&c, server, NULL)) { errno = ENOENT; return NULL; } - make_nmb_name(&calling, global_myname, 0x0, ""); - make_nmb_name(&called , server, 0x20, ""); - if (!cli_session_request(&c, &calling, &called)) { cli_shutdown(&c); + if (strcmp(called.name, "*SMBSERVER")) { + make_nmb_name(&called , "*SMBSERVER", 0x20, ""); + goto again; + } errno = ENOENT; return NULL; } + if (!cli_negprot(&c)) { cli_shutdown(&c); errno = ENOENT; |