1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#ifndef SCRIPT_HANDLER_H 27#define SCRIPT_HANDLER_H 28 29#include "common.h" 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35/* 36 * The signal SIGTERM is sent to a script process if it does not exit after 37 * SCRIPT_TIMEOUT seconds; and the signal SIGKILL is sent if it is still alive 38 * SCRIPT_TIMEOUT_GRACE seconds after SIGTERM is sent. (SCRIPT_TIMEOUT + 39 * SCRIPT_TIMEOUT_GRACE) should be less than DHCP_ASYNC_WAIT. 40 */ 41#define SCRIPT_TIMEOUT 55 42#define SCRIPT_TIMEOUT_GRACE 3 43 44/* 45 * script exit status as dhcpagent sees it, for debug purpose only. 46 * 47 * SCRIPT_OK: script exits ok, no timeout 48 * SCRIPT_KILLED: script timeout, killed 49 * SCRIPT_FAILED: unknown status 50 */ 51 52enum { SCRIPT_OK, SCRIPT_KILLED, SCRIPT_FAILED }; 53 54/* 55 * event names for script. 56 */ 57#define EVENT_BOUND "BOUND" 58#define EVENT_EXTEND "EXTEND" 59#define EVENT_EXPIRE "EXPIRE" 60#define EVENT_DROP "DROP" 61#define EVENT_INFORM "INFORM" 62#define EVENT_RELEASE "RELEASE" 63 64#define EVENT_BOUND6 "BOUND6" 65#define EVENT_EXTEND6 "EXTEND6" 66#define EVENT_EXPIRE6 "EXPIRE6" 67#define EVENT_DROP6 "DROP6" 68#define EVENT_INFORM6 "INFORM6" 69#define EVENT_LOSS6 "LOSS6" 70#define EVENT_RELEASE6 "RELEASE6" 71 72/* 73 * script location. 74 */ 75#define SCRIPT_PATH "/etc/dhcp/eventhook" 76 77/* 78 * the number of running scripts. 79 */ 80extern unsigned int script_count; 81 82void script_init(dhcp_smach_t *); 83boolean_t script_start(dhcp_smach_t *, const char *, script_callback_t *, 84 void *, int *); 85void script_stop(dhcp_smach_t *); 86 87#ifdef __cplusplus 88} 89#endif 90 91#endif /* SCRIPT_HANDLER_H */ 92