y_socket_t: add some node functions

This commit is contained in:
2025-04-10 23:23:53 +02:00
parent cb27059312
commit f9bc658091
5 changed files with 46 additions and 6 deletions
+2
View File
@@ -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); 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); 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 */ #endif /* __Y_NODE_T_H__C */
+1 -1
View File
@@ -35,7 +35,7 @@ extern const int af_array[nbIpVersion];//={AF_INET, AF_INET6};
struct y_socket_t{ struct y_socket_t{
struct pollfd fds[nbIpVersion]; struct pollfd fds[nbIpVersion];
char * port; char * port;
struct main_list_y_NODE_T nodes; struct main_list_y_NODE_T *nodes;
}; };
+22 -1
View File
@@ -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 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; i<strlen(addrStr); ++i){
if(addrStr[i]=='.')
break;
if(addrStr[i]==':'){
af=AF_INET6;
break;
}
}
node->addr.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;
} }
+2
View File
@@ -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 * y_socket_create(char *port){
struct y_socket_t *sock_temp=malloc(sizeof(struct y_socket_t)); struct y_socket_t *sock_temp=malloc(sizeof(struct y_socket_t));
sock_temp->port=port; sock_temp->port=port;
sock_temp->nodes = create_var_list_y_NODE_T();
return sock_temp; return sock_temp;
} }
void y_socket_free(struct y_socket_t *socket){ void y_socket_free(struct y_socket_t *socket){
free_all_var_list_y_NODE_T(socket->nodes);
free(socket); free(socket);
} }
+19 -4
View File
@@ -100,11 +100,23 @@ TEST(searchNode){
GET_IN_type_ADDR(&(nA.addr),) = inet_addr("1.1.1.3"); GET_IN_type_ADDR(&(nA.addr),) = inet_addr("1.1.1.3");
push_back_list_y_NODE_T(listNodes, nA); push_back_list_y_NODE_T(listNodes, nA);
GET_IN_type_ADDR(&(nB.addr),) = inet_addr("0.1.1.1"); //GET_IN_type_ADDR(&(nB.addr),) = inet_addr("0.1.1.1");
// push_back_list_y_NODE_T(listNodes, nB); 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)); 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)); EXPECT_FALSE(NULL == search_node_in_list_y_NODE_T(listNodes, nA));
free_all_var_list_y_NODE_T(listNodes); free_all_var_list_y_NODE_T(listNodes);
@@ -113,6 +125,9 @@ TEST(searchNode){
} }
int main(int argc, char **argv){ int main(int argc, char **argv){