[launchd-changes] [23630] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Wed May 21 16:25:50 PDT 2008
Revision: 23630
http://trac.macosforge.org/projects/launchd/changeset/23630
Author: zarzycki at apple.com
Date: 2008-05-21 16:25:49 -0700 (Wed, 21 May 2008)
Log Message:
-----------
Misc.
Modified Paths:
--------------
trunk/launchd/src/launchd_core_logic.c
trunk/launchd/src/reboot2.h
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2008-05-20 20:42:28 UTC (rev 23629)
+++ trunk/launchd/src/launchd_core_logic.c 2008-05-21 23:25:49 UTC (rev 23630)
@@ -388,7 +388,7 @@
unsigned int timeout;
unsigned int exit_timeout;
int stdout_err_fd;
- uint64_t sent_sigterm_time;
+ uint64_t sent_signal_time;
uint64_t start_time;
uint32_t min_run_time;
uint32_t start_interval;
@@ -632,7 +632,7 @@
}
}
- j->sent_sigterm_time = runtime_get_opaque_time();
+ j->sent_signal_time = runtime_get_opaque_time();
if (newval < 0) {
job_kill(j);
@@ -662,7 +662,7 @@
}
if (j->kill_via_shmem) {
- snprintf(extralog, sizeof(extralog), ": %d remaining transactions", j->shmem->vp_shmem_transaction_cnt + 1);
+ snprintf(extralog, sizeof(extralog), ": %d remaining transactions", newval + 1);
} else {
extralog[0] = '\0';
}
@@ -2403,13 +2403,13 @@
j->wait_reply_port = MACH_PORT_NULL;
}
- if (j->sent_sigterm_time) {
- uint64_t td_sec, td_usec, td = runtime_get_nanoseconds_since(j->sent_sigterm_time);
+ if (j->sent_signal_time) {
+ uint64_t td_sec, td_usec, td = runtime_get_nanoseconds_since(j->sent_signal_time);
td_sec = td / NSEC_PER_SEC;
td_usec = (td % NSEC_PER_SEC) / NSEC_PER_USEC;
- job_log(j, LOG_INFO, "Exited %lld.%06lld seconds after %s was sent", td_sec, td_usec, signal_to_C_name(SIGTERM));
+ job_log(j, LOG_INFO, "Exited %llu.%06llu seconds after the first signal was sent", td_sec, td_usec);
}
timeradd(&ru.ru_utime, &j->ru.ru_utime, &j->ru.ru_utime);
@@ -2448,6 +2448,7 @@
j->mgr->normal_active_cnt--;
}
j->last_exit_status = status;
+ j->sent_signal_time = 0;
j->sent_sigkill = false;
j->sampled = false;
j->sent_kill_via_shmem = false;
@@ -2707,7 +2708,7 @@
* with the long SIGKILL
*/
if (j->sent_sigkill) {
- uint64_t td = runtime_get_nanoseconds_since(j->sent_sigterm_time);
+ uint64_t td = runtime_get_nanoseconds_since(j->sent_signal_time);
td /= NSEC_PER_SEC;
td -= j->exit_timeout;
@@ -2889,8 +2890,6 @@
return;
}
- j->sent_sigterm_time = 0;
-
if (likely(!j->legacy_mach_job)) {
sipc = (!SLIST_EMPTY(&j->sockets) || !SLIST_EMPTY(&j->machservices));
}
@@ -5251,9 +5250,10 @@
int wstatus;
pid_t sp;
- if (j->sampled) {
+ if (j->sampled || j->per_user) {
return;
}
+
j->sampled = true;
if (!job_assumes(j, do_apple_internal_logging)) {
@@ -7039,12 +7039,17 @@
kern_return_t
job_mig_set_service_policy(job_t j, pid_t target_pid, uint64_t flags, name_t target_service)
{
+ struct ldcred *ldc = runtime_get_caller_creds();
job_t target_j;
if (!launchd_assumes(j != NULL)) {
return BOOTSTRAP_NO_MEMORY;
}
+ if (unlikely(ldc->euid || ldc->uid)) {
+ return BOOTSTRAP_NOT_PRIVILEGED;
+ }
+
if (unlikely(!SLIST_EMPTY(&j->mspolicies))) {
job_log(j, LOG_WARNING, "Jobs that have policies assigned to them may not set policies.");
return BOOTSTRAP_NOT_PRIVILEGED;
Modified: trunk/launchd/src/reboot2.h
===================================================================
--- trunk/launchd/src/reboot2.h 2008-05-20 20:42:28 UTC (rev 23629)
+++ trunk/launchd/src/reboot2.h 2008-05-21 23:25:49 UTC (rev 23630)
@@ -26,6 +26,8 @@
__BEGIN_DECLS
+#define RB2_FULLREBOOT 0x8000000000000000llu
+
/* Returns NULL on success. Not NULL on failure */
__attribute__((visibility("default"))) void *reboot2(uint64_t flags);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080521/197d379d/attachment.htm
More information about the launchd-changes
mailing list