shill: Move netlink functionality to libshill-net shared library
By exporting netlink functionality to a shared library, other
applications can use the interfaces provided by this library
to communicate with the cfg80211 kernel module and mac80211 drivers.
To use this library, add dependency for libshill-net-<(libbase_ver) in
your gyp file, and include the headers from <shill/net/*>
BUG=chromium:427982
TEST=unittests, run wifi_matfunc suite for shill regression test
Change-Id: Ia8ea063daaa63de27fe81e153458e149586086ec
Reviewed-on: https://chromium-review.googlesource.com/226830
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
diff --git a/shill.gyp b/shill.gyp
index 6d8cdbd..0f75dce 100644
--- a/shill.gyp
+++ b/shill.gyp
@@ -137,6 +137,8 @@
'variables': {
'exported_deps': [
'glib-2.0',
+ 'libnl-3.0',
+ 'libnl-genl-3.0',
],
'deps': ['<@(exported_deps)'],
},
@@ -144,13 +146,22 @@
'-fvisibility=default',
],
'sources': [
+ 'net/attribute_list.cc',
'net/byte_string.cc',
+ 'net/control_netlink_attribute.cc',
+ 'net/generic_netlink_message.cc',
'net/glib_io_input_handler.cc',
'net/glib_io_ready_handler.cc',
'net/io_handler_factory.cc',
'net/io_input_handler.cc',
'net/io_ready_handler.cc',
'net/ip_address.cc',
+ 'net/netlink_attribute.cc',
+ 'net/netlink_manager.cc',
+ 'net/netlink_message.cc',
+ 'net/netlink_socket.cc',
+ 'net/nl80211_attribute.cc',
+ 'net/nl80211_message.cc',
'net/rtnl_handler.cc',
'net/rtnl_listener.cc',
'net/rtnl_message.cc',
@@ -168,6 +179,7 @@
],
'sources': [
'net/mock_io_handler_factory.cc',
+ 'net/mock_netlink_manager.cc',
'net/mock_rtnl_handler.cc',
'net/mock_sockets.cc',
'net/mock_time.cc',
@@ -191,8 +203,6 @@
'glib-2.0',
'libcares',
'libmetrics-<(libbase_ver)',
- 'libnl-3.0',
- 'libnl-genl-3.0',
'protobuf-lite',
],
'deps': ['<@(exported_deps)'],
@@ -299,7 +309,6 @@
'arp_client.cc',
'arp_packet.cc',
'async_connection.cc',
- 'attribute_list.cc',
'callback80211_metrics.cc',
'certificate_file.cc',
'connection.cc',
@@ -308,7 +317,6 @@
'connection_info_reader.cc',
'connection_tester.cc',
'connectivity_trial.cc',
- 'control_netlink_attribute.cc',
'crypto_des_cbc.cc',
'crypto_provider.cc',
'crypto_rot47.cc',
@@ -344,7 +352,6 @@
'external_task.cc',
'file_io.cc',
'file_reader.cc',
- 'generic_netlink_message.cc',
'geolocation_info.cc',
'glib.cc',
'hook_table.cc',
@@ -363,12 +370,6 @@
'manager.cc',
'manager_dbus_adaptor.cc',
'metrics.cc',
- 'netlink_attribute.cc',
- 'netlink_manager.cc',
- 'netlink_message.cc',
- 'netlink_socket.cc',
- 'nl80211_attribute.cc',
- 'nl80211_message.cc',
'pending_activation_store.cc',
'portal_detector.cc',
'power_manager.cc',
@@ -584,12 +585,6 @@
'ipconfig_unittest.cc',
'key_file_store_unittest.cc',
'key_value_store_unittest.cc',
- 'net/byte_string_unittest.cc',
- 'net/ip_address_unittest.cc',
- 'net/rtnl_handler_unittest.cc',
- 'net/rtnl_listener_unittest.cc',
- 'net/rtnl_message_unittest.cc',
- 'net/shill_time_unittest.cc',
'link_monitor_unittest.cc',
'mac80211_monitor_unittest.cc',
'manager_unittest.cc',
@@ -634,7 +629,6 @@
'mock_mac80211_monitor.cc',
'mock_manager.cc',
'mock_metrics.cc',
- 'mock_netlink_manager.cc',
'mock_pending_activation_store.cc',
'mock_portal_detector.cc',
'mock_power_manager.cc',
@@ -663,9 +657,15 @@
'mock_wifi.cc',
'mock_wifi_provider.cc',
'mock_wifi_service.cc',
- 'netlink_manager_unittest.cc',
- 'netlink_message_unittest.cc',
- 'netlink_socket_unittest.cc',
+ 'net/byte_string_unittest.cc',
+ 'net/ip_address_unittest.cc',
+ 'net/netlink_manager_unittest.cc',
+ 'net/netlink_message_unittest.cc',
+ 'net/netlink_socket_unittest.cc',
+ 'net/rtnl_handler_unittest.cc',
+ 'net/rtnl_listener_unittest.cc',
+ 'net/rtnl_message_unittest.cc',
+ 'net/shill_time_unittest.cc',
'nice_mock_control.cc',
'pending_activation_store_unittest.cc',
'portal_detector_unittest.cc',