y_socket_t: add some node functions
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -41,5 +41,26 @@ struct list_y_NODE_T * search_node_in_list_y_NODE_T(struct main_list_y_NODE_T *l
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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){
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user