X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fivac.git;a=blobdiff_plain;f=src%2Fivac.c;h=f4995a791a4f5304090456064ce64cf4cd5e819f;hp=c567f280d8c11b4e2ed1bb420517ebbfba54d0ad;hb=f7d9ad56ad9c10284c067cb2db36a7c72b33c5b3;hpb=c8c162c2b1f82f32160bcaa4159ea8735a8582c5 diff --git a/src/ivac.c b/src/ivac.c index c567f28..f4995a7 100644 --- a/src/ivac.c +++ b/src/ivac.c @@ -46,7 +46,10 @@ int main(int argc,char **argv) { input_init(&(ivac.input)); /* network init */ - network_init(&(ivac.net)); + if(network_init(&(ivac.net))==N_ERROR) { + printf("[ivac] use 'fuser -n tcp %d' to kill that process",ivac.net.l_port); + return ERROR; + } /* add listening port + stdin to (read) event system */ event_math(ivac.net.l_fd,&(ivac.event),READ,ADD); @@ -55,6 +58,10 @@ 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)); + + input_shutdown(&(ivac.input)); + return SUCCESS; } @@ -79,7 +86,8 @@ int ivac_event_cb(t_event *event,void *ptr) { receive_info(channel,&(ivac->net)); /* user interaction */ - if(FD_ISSET(0,&(event->rfds))) input_get_char(ivac); + if(FD_ISSET(0,&(event->rfds))) + input_get_char(&(ivac->input),ivac_display,ivac); return SUCCESS; } @@ -90,3 +98,14 @@ int ivac_regular_cb(t_event *event,void *ptr) { return SUCCESS; } + +int ivac_display(t_input *input,void *ptr) { + + t_ivac *ivac; + + ivac=(t_ivac *)ptr; + + if(input->content[input->c_count-1]=='q') ivac->event.status=DISABLED; + + return SUCCESS; +}