From 1a696234cdb0530af20fb78c9c8f84dcb66e3f43 Mon Sep 17 00:00:00 2001 From: fanasina Date: Wed, 5 Nov 2025 00:39:32 +0100 Subject: [PATCH] y_socket: arg_var and extern_handler to accept bash_arg --- y_socket_t/include/y_socket_t/y_socket_t.h | 5 +++-- y_socket_t/src/y_socket_t/y_socket_t.c | 7 ++++--- y_socket_t/test/is_good.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/y_socket_t/include/y_socket_t/y_socket_t.h b/y_socket_t/include/y_socket_t/y_socket_t.h index f59b4df..2796bd5 100644 --- a/y_socket_t/include/y_socket_t/y_socket_t.h +++ b/y_socket_t/include/y_socket_t/y_socket_t.h @@ -55,10 +55,11 @@ struct arg_var_{ struct main_list_y_ptr_HEADER_T *m_ok_head_l_t; pthread_mutex_t *mut_var; pthread_cond_t *cond_var; - void (*extern_socket_handler)(char*,int); + void* bash_arg; + void (*extern_socket_handler)(char*,int, void*); }; -struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int)); +struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int, void*), void* bash_arg); void set_up_arg_var_init_(struct arg_var_ *var, struct y_socket_t * argSock, struct main_list_TYPE_PTR * list_arg, struct argExecTasQ *argx , struct main_list_y_ptr_HEADER_T *m_ok_head_l_t); void free_arg_var_(struct arg_var_ *var); void wait_var_set_up_value_not_equal(struct arg_var_ *var, int value_set_up); 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 5928c64..1f86fb5 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 @@ -12,7 +12,7 @@ void handle_input_cmd(char * buf, int buf_len, struct arg_var_ *var); //struct y_socket_t * argSock, struct main_list_TYPE_PTR * list_arg, struct argExecTasQ *argx , struct main_list_y_ptr_HEADER_T *m_ok_head_l_t); -struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int)){ +struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int, void*), void *bash_arg){ struct arg_var_ * new_var=malloc(sizeof(struct arg_var_)); new_var->set_up = 0; new_var->mut_var = malloc(sizeof(pthread_mutex_t)); @@ -25,6 +25,7 @@ struct arg_var_ * create_arg_var_(void (*extern_socket_handler)(char*,int)){ 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; return new_var; } @@ -600,7 +601,7 @@ if(buf_len>6){ } }else{ if(var->extern_socket_handler){ - var->extern_socket_handler(buf,buf_len); + var->extern_socket_handler(buf,buf_len,var->bash_arg); }else{ printf("debug: No extern_socket_handler in var\n"); } @@ -613,7 +614,7 @@ if(buf_len>6){ pthread_mutex_unlock(argSock->mut_go_on); }else{ if(var->extern_socket_handler){ - var->extern_socket_handler(buf,buf_len); + var->extern_socket_handler(buf,buf_len,var->bash_arg); }else{ printf("debug: No extern_socket_handler in var\n"); } diff --git a/y_socket_t/test/is_good.c b/y_socket_t/test/is_good.c index 2f5d46d..e18a6d7 100644 --- a/y_socket_t/test/is_good.c +++ b/y_socket_t/test/is_good.c @@ -181,7 +181,7 @@ TEST(import_nodes){ TEST(pollThread){ - struct arg_var_ * var = create_arg_var_(NULL); + struct arg_var_ * var = create_arg_var_(NULL, NULL); struct y_socket_t *argS=y_socket_create("1600", 2, 3, var); pthread_t pollTh;