r416: add a newline to the debuglevel message returned string
authorHerb Lewis <herb@samba.org>
Thu, 29 Apr 2004 23:05:58 +0000 (23:05 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:22 +0000 (10:51 -0500)
and have smbcontrol print the PID with it
(This used to be commit d3edf71885bfb5d342e62d46542db8ca814f3303)

source3/lib/debug.c
source3/utils/smbcontrol.c

index 1a926053bb049b480d1335531cb9d22637eeb74f..fe4cd52a8b1ebd0029b5c368cda65851c5356ce9 100644 (file)
@@ -208,8 +208,8 @@ static char *debug_list_class_names_and_levels(void)
                dim += l;
        }
 
-       /* create single string list */
-       b = buf = malloc(dim);
+       /* create single string list - add space for newline */
+       b = buf = malloc(dim+1);
        if (!buf) {
                err = True;
                goto done;
@@ -219,7 +219,8 @@ static char *debug_list_class_names_and_levels(void)
                strncpy(b, list[i], l);
                b = b + l;
        }
-       b[-1] = '\0';
+       b[-1] = '\n'; /* replace last space with newline */
+       b[0] = '\0';  /* null terminate string */
 
 done:
        /* free strings list */
index 8a27684a4d377142cbef4a8d1b670dda42846148..2eb661c8b68b4e07d1efbfb9a174112b1967fcaa 100644 (file)
@@ -82,6 +82,14 @@ static void wait_replies(BOOL multiple_replies)
        } while (timeout - (time(NULL) - start_time) > 0);
 }
 
+/* Message handler callback that displays the PID and a string on stdout */
+
+static void print_pid_string_cb(int msg_type, pid_t pid, void *buf, size_t len)
+{
+       printf("PID %u: %.*s", (unsigned int)pid, (int)len, (const char *)buf);
+       num_replies++;
+}
+
 /* Message handler callback that displays a string on stdout */
 
 static void print_string_cb(int msg_type, pid_t pid, void *buf, size_t len)
@@ -281,7 +289,7 @@ static BOOL do_debuglevel(const pid_t pid, const int argc, const char **argv)
        if (!send_message(pid, MSG_REQ_DEBUGLEVEL, NULL, 0, False))
                return False;
 
-       message_register(MSG_DEBUGLEVEL, print_string_cb);
+       message_register(MSG_DEBUGLEVEL, print_pid_string_cb);
 
        wait_replies(pid == 0);