summaryrefslogtreecommitdiff
path: root/source3/smbd/server.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/server.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/server.c')
-rw-r--r--source3/smbd/server.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index d51c43c2f7..3f4f6c7034 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -3087,6 +3087,32 @@ oplock break response from pid %d on port %d for dev = %x, inode = %x.\n",
}
/****************************************************************************
+Get the next SMB packet, doing the local message processing automatically.
+****************************************************************************/
+
+BOOL receive_next_smb(int smbfd, int oplockfd, char *inbuf, int bufsize, int timeout)
+{
+ BOOL got_smb = False;
+ BOOL ret;
+
+ do
+ {
+ ret = receive_message_or_smb(smbfd,oplockfd,inbuf,bufsize,
+ timeout,&got_smb);
+
+ if(ret && !got_smb)
+ {
+ /* Deal with oplock break requests from other smbd's. */
+ process_local_message(oplock_sock, inbuf, bufsize);
+ continue;
+ }
+ }
+ while(ret && !got_smb);
+
+ return ret;
+}
+
+/****************************************************************************
check if a snum is in use
****************************************************************************/
BOOL snum_used(int snum)