Revision: 23127 http://trac.macosforge.org/projects/launchd/changeset/23127 Author: zarzycki@apple.com Date: 2007-03-03 17:28:51 -0800 (Sat, 03 Mar 2007) Log Message: ----------- <rdar://problem/4890134> private API (on behalf of seatbelt) request: do bootstrap lookup of X in user Y's context Modified Paths: -------------- trunk/launchd/src/libbootstrap.c trunk/launchd/src/libbootstrap_private.h Modified: trunk/launchd/src/libbootstrap.c =================================================================== --- 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) @@ -27,6 +27,10 @@ #include <mach/mach.h> #include <mach/vm_map.h> +#include <sys/types.h> +#include <sys/syslog.h> +#include <sys/stat.h> +#include <pthread.h> #include "protocol_vproc.h" @@ -100,6 +104,28 @@ } kern_return_t +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() && (stat("/AppleInternal", &sb) != -1)) { + _vproc_log(LOG_WARNING, "Please review the comments in 4890134."); + } + + if ((kr = vproc_mig_lookup_per_user_context(bp, target_user, &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 bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp) { return bootstrap_look_up2(bp, service_name, sp, 0, 0); Modified: trunk/launchd/src/libbootstrap_private.h =================================================================== --- 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) @@ -33,6 +33,8 @@ 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); +kern_return_t bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp); + #pragma GCC visibility pop __END_DECLS
participants (1)
-
source_changes@macosforge.org