From: Jeremy Allison Date: Mon, 30 Jan 2012 22:13:47 +0000 (-0800) Subject: Fix bug #8139 - smbclient fails if server does not support Echo request. X-Git-Tag: tevent-0.9.15~141 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1fdc96ecaff8ca12e9aa0082527468ad4242a8a9;p=thirdparty%2Fsamba.git Fix bug #8139 - smbclient fails if server does not support Echo request. Based on work by Matthias Scheler Autobuild-User: Jeremy Allison Autobuild-Date: Tue Jan 31 00:47:19 CET 2012 on sn-devel-104 --- diff --git a/source3/client/client.c b/source3/client/client.c index 4b7df92877d..9b36ff7098b 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). */ } }