diff options
Diffstat (limited to 'source3/client/client.c')
-rw-r--r-- | source3/client/client.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/source3/client/client.c b/source3/client/client.c index eb6b572760..de6bf0e1b0 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2436,9 +2436,24 @@ static struct cli_state *do_connect(const char *server, const char *share) if (!cli_send_tconX(c, sharename, "?????", password, strlen(password)+1)) { - d_printf("tree connect failed: %s\n", cli_errstr(c)); - cli_shutdown(c); - return NULL; + pstring share; + + /* + * Some servers require \\server\share for the share + * while others are happy with share as we gave above + * Lets see if we give it the long form if it works + */ + pstrcpy(share, "\\\\"); + pstrcat(share, server); + pstrcat(share, "\\"); + pstrcat(share, sharename); + if (!cli_send_tconX(c, share, "?????", password, + strlen(password) + 1)) { + + d_printf("tree connect failed: %s\n", cli_errstr(c)); + cli_shutdown(c); + return NULL; + } } DEBUG(4,(" tconx ok\n")); |