summaryrefslogtreecommitdiff
path: root/source3/client/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/client/client.c')
-rw-r--r--source3/client/client.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index eb6b572760..f25ed1623b 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 full_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(full_share, "\\\\");
+ pstrcat(full_share, server);
+ pstrcat(full_share, "\\");
+ pstrcat(full_share, sharename);
+ if (!cli_send_tconX(c, full_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"));