[dhcp-agent-commits] dhcp-agent/src dhcp-client-states.c,1.32,1.33 dhcp-client.h,1.15,1.16 dhcp-inte
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2003-05-25 03:37:39
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv6064/src Modified Files: dhcp-client-states.c dhcp-client.h dhcp-interrupt.c dhcp-librawnet.h dhcp-libutil.h Log Message: added user interrupt catching Index: dhcp-client-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-states.c,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** dhcp-client-states.c 25 May 2003 03:01:20 -0000 1.32 --- dhcp-client-states.c 25 May 2003 03:37:36 -0000 1.33 *************** *** 559,562 **** --- 559,566 ---- return STATE_FATAL_ERROR; + case RAWNET_USER_INTERRUPT: + ERROR_MESSAGE("caught user interrupt."); + return STATE_FATAL_ERROR; + default: FATAL_MESSAGE("invalid return value from raw network handler -- this a bug report it."); *************** *** 648,651 **** --- 652,659 ---- return STATE_FATAL_ERROR; + case RAWNET_USER_INTERRUPT: + ERROR_MESSAGE("caught user interrupt."); + return STATE_FATAL_ERROR; + default: FATAL_MESSAGE("invalid return value from raw network handler -- this a bug report it."); *************** *** 807,812 **** if(dc) { /* only do clean up if we can. */ ! /* send our a release. */ ! client_release(dc); /* unconfigure everything including our interface. */ --- 815,821 ---- if(dc) { /* only do clean up if we can. */ ! /* send our a release only if we have a cache. */ ! if(!client_cache_is_empty(dc->cache)) ! client_release(dc); /* unconfigure everything including our interface. */ *************** *** 862,865 **** --- 871,878 ---- return STATE_FATAL_ERROR; + case RAWNET_USER_INTERRUPT: + ERROR_MESSAGE("caught user interrupt."); + return STATE_FATAL_ERROR; + default: FATAL_MESSAGE *************** *** 920,923 **** --- 933,940 ---- case RAWNET_ERROR: ERROR_MESSAGE("received error from raw network handler."); + return STATE_FATAL_ERROR; + + case RAWNET_USER_INTERRUPT: + ERROR_MESSAGE("caught user interrupt."); return STATE_FATAL_ERROR; Index: dhcp-client.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** dhcp-client.h 25 May 2003 02:18:28 -0000 1.15 --- dhcp-client.h 25 May 2003 03:37:36 -0000 1.16 *************** *** 88,92 **** #define STATE_DO_SHUTDOWN 8 - /* timer IDs. */ --- 88,91 ---- Index: dhcp-interrupt.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-interrupt.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dhcp-interrupt.c 25 Mar 2003 03:02:53 -0000 1.4 --- dhcp-interrupt.c 25 May 2003 03:37:36 -0000 1.5 *************** *** 209,210 **** --- 209,225 ---- return; } + + int user_interrupt(void) + { + sigset_t signal_mask; + + sigemptyset(&signal_mask); + sigpending(&signal_mask); + + if(sigismember(&signal_mask, SIGQUIT) || + sigismember(&signal_mask, SIGINT) || + sigismember(&signal_mask, SIGTERM)) + return 1; + + return 0; + } Index: dhcp-librawnet.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-librawnet.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** dhcp-librawnet.h 4 May 2003 18:53:11 -0000 1.12 --- dhcp-librawnet.h 25 May 2003 03:37:36 -0000 1.13 *************** *** 243,246 **** --- 243,247 ---- #define RAWNET_UNHANDLED -4 #define RAWNET_TIMEOUT -5 + #define RAWNET_USER_INTERRUPT -6 /* DHCP Type messages */ Index: dhcp-libutil.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-libutil.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** dhcp-libutil.h 28 Apr 2003 22:21:52 -0000 1.25 --- dhcp-libutil.h 25 May 2003 03:37:36 -0000 1.26 *************** *** 167,170 **** --- 167,171 ---- extern void remove_interrupt(int sig); extern int peek_interrupt_type(void); + extern int user_interrupt(void); /* alarm handlers. */ |