]> hackdaworld.org Git - my-code/ivac.git/commitdiff
clean shutdown in case address is in use + include ncurses functions (todo)
authorhackbard <hackbard>
Thu, 6 May 2004 19:17:44 +0000 (19:17 +0000)
committerhackbard <hackbard>
Thu, 6 May 2004 19:17:44 +0000 (19:17 +0000)
src/ivac.c
src/ivac.h

index 062fc56eb08f26ef05f335f7bc199b6ee37900b5..70d1a35c234809708086d60c423e6a2c9c68b587 100644 (file)
@@ -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;
 }
index a4365f4ff063708cf0739f7e012d93d35d8650c0..bd427f044443069b7a07b323cb672d403e2569cf 100644 (file)
@@ -7,6 +7,9 @@
 #define _GNU_SOURCE
 #include <stdio.h>
 
+/* for ui */
+#include <ncurses.h>
+
 #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);