[launchd-changes] [22919] trunk/launchd/src

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 25 18:18:09 PDT 2006


Revision: 22919
          http://trac.macosforge.org/projects/launchd/changeset/22919
Author:   zarzycki at apple.com
Date:     2006-10-25 18:18:08 -0700 (Wed, 25 Oct 2006)

Log Message:
-----------
Make the internal logging code accessible to jobs as private API.

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/launchd_mig_types.defs
    trunk/launchd/src/libvproc.c
    trunk/launchd/src/libvproc_internal.h
    trunk/launchd/src/libvproc_private.h
    trunk/launchd/src/protocol_job.defs

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/launchd_core_logic.c	2006-10-26 01:18:08 UTC (rev 22919)
@@ -3622,6 +3622,18 @@
 }
 
 kern_return_t
+job_mig_log(job_t j, int pri, int err, logmsg_t msg)
+{
+	if ((errno = err)) {
+		job_log_error(j, pri, "%s", msg);
+	} else {
+		job_log(j, pri, "%s", msg);
+	}
+
+	return 0;
+}
+
+kern_return_t
 job_mig_check_in(job_t j, name_t servicename, mach_port_t *serviceportp)
 {
 	static pid_t last_warned_pid = 0;

Modified: trunk/launchd/src/launchd_mig_types.defs
===================================================================
--- trunk/launchd/src/launchd_mig_types.defs	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/launchd_mig_types.defs	2006-10-26 01:18:08 UTC (rev 22919)
@@ -25,6 +25,7 @@
 
 type pid_t			= integer_t;
 type get_set_int_key_t		= integer_t;
+type logmsg_t			= c_string[*:2048];
 type cmd_t			= c_string[512];
 type cmd_array_t		= ^array [] of cmd_t;
 type name_t			= c_string[128];

Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc.c	2006-10-26 01:18:08 UTC (rev 22919)
@@ -27,6 +27,7 @@
 #include <mach/vm_map.h>
 #include <sys/param.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <errno.h>
 
 #include "liblaunch_public.h"
@@ -175,3 +176,34 @@
 
 	return (vproc_err_t)_vproc_set_global_on_demand;
 }
+
+static void
+_vproc_logv(int pri, int err, const char *msg, va_list ap)
+{
+	char flat_msg[3000];
+
+	snprintf(flat_msg, sizeof(flat_msg) - 1, msg, ap);
+	flat_msg[sizeof(flat_msg) - 1] = '\0';
+
+	vproc_mig_log(bootstrap_port, pri, err, flat_msg);
+}
+
+void
+_vproc_log(int pri, const char *msg, ...)
+{
+	va_list ap;
+
+	va_start(ap, msg);
+	_vproc_logv(pri, 0, msg, ap);
+	va_end(ap);
+}
+
+void
+_vproc_log_error(int pri, const char *msg, ...)
+{
+	va_list ap;
+
+	va_start(ap, msg);
+	_vproc_logv(pri, errno, msg, ap);
+	va_end(ap);
+}

Modified: trunk/launchd/src/libvproc_internal.h
===================================================================
--- trunk/launchd/src/libvproc_internal.h	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc_internal.h	2006-10-26 01:18:08 UTC (rev 22919)
@@ -24,6 +24,7 @@
 #include "libbootstrap_public.h"
 
 typedef char * _internal_string_t;
+typedef char * logmsg_t;
 typedef mach_port_t vproc_mig_t;
 typedef enum {
 	LAST_EXIT_STATUS = 1,

Modified: trunk/launchd/src/libvproc_private.h
===================================================================
--- trunk/launchd/src/libvproc_private.h	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc_private.h	2006-10-26 01:18:08 UTC (rev 22919)
@@ -30,6 +30,9 @@
 vproc_err_t _vproc_get_last_exit_status(int *wstatus);
 vproc_err_t _vproc_set_global_on_demand(bool val);
 
+void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+
 #pragma GCC visibility pop
 
 __END_DECLS

Modified: trunk/launchd/src/protocol_job.defs
===================================================================
--- trunk/launchd/src/protocol_job.defs	2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/protocol_job.defs	2006-10-26 01:18:08 UTC (rev 22919)
@@ -119,3 +119,9 @@
 		__bs_port	: job_t;
 		__key		: get_set_int_key_t;
 		__val		: int64_t);
+
+simpleroutine log(
+		__bs_port	: job_t;
+		__pri		: integer_t;
+		__err		: integer_t;
+		__msg		: logmsg_t);

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061025/db99f7ca/attachment.html


More information about the launchd-changes mailing list