y_socket: debug recvfrom buf ending, prepare handling varoable

This commit is contained in:
2025-10-11 21:13:45 +02:00
parent 6aa1e9b245
commit 6527394785
3 changed files with 133 additions and 86 deletions
@@ -66,6 +66,18 @@ size_t copy_list_y_ptr_STRING_to_one_string(char **p_dst_str, struct main_list_y
#endif /* y_ptr_STRING */
struct y_variable{
char * name;
void * value;
};
typedef struct y_variable * y_ptr_VARIABLE;
struct y_variable * create_y_ptr_VARIABLE(const char *name, size_t size_value);
GENERATE_LIST_ALL(y_ptr_VARIABLE)
GEN_HEAD_PTR_LIST(y_ptr_VARIABLE)
struct y_socket_t{
struct pollfd *fds;
size_t size_fds;
+22 -2
View File
@@ -752,7 +752,7 @@ void record_buffer_to_file(void *arg){
}
*/
#if 1
void receve_from_node(struct pollfd *fds, struct main_list_y_ptr_HEADER_T *m_head_l_t, struct main_list_y_ptr_STRING *m_str, y_NODE_T node /*char * srcAddr*/, char *filename ){
//printf("\ndebug: <<<< receve_from_node %s %ld\n\n",msg,count);
char srcAddr[64];
@@ -772,6 +772,9 @@ void receve_from_node(struct pollfd *fds, struct main_list_y_ptr_HEADER_T *m_hea
//printf("debug: index=[%ld] \n BEGIN file ***\n%s\n END\n",local_current->index,buf_loc);
if(js_header_v){
struct js_value *js_cmd = get_js_value_of_key("cmd", js_header_v );
if(js_cmd && js_cmd->type.object.value->code_type == jstype_string){
char * buf_cmd_v = js_cmd->type.object.value->type.string;
struct js_value *js_seq_v = get_js_value_of_key("seq", js_header_v );
char eof=0;
@@ -812,9 +815,23 @@ void receve_from_node(struct pollfd *fds, struct main_list_y_ptr_HEADER_T *m_hea
if(local_header){
struct main_list_y_ptr_MSG_CONTENT_T *m_content_l = local_header->value->m_content_l;
struct list_y_ptr_MSG_CONTENT_T * tmpCnt_l = m_content_l->begin_list;
if(strncmp(buf_cmd_v+5,"file",4)==0){
int fd_file ;
if((fd_file = open(tmpCnt_l->value->nameid, O_WRONLY | O_CREAT ,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) == -1){
fprintf(stderr,"erreur write %s\n",tmpCnt_l->value->nameid);
break;//return NULL;
}
while(tmpCnt_l){
write(fd_file, tmpCnt_l->value->content, tmpCnt_l->value->size_content);
printf("debug: nameid:%s seq = %ld eof %d\n\n%s\n",tmpCnt_l->value->nameid, tmpCnt_l->value->seq, tmpCnt_l->value->eof, tmpCnt_l->value->content);
tmpCnt_l=tmpCnt_l->next;
}
close(fd_file);
}else if(strncmp(buf_cmd_v+5,"var",3)==0){
}
struct list_y_ptr_HEADER_T * l_head_to_remove = pull_index_from_list_y_ptr_HEADER_T(m_head_l_t, local_header->index);
free_y_ptr_HEADER_T(l_head_to_remove->value);
@@ -854,6 +871,10 @@ void receve_from_node(struct pollfd *fds, struct main_list_y_ptr_HEADER_T *m_hea
}else{
printf("debug: \n NNNNNNNNNNNNNNNNOOOOOOOOOOOOOSSSSSSSSSSSSSSSEEEEEEEEEEEEEEQQQQQQQQQQQQQ :type header : %d \n",js_header_v->code_type);
}
}else{
printf("debug: \n NO CMD :type header : %d \n",js_header_v->code_type);
}
free_js_value(js_header_v);
}else{
@@ -885,7 +906,6 @@ void receve_from_node(struct pollfd *fds, struct main_list_y_ptr_HEADER_T *m_hea
//free(timeNow);
}
#endif
/*
char filename[500];
int fd_file;
+30 -15
View File
@@ -5,6 +5,28 @@
//#include "y_socket_t/y_list_string.h"
//#include "json_t/json_t.h"
struct y_variable * create_y_ptr_VARIABLE(const char *name, size_t size_value){
struct y_variable *variable=malloc(sizeof(struct y_variable));
size_t len_name = strlen(name);
variable->name=malloc(len_name+1);
variable->value=malloc(size_value);
if(name){
memcpy(variable->name, name, len_name+1);
if(name[len_name]!='\0')
variable->name[len_name]='\0';
}
return variable;
}
GEN_LIST_ALL(y_ptr_VARIABLE)
GEN_FUNC_PTR_LIST_FREE(y_ptr_VARIABLE){
free(arg->name);
free(arg->value);
free(arg);
}
const int af_array[nbIpVersion]={AF_INET, AF_INET6};
struct y_socket_t * y_socket_create(char *port, size_t size_fds, int nb_workers){
@@ -288,23 +310,18 @@ void* y_socket_handler_(void *arg){
else if(strncmp(buf, "post", 4)==0){
if(strncmp(buf+5,"file",4)==0){
char *filename = buf+10;
struct main_list_y_ptr_HEADER_T *m_head_l_t = argH->m_head_l_t;
//char srcAddr[BUF_SIZE];
//set_tempAddr_from_node(srcAddr, argH->node);
receve_from_node(fds, m_head_l_t, m_str,argH->node/* srcAddr*/, filename /*+ index_f*/);
receve_from_node(fds, argH->m_head_l_t, m_str,argH->node, filename );
m_str = NULL;
/*
pthread_mutex_lock(sock->mut_go_on);
sock->go_on = 0;
pthread_mutex_unlock(sock->mut_go_on);
*/
// kill_all_workers(argw);
// printf("debug: kill_all\n");
}else if(strncmp(buf+5,"ok",2)==0){
char *nameid = buf+8;
y_append_to_ok_header_l_(argH->m_ok_head_l_t,nameid );
}else if(strncmp(buf+5,"var",3)==0){
char *var_nameid = buf+9;
receve_from_node(fds, argH->m_head_l_t, m_str,argH->node, var_nameid );
m_str = NULL;
}
}
}
@@ -435,8 +452,7 @@ void *y_socket_poll_fds(void *arg){
while((nread = recvfrom(fds[af].fd, buf, BUF_SIZE, 0,
(struct sockaddr *)&(node.addr), &(node.addr_len))) == BUF_SIZE){
if(buf[nread-1]=='\n')
buf[nread-1]='\0';
//if(buf[nread-1]=='\n') buf[nread-1]='\0';
buf[nread]='\0';
y_ptr_STRING y_buf = create_y_ptr_STRING(buf, nread);
@@ -451,8 +467,7 @@ void *y_socket_poll_fds(void *arg){
if(nread == -1)
fprintf(stderr,"error recvfrom\n");
else if(nread >= 0 && nread < BUF_SIZE){
if(nread && buf[nread-1]=='\n'
) buf[nread-1]='\0';
//if(nread && buf[nread-1]=='\n') buf[nread-1]='\0';
buf[nread]='\0';
//printf("msg: %s\n",buf);
y_ptr_STRING y_buf = create_y_ptr_STRING(buf, nread);