summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-10-17 17:10:24 +0000
committerJeremy Allison <jra@samba.org>2002-10-17 17:10:24 +0000
commitc53eb2ed540e79d6deae5f41e17febc5bf5dbf57 (patch)
treee8de6cd8f4ced70b70d6ca553c0b99b01cb0dfbb /source3/libsmb
parent788ca8b1185e3624ca623baade05e86f9114e69f (diff)
downloadsamba-c53eb2ed540e79d6deae5f41e17febc5bf5dbf57.tar.gz
samba-c53eb2ed540e79d6deae5f41e17febc5bf5dbf57.tar.bz2
samba-c53eb2ed540e79d6deae5f41e17febc5bf5dbf57.zip
Added new error codes. Fix up connection code to retry in the same way
that app-head does. Jeremy. (This used to be commit ec7953f20145799f6286a295472df4826bfdfb8f)
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/cliconnect.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index f005ac21f3..6a21121f43 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -1153,6 +1153,7 @@ static void init_creds(struct ntuser_creds *creds, char* username,
@param user Username, unix string
@param domain User's domain
@param password User's password, unencrypted unix string.
+ @param retry BOOL. Did this connection fail with a retryable error ?
*/
NTSTATUS cli_full_connection(struct cli_state **output_cli,
@@ -1161,7 +1162,8 @@ NTSTATUS cli_full_connection(struct cli_state **output_cli,
struct in_addr *dest_ip, int port,
char *service, char *service_type,
char *user, char *domain,
- char *password, int flags)
+ char *password, int flags,
+ BOOL *retry)
{
struct ntuser_creds creds;
NTSTATUS nt_status;
@@ -1171,6 +1173,9 @@ NTSTATUS cli_full_connection(struct cli_state **output_cli,
struct in_addr ip;
extern pstring global_myname;
+ if (retry)
+ *retry = False;
+
if (!my_name)
my_name = global_myname;
@@ -1185,6 +1190,8 @@ NTSTATUS cli_full_connection(struct cli_state **output_cli,
return NT_STATUS_UNSUCCESSFUL;
}
+ cli_set_timeout(cli, 10000); /* 10 seconds. */
+
if (dest_ip)
ip = *dest_ip;
else
@@ -1201,6 +1208,9 @@ again:
return NT_STATUS_UNSUCCESSFUL;
}
+ if (retry)
+ *retry = True;
+
if (!cli_session_request(cli, &calling, &called)) {
char *p;
DEBUG(1,("session request to %s failed (%s)\n",