From 478ccc150ba3b8c87ac67769c46be20a73d14096 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 16 May 2007 17:17:25 +0000 Subject: r22950: Fix the issue Volker reported here : "Attempt to fix some build farm failures: On port 139 the first successful packet gives len==0 from the server, so the = in if (len <= 0) { in line 136 of clientgen.c throws a failure." The irritating thing is that I already had it correct in SAMBA_3_0_26 and forgot to merge the change across. len == 0 is a valid return - I messed that up when converting client_receive_smb() to return a length rather than a BOOL. Doh ! Jeremy. (This used to be commit a398bdf08d9efac51af28aed29f2c0f151cd5aad) --- source3/libsmb/cliconnect.c | 2 +- source3/libsmb/clientgen.c | 28 +--------------------------- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index f13aa21fbd..86834ad081 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -1347,7 +1347,7 @@ BOOL cli_session_request(struct cli_state *cli, cli_send_smb(cli); DEBUG(5,("Sent session request\n")); - if (!cli_receive_sessionreply(cli)) + if (!cli_receive_smb(cli)) return False; if (CVAL(cli->inbuf,0) == 0x84) { diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index ef74de9f4b..43211a6c5a 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -133,7 +133,7 @@ BOOL cli_receive_smb_internal(struct cli_state *cli, BOOL eat_keepalives) } /* If the server is not responding, note that now */ - if (len <= 0) { + if (len < 0) { DEBUG(0, ("Receiving SMB: Server stopped responding\n")); cli->smb_rw_error = smb_read_error; close(cli->fd); @@ -190,32 +190,6 @@ BOOL cli_receive_smb_return_keepalive(struct cli_state *cli) return cli_receive_smb_internal(cli, False); } -/**************************************************************************** - Recv an smb session reply -****************************************************************************/ - -BOOL cli_receive_sessionreply(struct cli_state *cli) -{ - ssize_t len; - - /* fd == -1 causes segfaults -- Tom (tom@ninja.nl) */ - if (cli->fd == -1) - return False; - - len = client_receive_smb(cli, False, 0); - - /* If the server is not responding, note that now */ - if (len < 0) { - DEBUG(0, ("Receiving SMB: Server stopped responding\n")); - cli->smb_rw_error = smb_read_error; - close(cli->fd); - cli->fd = -1; - return False; - } - - return True; -} - /**************************************************************************** Read the data portion of a readX smb. The timeout is in milliseconds -- cgit