summaryrefslogtreecommitdiffstats
path: root/source3/client
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2012-01-30 14:13:47 -0800
committerJeremy Allison <jra@samba.org>2012-01-31 00:47:19 +0100
commit1fdc96ecaff8ca12e9aa0082527468ad4242a8a9 (patch)
tree39f39751d0ab285149e80025eb2e82b3cc6635c2 /source3/client
parent56d5cb938651b9c67a8400d1adc61a23889a6a29 (diff)
downloadsamba-1fdc96ecaff8ca12e9aa0082527468ad4242a8a9.tar.gz
samba-1fdc96ecaff8ca12e9aa0082527468ad4242a8a9.tar.xz
samba-1fdc96ecaff8ca12e9aa0082527468ad4242a8a9.zip
Fix bug #8139 - smbclient fails if server does not support Echo request.
Based on work by Matthias Scheler <tron@NetBSD.org> Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Jan 31 00:47:19 CET 2012 on sn-devel-104
Diffstat (limited to 'source3/client')
-rw-r--r--source3/client/client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index 4b7df92877..9b36ff7098 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -5032,11 +5032,15 @@ static void readline_callback(void)
/* Ping the server to keep the connection alive using SMBecho. */
memset(garbage, 0xf0, sizeof(garbage));
status = cli_echo(cli, 1, data_blob_const(garbage, sizeof(garbage)));
- if (!NT_STATUS_IS_OK(status)) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_PIPE_BROKEN) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_END_OF_FILE) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
DEBUG(0, ("SMBecho failed (%s). Maybe server has closed "
"the connection\n", nt_errstr(status)));
finished = true;
smb_readline_done();
+ /* Ignore all other errors - sometimes servers simply
+ don't implement SMBecho (Apple for example). */
}
}