summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/client/client.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/source/client/client.c b/source/client/client.c
index eb6b5727608..de6bf0e1b05 100644
--- a/source/client/client.c
+++ b/source/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"));