y_socket: debug recvfrom buf ending, prepare handling varoable
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user