summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2006-11-01 10:28:49 +1100
committerDarren Tucker <dtucker@zip.com.au>2006-11-01 10:28:49 +1100
commit4d13ecea54da655dd87152752f332f25785a1e18 (patch)
tree79db3c222d094f6068b07f8b63583b6b641c773e
parent796c6c693d1eaed63fe334c98b109a2ada15f505 (diff)
- (dtucker) [openbsd-compat/port-solaris.c] Bug #1255: Make only hwerr
events fatal in Solaris process contract support and tell it to signal only processes in the same process group when something happens. Based on information from andrew.benham at thus.net and similar to a patch from Chad Mynhier. ok djm@
-rw-r--r--ChangeLog9
-rw-r--r--openbsd-compat/port-solaris.c19
2 files changed, 22 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index cd99664cd..d02ba367e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
120061101
2 - (dtucker) [openbsd-compat/port-solaris.c] Bug #1255: Make only hwerr
3 events fatal in Solaris process contract support and tell it to signal
4 only processes in the same process group when something happens.
5 Based on information from andrew.benham at thus.net and similar to
6 a patch from Chad Mynhier. ok djm@
7
120061027 820061027
2- (djm) [auth.c] gc some dead code 9- (djm) [auth.c] gc some dead code
3 10
@@ -2571,4 +2578,4 @@
2571 OpenServer 6 and add osr5bigcrypt support so when someone migrates 2578 OpenServer 6 and add osr5bigcrypt support so when someone migrates
2572 passwords between UnixWare and OpenServer they will still work. OK dtucker@ 2579 passwords between UnixWare and OpenServer they will still work. OK dtucker@
2573 2580
2574$Id: ChangeLog,v 1.4580 2006/10/27 15:10:15 djm Exp $ 2581$Id: ChangeLog,v 1.4581 2006/10/31 23:28:49 dtucker Exp $
diff --git a/openbsd-compat/port-solaris.c b/openbsd-compat/port-solaris.c
index f57433e78..2ab64d487 100644
--- a/openbsd-compat/port-solaris.c
+++ b/openbsd-compat/port-solaris.c
@@ -1,4 +1,4 @@
1/* $Id: port-solaris.c,v 1.2 2006/09/01 05:38:41 djm Exp $ */ 1/* $Id: port-solaris.c,v 1.3 2006/10/31 23:28:49 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006 Chad Mynhier. 4 * Copyright (c) 2006 Chad Mynhier.
@@ -86,18 +86,27 @@ solaris_contract_pre_fork(void)
86 debug2("%s: setting up process contract template on fd %d", 86 debug2("%s: setting up process contract template on fd %d",
87 __func__, tmpl_fd); 87 __func__, tmpl_fd);
88 88
89 /* We have to set certain attributes before activating the template */ 89 /* First we set the template parameters and event sets. */
90 if (ct_pr_tmpl_set_fatal(tmpl_fd, 90 if (ct_pr_tmpl_set_param(tmpl_fd, CT_PR_PGRPONLY) != 0) {
91 CT_PR_EV_HWERR|CT_PR_EV_SIGNAL|CT_PR_EV_CORE) != 0) { 91 error("%s: Error setting process contract parameter set "
92 "(pgrponly): %s", __func__, strerror(errno));
93 goto fail;
94 }
95 if (ct_pr_tmpl_set_fatal(tmpl_fd, CT_PR_EV_HWERR) != 0) {
92 error("%s: Error setting process contract template " 96 error("%s: Error setting process contract template "
93 "fatal events: %s", __func__, strerror(errno)); 97 "fatal events: %s", __func__, strerror(errno));
94 goto fail; 98 goto fail;
95 } 99 }
96 if (ct_tmpl_set_critical(tmpl_fd, CT_PR_EV_HWERR) != 0) { 100 if (ct_tmpl_set_critical(tmpl_fd, 0) != 0) {
97 error("%s: Error setting process contract template " 101 error("%s: Error setting process contract template "
98 "critical events: %s", __func__, strerror(errno)); 102 "critical events: %s", __func__, strerror(errno));
99 goto fail; 103 goto fail;
100 } 104 }
105 if (ct_tmpl_set_informative(tmpl_fd, CT_PR_EV_HWERR) != 0) {
106 error("%s: Error setting process contract template "
107 "informative events: %s", __func__, strerror(errno));
108 goto fail;
109 }
101 110
102 /* Now make this the active template for this process. */ 111 /* Now make this the active template for this process. */
103 if (ct_tmpl_activate(tmpl_fd) != 0) { 112 if (ct_tmpl_activate(tmpl_fd) != 0) {