[launchd-changes] [23280] trunk/launchd/src/launchd_core_logic.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Jun 18 14:05:31 PDT 2007


Revision: 23280
          http://trac.macosforge.org/projects/launchd/changeset/23280
Author:   zarzycki at apple.com
Date:     2007-06-18 14:05:29 -0700 (Mon, 18 Jun 2007)

Log Message:
-----------
<rdar://problem/5240036> Should start background session when a lookup of CCacheServer occurs

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-06-18 17:39:59 UTC (rev 23279)
+++ trunk/launchd/src/launchd_core_logic.c	2007-06-18 21:05:29 UTC (rev 23280)
@@ -5277,6 +5277,14 @@
 		job_log(j, LOG_DEBUG, "Mach service lookup forwarded: %s", servicename);
 		*ptype = MACH_MSG_TYPE_MOVE_SEND;
 		kr = bootstrap_look_up(inherited_bootstrap_port, servicename, serviceportp);
+	} else if (getpid() == 1 && j->anonymous && ldc.euid != 0 && strcasecmp(job_get_bs(j)->name, VPROCMGR_SESSION_LOGINWINDOW) == 0) {
+		/*
+		 * 5240036 Should start background session when a lookup of CCacheServer occurs
+		 *
+		 * This is a total hack. We sniff out loginwindow session, and attempt to guess what it is up to.
+		 * If we find a EUID that isn't root, we force it over to the per-user context.
+		 */
+		return VPROC_ERR_TRY_PER_USER;
 	} else {
 		job_log(j, LOG_DEBUG, "%sMach service lookup failed: %s", flags & BOOTSTRAP_PER_PID_SERVICE ? "Per PID " : "", servicename);
 		kr = BOOTSTRAP_UNKNOWN_SERVICE;

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


More information about the launchd-changes mailing list