[launchd-changes] [23131] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Sun Mar 4 15:59:53 PST 2007
Revision: 23131
http://trac.macosforge.org/projects/launchd/changeset/23131
Author: zarzycki at apple.com
Date: 2007-03-04 15:59:52 -0800 (Sun, 04 Mar 2007)
Log Message:
-----------
<rdar://problem/4421331> Per session launchd deployment for CLI / PAM sessions
Modified Paths:
--------------
trunk/launchd/src/liblaunch.c
trunk/launchd/src/libvproc.c
trunk/launchd/src/libvproc_internal.h
trunk/launchd/src/libvproc_private.h
Modified: trunk/launchd/src/liblaunch.c
===================================================================
--- trunk/launchd/src/liblaunch.c 2007-03-04 23:38:21 UTC (rev 23130)
+++ trunk/launchd/src/liblaunch.c 2007-03-04 23:59:52 UTC (rev 23131)
@@ -40,6 +40,7 @@
#include "libbootstrap_public.h"
#include "libvproc_public.h"
+#include "libvproc_private.h"
#include "libvproc_internal.h"
/* __OSBogusByteSwap__() must not really exist in the symbol namespace
@@ -1163,7 +1164,7 @@
void
load_launchd_jobs_at_loginwindow_prompt(int flags __attribute__((unused)), ...)
{
- _vproc_move_subset_to_user("LoginWindow");
+ _vprocmgr_move_subset_to_user(geteuid() ? geteuid() : getuid(), "LoginWindow");
}
pid_t
@@ -1171,8 +1172,9 @@
{
mach_port_t bezel_ui_server;
struct stat sb;
+ uid_t target_user = geteuid() ? geteuid() : getuid();
- if (_vproc_move_subset_to_user("Aqua")) {
+ if (_vprocmgr_move_subset_to_user(target_user, "Aqua")) {
return -1;
}
@@ -1181,7 +1183,7 @@
#define BEZEL_UI_SERVICE "BezelUI"
if (!(stat(BEZEL_UI_PLIST, &sb) == 0 && S_ISREG(sb.st_mode))) {
- if (bootstrap_create_server(bootstrap_port, BEZEL_UI_PATH, 0, true, &bezel_ui_server) == BOOTSTRAP_SUCCESS) {
+ if (bootstrap_create_server(bootstrap_port, BEZEL_UI_PATH, target_user, true, &bezel_ui_server) == BOOTSTRAP_SUCCESS) {
mach_port_t srv;
if (bootstrap_create_service(bezel_ui_server, BEZEL_UI_SERVICE, &srv) == BOOTSTRAP_SUCCESS) {
Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c 2007-03-04 23:38:21 UTC (rev 23130)
+++ trunk/launchd/src/libvproc.c 2007-03-04 23:59:52 UTC (rev 23131)
@@ -47,12 +47,12 @@
}
vproc_err_t
-_vproc_move_subset_to_user(char *session_type)
+_vprocmgr_move_subset_to_user(uid_t target_user, char *session_type)
{
kern_return_t kr = 1;
mach_port_t puc = 0, which_port = bootstrap_port;
- if ((getuid() || geteuid()) && vproc_mig_lookup_per_user_context(bootstrap_port, 0, &puc) == 0) {
+ if (target_user && vproc_mig_lookup_per_user_context(bootstrap_port, target_user, &puc) == 0) {
which_port = puc;
}
@@ -62,7 +62,7 @@
mach_port_deallocate(mach_task_self(), puc);
}
- return kr == 0 ? NULL : (vproc_err_t)_vproc_move_subset_to_user;
+ return kr == 0 ? NULL : (vproc_err_t)_vprocmgr_move_subset_to_user;
}
Modified: trunk/launchd/src/libvproc_internal.h
===================================================================
--- trunk/launchd/src/libvproc_internal.h 2007-03-04 23:38:21 UTC (rev 23130)
+++ trunk/launchd/src/libvproc_internal.h 2007-03-04 23:59:52 UTC (rev 23131)
@@ -57,8 +57,6 @@
kern_return_t _vprocmgr_getsocket(name_t);
-vproc_err_t _vproc_move_subset_to_user(char *session_type);
-
void _vproc_logv(int pri, int err, const char *msg, va_list ap);
kern_return_t
Modified: trunk/launchd/src/libvproc_private.h
===================================================================
--- trunk/launchd/src/libvproc_private.h 2007-03-04 23:38:21 UTC (rev 23130)
+++ trunk/launchd/src/libvproc_private.h 2007-03-04 23:59:52 UTC (rev 23131)
@@ -20,6 +20,7 @@
* @APPLE_APACHE_LICENSE_HEADER_END@
*/
+#include <sys/types.h>
#include <sys/cdefs.h>
#include <sys/syslog.h>
#include <stdbool.h>
@@ -34,6 +35,8 @@
void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, char *session_type);
+
#pragma GCC visibility pop
__END_DECLS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070304/1222fa7b/attachment.html
More information about the launchd-changes
mailing list