Author: jra Date: 2007-05-16 17:17:25 +0000 (Wed, 16 May 2007) New Revision: 22950
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22950 Log: 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. Modified: branches/SAMBA_3_0/source/libsmb/cliconnect.c branches/SAMBA_3_0/source/libsmb/clientgen.c Changeset: Modified: branches/SAMBA_3_0/source/libsmb/cliconnect.c =================================================================== --- branches/SAMBA_3_0/source/libsmb/cliconnect.c 2007-05-16 15:48:22 UTC (rev 22949) +++ branches/SAMBA_3_0/source/libsmb/cliconnect.c 2007-05-16 17:17:25 UTC (rev 22950) @@ -1347,7 +1347,7 @@ 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) { Modified: branches/SAMBA_3_0/source/libsmb/clientgen.c =================================================================== --- branches/SAMBA_3_0/source/libsmb/clientgen.c 2007-05-16 15:48:22 UTC (rev 22949) +++ branches/SAMBA_3_0/source/libsmb/clientgen.c 2007-05-16 17:17:25 UTC (rev 22950) @@ -133,7 +133,7 @@ } /* 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); @@ -191,32 +191,6 @@ } /**************************************************************************** - Recv an smb session reply -****************************************************************************/ - -BOOL cli_receive_sessionreply(struct cli_state *cli) -{ - ssize_t len; - - /* fd == -1 causes segfaults -- Tom ([EMAIL PROTECTED]) */ - 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 ****************************************************************************/
