diff --git a/y_socket_t/src/y_socket_t/y_socket_t.c b/y_socket_t/src/y_socket_t/y_socket_t.c index 1f86fb5..03b4754 100644 --- a/y_socket_t/src/y_socket_t/y_socket_t.c +++ b/y_socket_t/src/y_socket_t/y_socket_t.c @@ -24,6 +24,7 @@ struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int, void* new_var->list_arg = NULL; new_var->argx = NULL; new_var->m_ok_head_l_t = NULL; + new_var->extern_socket_handler = extern_socket_handler; new_var->bash_arg=bash_arg; @@ -70,6 +71,7 @@ void free_arg_var_(struct arg_var_ *var){ free(var->cond_var); } + if(var) free(var); } @@ -502,35 +504,33 @@ void handle_input_cmd(char * buf, int buf_len, struct arg_var_ *var){ if(buf_len>6){ #if 1 - char cmd[BUF_SIZE], dst_addr[BUF_SIZE];//, msg_buf[BUF_SIZE]; - int index_buf=0, index_str=0; + char cmd[BUF_SIZE]; //, dst_addr[BUF_SIZE]={0};//, msg_buf[BUF_SIZE]; + int index_buf=0, index_cmd=0; while((index_buf < buf_len) && (buf[index_buf]==' ')){++index_buf;} - for(; buf[index_buf]!=' '; ++index_buf){ - cmd[index_str++]=buf[index_buf]; + for(;(index_buffds=fds; @@ -600,6 +600,7 @@ if(buf_len>6){ } } }else{ + printf("debug: call 1 extern_socket_handler\n"); if(var->extern_socket_handler){ var->extern_socket_handler(buf,buf_len,var->bash_arg); }else{ @@ -613,6 +614,7 @@ if(buf_len>6){ argSock->go_on = 0; pthread_mutex_unlock(argSock->mut_go_on); }else{ + printf("debug: call 2 extern_socket_handler\n"); if(var->extern_socket_handler){ var->extern_socket_handler(buf,buf_len,var->bash_arg); }else{ @@ -740,7 +742,8 @@ void *y_socket_poll_fds(void *arg){ //fds[1].events = 0; //puts(">>"); - memset(buf, 0, sizeof buf); + //memset(buf, 0, sizeof buf); + memset(buf, 0, BUF_SIZE+1); //scanf(" %"xstr(BUF_SIZE)"[^\n]%*c", buf); buf_len = read(0,buf,BUF_SIZE); ///printf("message saisi : %s\n len = %ld\n",buf, buf_len); diff --git a/y_socket_t/test/is_good.c b/y_socket_t/test/is_good.c index e18a6d7..06eb041 100644 --- a/y_socket_t/test/is_good.c +++ b/y_socket_t/test/is_good.c @@ -179,9 +179,13 @@ TEST(import_nodes){ } +void repeat_buf(char *buf, int len_buf, void *arg){ + write(1,buf,len_buf); +} TEST(pollThread){ - struct arg_var_ * var = create_arg_var_(NULL, NULL); + //struct arg_var_ * var = create_arg_var_(NULL, NULL); + struct arg_var_ * var = create_arg_var_(repeat_buf, NULL); struct y_socket_t *argS=y_socket_create("1600", 2, 3, var); pthread_t pollTh;