summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.h
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-03-31 17:40:30 -0700
committerJeremy Allison <jra@samba.org>2010-03-31 17:40:30 -0700
commit6800fdbb81130b79c2e077e9a7fcbe2d5e0813cb (patch)
treed2fcafbd48c8e07b02765a0863e4de03fbf447d6 /source3/smbd/globals.h
parentbb54089503907745a33a09cb27ead565d1205165 (diff)
downloadsamba-6800fdbb81130b79c2e077e9a7fcbe2d5e0813cb.tar.gz
samba-6800fdbb81130b79c2e077e9a7fcbe2d5e0813cb.tar.bz2
samba-6800fdbb81130b79c2e077e9a7fcbe2d5e0813cb.zip
Make smbd_lock_socket/smbd_unlock_socket recursive with a ref_count.
As these always call exit_server, make that part of the function. Use _internal functions for the echo client. Metze please check ! Jeremy.
Diffstat (limited to 'source3/smbd/globals.h')
-rw-r--r--source3/smbd/globals.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 6e5262a991..3b58cb4ef3 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -153,8 +153,8 @@ struct smbd_smb2_tcon;
DATA_BLOB negprot_spnego(void);
-bool smbd_lock_socket(struct smbd_server_connection *sconn);
-bool smbd_unlock_socket(struct smbd_server_connection *sconn);
+void smbd_lock_socket(struct smbd_server_connection *sconn);
+void smbd_unlock_socket(struct smbd_server_connection *sconn);
NTSTATUS smb2_signing_sign_pdu(DATA_BLOB session_key,
struct iovec *vector,
@@ -452,6 +452,12 @@ struct smbd_server_connection {
* fde for the trusted_fd
*/
struct fd_event *trusted_fde;
+
+ /*
+ * Reference count for the fcntl lock to
+ * allow recursive locks.
+ */
+ int ref_count;
} echo_handler;
uint64_t num_requests;