diff options
Diffstat (limited to 'openbsd-compat/port-solaris.c')
-rw-r--r-- | openbsd-compat/port-solaris.c | 19 |
1 files changed, 14 insertions, 5 deletions
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) { |