diff options
author | Jeremy Allison <jra@samba.org> | 2002-10-01 06:50:38 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-10-01 06:50:38 +0000 |
commit | 8147df0b6b4674670e70b45c603e8323e5c61c33 (patch) | |
tree | 1829641fa33ccb9eda1a3fd96f1bdf77b6658ac4 /source3/libsmb/clierror.c | |
parent | 88e481ec13505f7e870a2172db3d4edf5ce47caf (diff) | |
download | samba-8147df0b6b4674670e70b45c603e8323e5c61c33.tar.gz samba-8147df0b6b4674670e70b45c603e8323e5c61c33.tar.xz samba-8147df0b6b4674670e70b45c603e8323e5c61c33.zip |
Cope with rw errors and timeout to peer.
Jeremy.
(This used to be commit d8d351eb01ea7c84828dbc96224d7b13d643b558)
Diffstat (limited to 'source3/libsmb/clierror.c')
-rw-r--r-- | source3/libsmb/clierror.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/source3/libsmb/clierror.c b/source3/libsmb/clierror.c index fb88b66786..f5281eb047 100644 --- a/source3/libsmb/clierror.c +++ b/source3/libsmb/clierror.c @@ -85,11 +85,31 @@ 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); + /* Was it server socket error ? */ + if (cli->fd == -1 && cli->smb_rw_error) { + switch(cli->smb_rw_error) { + case READ_TIMEOUT: + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Call timed out: server did not respond after %d milliseconds", + cli->timeout); + break; + case READ_EOF: + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Call returned zero bytes (EOF)\n" ); + break; + case READ_ERROR: + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Read error: %s\n", strerror(errno) ); + break; + case WRITE_ERROR: + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Write error: %s\n", strerror(errno) ); + break; + default: + slprintf(cli_error_message, sizeof(cli_error_message) - 1, + "Unknown error code %d\n", cli->smb_rw_error ); + break; + } return cli_error_message; } |