diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-01-30 22:22:06 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:32 -0500 |
commit | caf8c6a76be051559ffcfe97084edca43e0a3cee (patch) | |
tree | cbab678e47d5174ba24bca915e47992e2b8d8206 /source3/smbd/blocking.c | |
parent | cb916d33f534aef5e3527c41555d32c319345fef (diff) | |
download | samba-caf8c6a76be051559ffcfe97084edca43e0a3cee.tar.gz samba-caf8c6a76be051559ffcfe97084edca43e0a3cee.tar.bz2 samba-caf8c6a76be051559ffcfe97084edca43e0a3cee.zip |
r21064: The core of this patch is
void message_register(int msg_type,
void (*fn)(int msg_type, struct process_id pid,
- void *buf, size_t len))
+ void *buf, size_t len,
+ void *private_data),
+ void *private_data)
{
struct dispatch_fns *dfn;
So this adds a (so far unused) private pointer that is passed from
message_register to the message handler. A prerequisite to implement a tiny
samba4-API compatible wrapper around our messaging system. That itself is
necessary for the Samba4 notify system.
Yes, I know, I could import the whole Samba4 messaging system, but I want to
do it step by step and I think getting notify in is more important in this
step.
Volker
(This used to be commit c8ae60ed65dcce9660ee39c75488f2838cf9a28b)
Diffstat (limited to 'source3/smbd/blocking.c')
-rw-r--r-- | source3/smbd/blocking.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/smbd/blocking.c b/source3/smbd/blocking.c index e0478fa762..70b2d30aab 100644 --- a/source3/smbd/blocking.c +++ b/source3/smbd/blocking.c @@ -71,7 +71,8 @@ static BOOL in_chained_smb(void) } static void received_unlock_msg(int msg_type, struct process_id src, - void *buf, size_t len); + void *buf, size_t len, + void *private_data); /**************************************************************************** Function to push a blocking lock request onto the lock queue. @@ -154,7 +155,8 @@ BOOL push_blocking_lock_request( struct byte_range_lock *br_lck, /* Ensure we'll receive messages when this is unlocked. */ if (!set_lock_msg) { - message_register(MSG_SMB_UNLOCK, received_unlock_msg); + message_register(MSG_SMB_UNLOCK, received_unlock_msg, + NULL); set_lock_msg = True; } @@ -581,7 +583,8 @@ BOOL blocking_lock_was_deferred(int mid) *****************************************************************************/ static void received_unlock_msg(int msg_type, struct process_id src, - void *buf, size_t len) + void *buf, size_t len, + void *private_data) { DEBUG(10,("received_unlock_msg\n")); process_blocking_lock_queue(); @@ -775,8 +778,10 @@ void process_blocking_lock_queue(void) #define MSG_BLOCKING_LOCK_CANCEL_SIZE (sizeof(blocking_lock_record *) + sizeof(NTSTATUS)) -static void process_blocking_lock_cancel_message(int msg_type, struct process_id src, - void *buf, size_t len) +static void process_blocking_lock_cancel_message(int msg_type, + struct process_id src, + void *buf, size_t len, + void *private_data) { NTSTATUS err; const char *msg = (const char *)buf; @@ -822,7 +827,8 @@ BOOL blocking_lock_cancel(files_struct *fsp, if (!initialized) { /* Register our message. */ message_register(MSG_SMB_BLOCKING_LOCK_CANCEL, - process_blocking_lock_cancel_message); + process_blocking_lock_cancel_message, + NULL); initialized = True; } |