Exemplo n.º 1
0
bool netlinl_test() {
    int sock = nas_nl_sock_create(nas_nl_sock_T_INT);
    char buf[4196];
    const int RANDOM_REQ_ID = 23231;
    if (nl_interface_get_request(sock,RANDOM_REQ_ID)) {
        if (netlink_tools_process_socket(sock,get_netlink_data, NULL,buf,sizeof(buf),
                &RANDOM_REQ_ID,NULL)) {
            close(sock);
            return true;
        }
    }
    close(sock);
    return false;
}
Exemplo n.º 2
0
bool read_all_routes(cps_api_object_list_t list, route_filter_t *filter) {
    int sock = nas_nl_sock_create(nas_nl_sock_T_ROUTE);
    const int RANDOM_REQ_ID = 0x101;
    if (sock==-1) return false;
    bool rc = nl_request_existing_routes(sock,filter->family, RANDOM_REQ_ID);

    if (rc) {
        char buff[1024];
        rc = netlink_tools_process_socket(sock,process_route_and_add_to_list,&list,
                buff,sizeof(buff),&RANDOM_REQ_ID,NULL);
    }
    close(sock);
    return rc;
}
Exemplo n.º 3
0
cps_api_return_code_t get_all_interfaces( cps_api_object_list_t list ) {
    int if_sock = 0;
    if((if_sock = nas_nl_sock_create(nas_nl_sock_T_INT)) < 0) {
       return cps_api_ret_code_ERR;
    }

    const int DEF_BUFF_LEN=10000;
    char *buff=(char*)malloc(DEF_BUFF_LEN);
    if(buff==NULL) {
        close(if_sock);
        return cps_api_ret_code_ERR;
    }
    int RANDOM_REQ_ID = 0xee00;

    if (nl_interface_get_request(if_sock,RANDOM_REQ_ID)) {
        netlink_tools_process_socket(if_sock,get_netlink_data,
                &list,buff,DEF_BUFF_LEN,
            &RANDOM_REQ_ID,NULL);
    }
    close(if_sock);
    free(buff);
    return cps_api_ret_code_OK;
}