static nl_sock * wifi_create_nl_socket(int port) { // ALOGI("Creating socket"); struct nl_sock *sock = nl_socket_alloc(); if (sock == NULL) { ALOGE("Could not create handle"); return NULL; } wifi_socket_set_local_port(sock, port); struct sockaddr *addr = NULL; // ALOGI("sizeof(sockaddr) = %d, sizeof(sockaddr_nl) = %d", sizeof(*addr), sizeof(*addr_nl)); // ALOGI("Connecting socket"); if (nl_connect(sock, NETLINK_GENERIC)) { ALOGE("Could not connect handle"); nl_socket_free(sock); return NULL; } // ALOGI("Making socket nonblocking"); /* if (nl_socket_set_nonblocking(sock)) { ALOGE("Could make socket non-blocking"); nl_socket_free(sock); return NULL; } */ return sock; }
static nl_sock * wifi_create_nl_socket(int port) { // ALOGI("Creating socket"); struct nl_sock *sock = nl_socket_alloc(); if (sock == NULL) { ALOGE("Could not create handle"); return NULL; } wifi_socket_set_local_port(sock, port); struct sockaddr_nl *addr_nl = &(sock->s_local); /* ALOGI("socket address is %d:%d:%d:%d", addr_nl->nl_family, addr_nl->nl_pad, addr_nl->nl_pid, addr_nl->nl_groups); */ struct sockaddr *addr = NULL; // ALOGI("sizeof(sockaddr) = %d, sizeof(sockaddr_nl) = %d", sizeof(*addr), sizeof(*addr_nl)); // ALOGI("Connecting socket"); if (nl_connect(sock, NETLINK_GENERIC)) { ALOGE("Could not connect handle"); nl_socket_free(sock); return NULL; } ALOGI("Socket Value:%p", sock); return sock; }
static nl_sock * wifi_create_nl_socket(int port, int protocol) { // ALOGI("Creating socket"); struct nl_sock *sock = nl_socket_alloc(); if (sock == NULL) { ALOGE("Failed to create NL socket"); return NULL; } wifi_socket_set_local_port(sock, port); if (nl_connect(sock, protocol)) { ALOGE("Could not connect handle"); nl_socket_free(sock); return NULL; } return sock; }