r22900: Convert profile/ to messaging_send_pid/messaging_register
authorVolker Lendecke <vlendec@samba.org>
Tue, 15 May 2007 12:18:17 +0000 (12:18 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:22:05 +0000 (12:22 -0500)
(This used to be commit edbeea520727f51568ccd8ffa802e06bd120794c)

source3/profile/profile.c
source3/smbd/server.c
source3/utils/status_profile.c

index c4136950a5bf6b4697d11ca62ad2d87b7c2f8088..257b0abba534043939fdf4f2a3deef3a4f80100f 100644 (file)
@@ -93,20 +93,31 @@ void set_profile_level(int level, struct server_id src)
 /****************************************************************************
 receive a set profile level message
 ****************************************************************************/
-void profile_message(int msg_type, struct server_id src, void *buf, size_t len,
-                    void *private_data)
+static void profile_message(struct messaging_context *msg_ctx,
+                           void *private_data,
+                           uint32_t msg_type,
+                           struct server_id src,
+                           DATA_BLOB *data)
 {
         int level;
 
-       memcpy(&level, buf, sizeof(int));
+       if (data->length != sizeof(level)) {
+               DEBUG(0, ("got invalid profile message\n"));
+               return;
+       }
+
+       memcpy(&level, data->data, sizeof(level));
        set_profile_level(level, src);
 }
 
 /****************************************************************************
 receive a request profile level message
 ****************************************************************************/
-void reqprofile_message(int msg_type, struct server_id src,
-                       void *buf, size_t len, void *private_data)
+static void reqprofile_message(struct messaging_context *msg_ctx,
+                              void *private_data, 
+                              uint32_t msg_type, 
+                              struct server_id src,
+                              DATA_BLOB *data)
 {
         int level;
 
@@ -117,7 +128,8 @@ void reqprofile_message(int msg_type, struct server_id src,
 #endif
        DEBUG(1,("INFO: Received REQ_PROFILELEVEL message from PID %u\n",
                 (unsigned int)procid_to_pid(&src)));
-       message_send_pid(src, MSG_PROFILELEVEL, &level, sizeof(int), True);
+       messaging_send_buf(msg_ctx, src, MSG_PROFILELEVEL,
+                          (uint8 *)&level, sizeof(level));
 }
 
 /*******************************************************************
@@ -184,7 +196,7 @@ static void init_clock_gettime(void)
 }
 #endif
 
-BOOL profile_setup(BOOL rdonly)
+BOOL profile_setup(struct messaging_context *msg_ctx, BOOL rdonly)
 {
        struct shmid_ds shm_ds;
 
@@ -238,7 +250,7 @@ BOOL profile_setup(BOOL rdonly)
        }
 
        if (shm_ds.shm_segsz != sizeof(*profile_h)) {
-               DEBUG(0,("WARNING: profile size is %d (expected %lu). Deleting\n",
+               DEBUG(0,("WARNING: profile size is %d (expected %d). Deleting\n",
                         (int)shm_ds.shm_segsz, sizeof(*profile_h)));
                if (shmctl(shm_id, IPC_RMID, &shm_ds) == 0) {
                        goto again;
@@ -255,8 +267,12 @@ BOOL profile_setup(BOOL rdonly)
        }
 
        profile_p = &profile_h->stats;
-       message_register(MSG_PROFILE, profile_message, NULL);
-       message_register(MSG_REQ_PROFILELEVEL, reqprofile_message, NULL);
+       if (msg_ctx != NULL) {
+               messaging_register(msg_ctx, NULL, MSG_PROFILE,
+                                  profile_message);
+               messaging_register(msg_ctx, NULL, MSG_REQ_PROFILELEVEL,
+                                  reqprofile_message);
+       }
        return True;
 }
 
index 9cdc083bf63d6d710ef74ecd3ff206175905d12b..ca54b2471d199fa9a0a73dce9388aca84d3d28be 100644 (file)
@@ -917,7 +917,7 @@ extern void build_options(BOOL screen);
        init_structs();
 
 #ifdef WITH_PROFILE
-       if (!profile_setup(False)) {
+       if (!profile_setup(smbd_messaging_context(), False)) {
                DEBUG(0,("ERROR: failed to setup profiling\n"));
                return -1;
        }
index b4c4940f3fd5b817d5e7c328b0fd44ab12f543e6..cc7feec2d83b9ad3502b0083b79867fbff144e5d 100644 (file)
@@ -47,7 +47,7 @@ static void profile_separator(const char * title)
 BOOL status_profile_dump(BOOL verbose)
 {
 #ifdef WITH_PROFILE
-       if (!profile_setup(True)) {
+       if (!profile_setup(NULL, True)) {
                fprintf(stderr,"Failed to initialise profile memory\n");
                return False;
        }
@@ -487,7 +487,7 @@ BOOL status_profile_rates(BOOL verbose)
                    usec_to_sec(sample_interval_usec));
        }
 
-       if (!profile_setup(True)) {
+       if (!profile_setup(NULL, True)) {
                fprintf(stderr,"Failed to initialise profile memory\n");
                return False;
        }