From 5cec60b31b63821ebc35f0a3f02b96329a08387d Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 1 Oct 2002 01:41:20 +0000 Subject: Added error string for server timeout on client call. Jeremy. (This used to be commit 28d2eb934318818a3b0527e391987ea139dbf4a3) --- source3/libsmb/clientgen.c | 2 ++ source3/libsmb/clierror.c | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'source3/libsmb') diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index 793dd19644..156de42836 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -69,6 +69,7 @@ static BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout) BOOL cli_receive_smb(struct cli_state *cli) { + extern int smb_read_error; BOOL ret; /* fd == -1 causes segfaults -- Tom (tom@ninja.nl) */ @@ -100,6 +101,7 @@ BOOL cli_receive_smb(struct cli_state *cli) if (!ret) { close(cli->fd); cli->fd = -1; + cli->smb_read_error = smb_read_error; } return ret; diff --git a/source3/libsmb/clierror.c b/source3/libsmb/clierror.c index e1507c6048..fb88b66786 100644 --- a/source3/libsmb/clierror.c +++ b/source3/libsmb/clierror.c @@ -85,6 +85,14 @@ char *cli_errstr(struct cli_state *cli) return cli_error_message; } + /* Was it server timeout ? */ + if (cli->fd == -1 && cli->timeout > 0 && cli->smb_read_error == READ_TIMEOUT) { + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Call timed out: server did not respond after %d milliseconds", + cli->timeout); + return cli_error_message; + } + /* Case #1: RAP error */ if (cli->rap_error) { for (i = 0; rap_errmap[i].message != NULL; i++) { -- cgit