[PATCHES] Two small patches for messaging in smbd parent process

Christof Schmitt cs at samba.org
Fri Jun 27 11:08:54 MDT 2014


>From e53efde519ae495ae420a914ec4f170e0fae74c0 Mon Sep 17 00:00:00 2001
From: Christof Schmitt <cs at samba.org>
Date: Thu, 26 Jun 2014 14:50:38 -0700
Subject: [PATCH 1/2] smbd: Use common function for FORCE_DIS and KILL_CLIENT_IP in parent

The parent smbd process only forwards the message to the child
processes. Use a common function instead of two separate ones that do
the same thing.

Signed-off-by: Christof Schmitt <cs at samba.org>
---
 source3/smbd/server.c |   33 +++++++++++----------------------
 1 files changed, 11 insertions(+), 22 deletions(-)

diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 40684ad..0b54bc7 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -216,6 +216,15 @@ NTSTATUS messaging_send_to_children(struct messaging_context *msg_ctx,
 	return NT_STATUS_OK;
 }
 
+static void smb_parent_send_to_children(struct messaging_context *ctx,
+					void* data,
+					uint32_t msg_type,
+					struct server_id srv_id,
+					DATA_BLOB* msg_data)
+{
+	messaging_send_to_children(ctx, msg_type, msg_data);
+}
+
 /*
  * Parent smbd process sets its own debug level first and then
  * sends a message to all the smbd children to adjust their debug
@@ -361,26 +370,6 @@ static void smbd_parent_notify_proxy_done(struct tevent_req *req)
 	DEBUG(1, ("notify proxy job ended with %s\n", strerror(ret)));
 }
 
-static void smb_parent_force_tdis(struct messaging_context *ctx,
-				  void* data,
-				  uint32_t msg_type,
-				  struct server_id srv_id,
-				  DATA_BLOB* msg_data)
-{
-	messaging_send_to_children(ctx, msg_type, msg_data);
-}
-
-static void smb_parent_kill_client_by_ip(struct messaging_context *ctx,
-					 void *data,
-					 uint32_t msg_type,
-					 struct server_id srv_id,
-					 DATA_BLOB* msg_data)
-{
-	if (am_parent) {
-		messaging_send_to_children(ctx, msg_type, msg_data);
-	}
-}
-
 static void add_child_pid(struct smbd_parent_context *parent,
 			  pid_t pid)
 {
@@ -910,9 +899,9 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 	messaging_register(msg_ctx, NULL, MSG_SMB_BRL_VALIDATE,
 			   brl_revalidate);
 	messaging_register(msg_ctx, NULL, MSG_SMB_FORCE_TDIS,
-			   smb_parent_force_tdis);
+			   smb_parent_send_to_children);
 	messaging_register(msg_ctx, NULL, MSG_SMB_KILL_CLIENT_IP,
-			   smb_parent_kill_client_by_ip);
+			   smb_parent_send_to_children);
 	messaging_register(msg_ctx, NULL, MSG_SMB_TELL_NUM_CHILDREN,
 			   smb_tell_num_children);
 
-- 
1.7.1


>From 4762b50a162e5187baeb80a4deee7ad35ad5ad4a Mon Sep 17 00:00:00 2001
From: Christof Schmitt <cs at samba.org>
Date: Thu, 26 Jun 2014 14:51:23 -0700
Subject: [PATCH 2/2] smbd: Make messaging_send_to_children static

This function is only used in server.c

Signed-off-by: Christof Schmitt <cs at samba.org>
---
 source3/smbd/proto.h  |    2 --
 source3/smbd/server.c |    4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h
index b25ef7b..ea2f022 100644
--- a/source3/smbd/proto.h
+++ b/source3/smbd/proto.h
@@ -961,8 +961,6 @@ void delete_and_reload_printers(struct tevent_context *ev,
 bool reload_services(struct smbd_server_connection *sconn,
 		     bool (*snumused) (struct smbd_server_connection *, int),
 		     bool test);
-NTSTATUS messaging_send_to_children(struct messaging_context *msg_ctx,
-				    uint32_t msg_type, DATA_BLOB* data);
 
 /* The following definitions come from smbd/server_exit.c  */
 
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 0b54bc7..bafd493 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -194,8 +194,8 @@ static void msg_inject_fault(struct messaging_context *msg,
 }
 #endif /* DEVELOPER */
 
-NTSTATUS messaging_send_to_children(struct messaging_context *msg_ctx,
-				    uint32_t msg_type, DATA_BLOB* data)
+static NTSTATUS messaging_send_to_children(struct messaging_context *msg_ctx,
+					   uint32_t msg_type, DATA_BLOB* data)
 {
 	NTSTATUS status;
 	struct smbd_parent_context *parent = am_parent;
-- 
1.7.1



More information about the samba-technical mailing list