<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[23127] trunk/launchd/src</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.macosforge.org/projects/launchd/changeset/23127">23127</a></dd>
<dt>Author</dt> <dd>zarzycki@apple.com</dd>
<dt>Date</dt> <dd>2007-03-03 17:28:51 -0800 (Sat, 03 Mar 2007)</dd>
</dl>

<h3>Log Message</h3>
<pre>&lt;rdar://problem/4890134&gt; private API (on behalf of seatbelt) request: do bootstrap lookup of X in user Y's context</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunklaunchdsrclibbootstrapc">trunk/launchd/src/libbootstrap.c</a></li>
<li><a href="#trunklaunchdsrclibbootstrap_privateh">trunk/launchd/src/libbootstrap_private.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunklaunchdsrclibbootstrapc"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/libbootstrap.c (23126 => 23127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/libbootstrap.c        2007-03-04 00:13:12 UTC (rev 23126)
+++ trunk/launchd/src/libbootstrap.c        2007-03-04 01:28:51 UTC (rev 23127)
</span><span class="lines">@@ -27,6 +27,10 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;mach/mach.h&gt;
</span><span class="cx"> #include &lt;mach/vm_map.h&gt;
</span><ins>+#include &lt;sys/types.h&gt;
+#include &lt;sys/syslog.h&gt;
+#include &lt;sys/stat.h&gt;
+#include &lt;pthread.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;protocol_vproc.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -100,6 +104,28 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> kern_return_t
</span><ins>+bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp)
+{
+        struct stat sb;
+        kern_return_t kr;
+        mach_port_t puc;
+
+        if (!pthread_main_np() &amp;&amp; (stat(&quot;/AppleInternal&quot;, &amp;sb) != -1)) {
+                _vproc_log(LOG_WARNING, &quot;Please review the comments in 4890134.&quot;);
+        }
+
+        if ((kr = vproc_mig_lookup_per_user_context(bp, target_user, &amp;puc)) != 0) {
+                return kr;
+        }
+
+        kr = vproc_mig_look_up2(puc, service_name, sp, 0, 0);
+        mach_port_deallocate(mach_task_self(), puc);
+
+        return kr;
+}
+
+
+kern_return_t
</ins><span class="cx"> bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp)
</span><span class="cx"> {
</span><span class="cx">         return bootstrap_look_up2(bp, service_name, sp, 0, 0);
</span></span></pre></div>
<a id="trunklaunchdsrclibbootstrap_privateh"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/libbootstrap_private.h (23126 => 23127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/libbootstrap_private.h        2007-03-04 00:13:12 UTC (rev 23126)
+++ trunk/launchd/src/libbootstrap_private.h        2007-03-04 01:28:51 UTC (rev 23127)
</span><span class="lines">@@ -33,6 +33,8 @@
</span><span class="cx"> 
</span><span class="cx"> kern_return_t bootstrap_look_up2(mach_port_t bp, name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags);
</span><span class="cx"> 
</span><ins>+kern_return_t bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp);
+
</ins><span class="cx"> #pragma GCC visibility pop
</span><span class="cx"> 
</span><span class="cx"> __END_DECLS
</span></span></pre>
</div>
</div>

</body>
</html>