diff --git a/y_socket_t/include/y_socket_t/y_node_t.h b/y_socket_t/include/y_socket_t/y_node_t.h index d0999a4..e05a672 100644 --- a/y_socket_t/include/y_socket_t/y_node_t.h +++ b/y_socket_t/include/y_socket_t/y_node_t.h @@ -25,5 +25,7 @@ void init_len_list_y_NODE_T(struct main_list_y_NODE_T *listNodes); int y_NODE_T_cmp(y_NODE_T nodeA, y_NODE_T nodeB); struct list_y_NODE_T * search_node_in_list_y_NODE_T(struct main_list_y_NODE_T *listNodes, y_NODE_T node); +int set_addr_y_NODE_T(y_NODE_T *node, char * addrStr); + #endif /* __Y_NODE_T_H__C */ 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 9a62a71..4d8e63d 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 @@ -35,7 +35,7 @@ extern const int af_array[nbIpVersion];//={AF_INET, AF_INET6}; struct y_socket_t{ struct pollfd fds[nbIpVersion]; char * port; - struct main_list_y_NODE_T nodes; + struct main_list_y_NODE_T *nodes; }; diff --git a/y_socket_t/src/y_socket_t/y_node_t.c b/y_socket_t/src/y_socket_t/y_node_t.c index 343462d..20eaa50 100644 --- a/y_socket_t/src/y_socket_t/y_node_t.c +++ b/y_socket_t/src/y_socket_t/y_node_t.c @@ -40,6 +40,27 @@ struct list_y_NODE_T * search_node_in_list_y_NODE_T(struct main_list_y_NODE_T *l return listNodes->current_list; } } - return NULL; + return NULL; +} + +int set_addr_y_NODE_T(y_NODE_T *node, char * addrStr){ + int af = AF_INET, ret = -2; + for(int i=0; iaddr.ss_family = af; + if(af==AF_INET) + ret = inet_pton(af, addrStr, &(GET_IN_type_ADDR(&(node->addr),))); + else if(af == AF_INET6) + ret = inet_pton(af, addrStr, (GET_IN_type_ADDR(&(node->addr), 6))); + + return ret; } + + 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 28690e5..a2faea9 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 @@ -5,11 +5,13 @@ const int af_array[nbIpVersion]={AF_INET, AF_INET6}; struct y_socket_t * y_socket_create(char *port){ struct y_socket_t *sock_temp=malloc(sizeof(struct y_socket_t)); sock_temp->port=port; + sock_temp->nodes = create_var_list_y_NODE_T(); return sock_temp; } void y_socket_free(struct y_socket_t *socket){ + free_all_var_list_y_NODE_T(socket->nodes); free(socket); } diff --git a/y_socket_t/test/is_good.c b/y_socket_t/test/is_good.c index 2218fe2..71d41bf 100644 --- a/y_socket_t/test/is_good.c +++ b/y_socket_t/test/is_good.c @@ -100,11 +100,23 @@ TEST(searchNode){ GET_IN_type_ADDR(&(nA.addr),) = inet_addr("1.1.1.3"); push_back_list_y_NODE_T(listNodes, nA); - GET_IN_type_ADDR(&(nB.addr),) = inet_addr("0.1.1.1"); -// push_back_list_y_NODE_T(listNodes, nB); - + //GET_IN_type_ADDR(&(nB.addr),) = inet_addr("0.1.1.1"); + int ret = set_addr_y_NODE_T(&nB, "0.1.1.1"); + LOG("return of set =%d\n", ret); + EXPECT_TRUE(NULL == search_node_in_list_y_NODE_T(listNodes, nB)); - GET_IN_type_ADDR(&(nA.addr),) = inet_addr("1.1.1.3"); + //GET_IN_type_ADDR(&(nA.addr),) = inet_addr("1.1.1.3"); + inet_pton(AF_INET, "1.1.1.3", &(GET_IN_type_ADDR(&(nA.addr),))); + EXPECT_FALSE(NULL == search_node_in_list_y_NODE_T(listNodes, nA)); + + //inet_pton(AF_INET6, "::1", GET_IN_type_ADDR(&(nB.addr),6)); + ret = set_addr_y_NODE_T(&nB, "::1"); + LOG("return of set =%d\n", ret); + push_back_list_y_NODE_T(listNodes, nB); + + //inet_pton(AF_INET6, "::", GET_IN_type_ADDR(&(nA.addr),6)); + ret = set_addr_y_NODE_T(&nB, "::"); + LOG("return of set =%d\n", ret); EXPECT_FALSE(NULL == search_node_in_list_y_NODE_T(listNodes, nA)); free_all_var_list_y_NODE_T(listNodes); @@ -113,6 +125,9 @@ TEST(searchNode){ } + + + int main(int argc, char **argv){