diff options
author | Jeremy Allison <jra@samba.org> | 1997-11-18 23:30:49 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1997-11-18 23:30:49 +0000 |
commit | 689ed3481d491e247fac8fb57a0bd78bfa216c2a (patch) | |
tree | ebf1cc98fcc575f6d785594788c7c24da2486dac /source3/smbd/ipc.c | |
parent | eb97fc7d5a9e3285636d3c4cc0954115a8a5bc09 (diff) | |
download | samba-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/ipc.c')
-rw-r--r-- | source3/smbd/ipc.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c index 741290d2a2..c862ff3b38 100644 --- a/source3/smbd/ipc.c +++ b/source3/smbd/ipc.c @@ -62,6 +62,8 @@ extern fstring myworkgroup; #define QNLEN 12 /* queue name maximum length */ extern int Client; +extern int oplock_sock; +extern int smb_read_error; static BOOL api_Unsupported(int cnum,uint16 vuid, char *param,char *data, int mdrcnt,int mprcnt, @@ -3203,7 +3205,7 @@ static int named_pipe(int cnum,uint16 vuid, char *outbuf,char *name, /**************************************************************************** reply to a SMBtrans ****************************************************************************/ -int reply_trans(char *inbuf,char *outbuf) +int reply_trans(char *inbuf,char *outbuf, int size, int bufsize) { fstring name; @@ -3266,12 +3268,18 @@ int reply_trans(char *inbuf,char *outbuf) /* receive the rest of the trans packet */ while (pscnt < tpscnt || dscnt < tdscnt) { + BOOL ret; int pcnt,poff,dcnt,doff,pdisp,ddisp; - if (!receive_smb(Client,inbuf, SMB_SECONDARY_WAIT) || - CVAL(inbuf, smb_com) != SMBtrans) + ret = receive_next_smb(Client,oplock_sock,inbuf,bufsize,SMB_SECONDARY_WAIT); + + if ((ret && (CVAL(inbuf, smb_com) != SMBtrans)) || !ret) { - DEBUG(2,("Invalid secondary trans2 packet\n")); + if(ret) + DEBUG(0,("reply_trans: Invalid secondary trans packet\n")); + else + DEBUG(0,("reply_trans: %s in getting secondary trans response.\n", + (smb_read_error == READ_ERROR) ? "error" : "timeout" )); if (params) free(params); if (data) free(data); if (setup) free(setup); |