From 8a6fa2a921c79c007f3203aab1388fe2f0620eda Mon Sep 17 00:00:00 2001 From: hackbard Date: Thu, 6 May 2004 19:17:44 +0000 Subject: [PATCH] clean shutdown in case address is in use + include ncurses functions (todo) --- src/ivac.c | 15 ++++++++++++--- src/ivac.h | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/ivac.c b/src/ivac.c index 062fc56..70d1a35 100644 --- a/src/ivac.c +++ b/src/ivac.c @@ -52,7 +52,9 @@ int main(int argc,char **argv) { /* network init */ if(network_init(&(ivac.net))==N_ERROR) { - printf("[ivac] use 'fuser -n tcp %d' to kill that process",ivac.net.l_port); + printf("[ivac] use 'fuser -n tcp %d' to determine the process to kill!\n", + ivac.net.l_port); + ivac_shutdown(&ivac); return ERROR; } @@ -66,9 +68,16 @@ int main(int argc,char **argv) { /* start event system - callbacks used: ivac_event_cb + ivac_regular_cb */ event_start(&(ivac.event),(void *)&ivac,ivac_event_cb,ivac_regular_cb); - network_shutdown(&(ivac.net)); + ivac_shutdown(&ivac); - input_shutdown(&(ivac.input)); + return SUCCESS; +} + +int ivac_shutdown(t_ivac *ivac) { + + network_shutdown(&(ivac->net)); + input_shutdown(&(ivac->input)); + event_stop(&(ivac->event)); return SUCCESS; } diff --git a/src/ivac.h b/src/ivac.h index a4365f4..bd427f0 100644 --- a/src/ivac.h +++ b/src/ivac.h @@ -7,6 +7,9 @@ #define _GNU_SOURCE #include +/* for ui */ +#include + #include "network.h" #include "event.h" #include "input.h" @@ -52,6 +55,7 @@ typedef struct s_ivac { } t_ivac; /* function prototypes */ +int ivac_shutdown(t_ivac *ivac); int ivac_send_info(int channel,t_ivac *ivac); int ivac_receive_info(int channel,t_ivac *ivac); int ivac_event_cb(t_event *event,void *ptr); -- 2.39.2