summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--service/Android.mk8
-rw-r--r--service/lib/common.cpp2
-rw-r--r--service/lib/wifi_hal.cpp23
3 files changed, 12 insertions, 21 deletions
diff --git a/service/Android.mk b/service/Android.mk
index 01cca34..25adc36 100644
--- a/service/Android.mk
+++ b/service/Android.mk
@@ -42,7 +42,7 @@ LOCAL_CFLAGS += -Wno-maybe-uninitialized -Wno-parentheses
LOCAL_CPPFLAGS += -Wno-conversion-null
LOCAL_C_INCLUDES += \
- external/libnl-headers \
+ external/libnl/include
LOCAL_SRC_FILES := \
lib/wifi_hal.cpp \
@@ -71,16 +71,16 @@ LOCAL_C_INCLUDES += \
libcore/include \
$(LOCAL_PATH)/lib
-
LOCAL_SHARED_LIBRARIES += \
libnativehelper \
libcutils \
libutils \
libhardware \
libhardware_legacy \
- libandroid_runtime
+ libandroid_runtime \
+ libnl
-LOCAL_STATIC_LIBRARIES += libwifi-hal libnl_2
+LOCAL_STATIC_LIBRARIES += libwifi-hal
LOCAL_SRC_FILES := jni/com_android_server_wifi_WifiNative.cpp
LOCAL_MODULE := libwifi-service
diff --git a/service/lib/common.cpp b/service/lib/common.cpp
index 2dc634d..9a7f447 100644
--- a/service/lib/common.cpp
+++ b/service/lib/common.cpp
@@ -1,6 +1,6 @@
#include <stdlib.h>
-#include <netlink-types.h>
+#include <netlink/handlers.h>
#include "wifi_hal.h"
#include "common.h"
diff --git a/service/lib/wifi_hal.cpp b/service/lib/wifi_hal.cpp
index d300ea6..ad4650d 100644
--- a/service/lib/wifi_hal.cpp
+++ b/service/lib/wifi_hal.cpp
@@ -14,7 +14,9 @@
#include <netlink/object-api.h>
#include <netlink/netlink.h>
#include <netlink/socket.h>
-#include <netlink-types.h>
+#include <netlink/attr.h>
+#include <netlink/handlers.h>
+#include <netlink/msg.h>
#include <linux/nl80211.h>
@@ -52,15 +54,8 @@ static wifi_error wifi_init_interfaces(wifi_handle handle);
void wifi_socket_set_local_port(struct nl_sock *sock, uint32_t port)
{
- uint32_t pid = getpid() & 0x3FFFFF;
-
- if (port == 0) {
- sock->s_flags &= ~NL_OWN_PORT;
- } else {
- sock->s_flags |= NL_OWN_PORT;
- }
-
- sock->s_local.nl_pid = pid + (port << 22);
+ uint32_t pid = getpid() & 0x3FFFFF;
+ nl_socket_set_local_port(sock, pid + (port << 22));
}
static nl_sock * wifi_create_nl_socket(int port)
@@ -74,12 +69,9 @@ static nl_sock * wifi_create_nl_socket(int port)
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_nl *addr_nl = NULL;
struct sockaddr *addr = NULL;
- ALOGI("sizeof(sockaddr) = %d, sizeof(sockaddr_nl) = %d", sizeof(*addr), sizeof(*addr_nl));
+ ALOGI("sizeof(sockaddr) = %zu, sizeof(sockaddr_nl) = %zu", sizeof(*addr), sizeof(*addr_nl));
// ALOGI("Connecting socket");
if (nl_connect(sock, NETLINK_GENERIC)) {
@@ -131,7 +123,6 @@ wifi_error wifi_initialize(wifi_handle *handle)
return WIFI_ERROR_UNKNOWN;
}
- ALOGI("cb->refcnt = %d", cb->cb_refcnt);
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, internal_valid_message_handler, info);
nl_cb_put(cb);