summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1997-11-18 23:30:49 +0000
committerJeremy Allison <jra@samba.org>1997-11-18 23:30:49 +0000
commit689ed3481d491e247fac8fb57a0bd78bfa216c2a (patch)
treeebf1cc98fcc575f6d785594788c7c24da2486dac /source3/smbd/trans2.c
parenteb97fc7d5a9e3285636d3c4cc0954115a8a5bc09 (diff)
downloadsamba-689ed3481d491e247fac8fb57a0bd78bfa216c2a.tar.gz
samba-689ed3481d491e247fac8fb57a0bd78bfa216c2a.tar.bz2
samba-689ed3481d491e247fac8fb57a0bd78bfa216c2a.zip
ipc.c: Changed reply_trans to use receive_next_smb() to cope
with local message processing. reply.c: Added check to reply_lockingX for chain after oplock break. server.c: Added receive_next_smb(). trans2.c: Changed reply_trans2 to use receive_next_smb() to cope with local message processing. (This used to be commit f4ae644e13f2c4479dfc94c77c0a8295edf54086)
Diffstat (limited to 'source3/smbd/trans2.c')
-rw-r--r--source3/smbd/trans2.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 6a7fc292fa..0ca678b768 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -30,6 +30,8 @@ extern connection_struct Connections[];
extern files_struct Files[];
extern BOOL case_sensitive;
extern int Client;
+extern int oplock_sock;
+extern int smb_read_error;
/****************************************************************************
Send the required number of replies back.
@@ -1702,11 +1704,19 @@ int reply_trans2(char *inbuf,char *outbuf,int length,int bufsize)
while( num_data_sofar < total_data || num_params_sofar < total_params)
{
- if(!receive_smb(Client,inbuf, SMB_SECONDARY_WAIT) ||
- CVAL(inbuf, smb_com) != SMBtranss2)
+ BOOL ret;
+
+ ret = receive_next_smb(Client,oplock_sock,inbuf,bufsize,
+ SMB_SECONDARY_WAIT);
+
+ if((ret && (CVAL(inbuf, smb_com) != SMBtranss2)) || !ret)
{
outsize = set_message(outbuf,0,0,True);
- DEBUG(2,("Invalid secondary trans2 packet\n"));
+ if(ret)
+ DEBUG(0,("reply_trans2: Invalid secondary trans2 packet\n"));
+ else
+ DEBUG(0,("reply_trans2: %s in getting secondary trans2 response.\n",
+ (smb_read_error == READ_ERROR) ? "error" : "timeout" ));
free(params);
free(data);
return(ERROR(ERRSRV,ERRerror));