Revision: 23100 http://trac.macosforge.org/projects/launchd/changeset/23100 Author: zarzycki@apple.com Date: 2007-02-22 15:38:57 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Ensure that c->j is always set. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_core_logic.h trunk/launchd/src/launchd_unix_ipc.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- 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 =================================================================== --- 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 =================================================================== --- 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)) {
participants (1)
-
source_changes@macosforge.org