Diff
Modified: trunk/launchd/src/launchd_core_logic.c (23099 => 23100)
--- trunk/launchd/src/launchd_core_logic.c 2007-02-22 23:31:44 UTC (rev 23099)
+++ trunk/launchd/src/launchd_core_logic.c 2007-02-22 23:38:57 UTC (rev 23100)
@@ -218,7 +218,6 @@
static void jobmgr_log_stray_children(jobmgr_t jm);
static void jobmgr_remove(jobmgr_t jm);
static void jobmgr_dispatch_all(jobmgr_t jm);
-static job_t jobmgr_new_anonymous(jobmgr_t jm);
static job_t job_mig_intran2(jobmgr_t jm, mach_port_t p);
static void job_export_all2(jobmgr_t jm, launch_data_t where);
static void jobmgr_callback(void *obj, struct kevent *kev);
@@ -911,11 +910,15 @@
}
job_t
-jobmgr_new_anonymous(jobmgr_t jm)
+jobmgr_get_anonymous(jobmgr_t jm)
{
char newlabel[1000], *procname = "unknown";
job_t jr;
+ if (jm->anonj) {
+ return jm->anonj;
+ }
+
snprintf(newlabel, sizeof(newlabel), "%u.anonymous", MACH_PORT_INDEX(jm->jm_port));
if ((jr = job_new(jm, newlabel, procname, NULL))) {
@@ -3474,7 +3477,7 @@
goto out_bad;
}
- jobmgr_assumes(jmr, (jmr->anonj = jobmgr_new_anonymous(jmr)) != NULL);
+ jobmgr_assumes(jmr, (jmr->anonj = jobmgr_get_anonymous(jmr)) != NULL);
bootstrapper = job_new(jmr, "com.apple.launchctld", NULL, bootstrap_tool);
Modified: trunk/launchd/src/launchd_core_logic.h (23099 => 23100)
--- trunk/launchd/src/launchd_core_logic.h 2007-02-22 23:31:44 UTC (rev 23099)
+++ trunk/launchd/src/launchd_core_logic.h 2007-02-22 23:38:57 UTC (rev 23100)
@@ -31,6 +31,7 @@
void jobmgr_init(bool);
jobmgr_t jobmgr_shutdown(jobmgr_t jm);
void jobmgr_dispatch_all_semaphores(jobmgr_t jm);
+job_t jobmgr_get_anonymous(jobmgr_t jm);
job_t jobmgr_find(jobmgr_t jm, const char *label);
jobmgr_t jobmgr_delete_anything_with_port(jobmgr_t jm, mach_port_t port);
bool jobmgr_ack_port_destruction(jobmgr_t jm, mach_port_t p);
Modified: trunk/launchd/src/launchd_unix_ipc.c (23099 => 23100)
--- trunk/launchd/src/launchd_unix_ipc.c 2007-02-22 23:31:44 UTC (rev 23099)
+++ trunk/launchd/src/launchd_unix_ipc.c 2007-02-22 23:38:57 UTC (rev 23100)
@@ -184,7 +184,7 @@
c->kqconn_callback = ipc_callback;
c->conn = launchd_fdopen(fd);
- c->j = j;
+ c->j = j ? j : jobmgr_get_anonymous(root_jobmgr);
SLIST_INSERT_HEAD(&connections, c, sle);
kevent_mod(fd, EVFILT_READ, EV_ADD, 0, 0, &c->kqconn_callback);
}
@@ -328,11 +328,7 @@
return;
}
- if (rmc->c->j) {
- job_log(rmc->c->j, LOG_DEBUG, "Unix IPC request: %s", cmd);
- } else {
- runtime_syslog(LOG_DEBUG, "Unix IPC request: %s", cmd);
- }
+ job_log(rmc->c->j, LOG_DEBUG, "Unix IPC request: %s", cmd);
if (data == NULL) {
if (!strcmp(cmd, LAUNCH_KEY_CHECKIN)) {