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);
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 */
+1 -1
View File
@@ -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;
};
+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 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 *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);
}
+19 -4
View File
@@ -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){