shill: chromeos DBus proxy for dhcpcd

Implement ChromeosDHCPCDListener by registering a filter function and
adding a match rule directly to the bus, which introduces a direct
dependency on libdbus-1.

Also dhcpcd proxy does not listen for signals, since those signals are
monitored/processed by dhcpcd listener.

BUG=chromium:507869
TEST=USE="chromeos_dbus asan clang" FEATURES=test emerge-$BOARD shill
TEST=Verify ChromeosDHCPCDListener with a simple test daemon

Change-Id: I0b5ec4acdc5c273388b0b16ffb9b6b67f45b8c89
Reviewed-on: https://chromium-review.googlesource.com/288294
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
diff --git a/shill.gyp b/shill.gyp
index 7fafc8c..05cb6ba 100644
--- a/shill.gyp
+++ b/shill.gyp
@@ -33,6 +33,13 @@
           'DISABLE_CHROMEOS_DBUS',
         ],
       }],
+      ['USE_chromeos_dbus == 1', {
+        'variables': {
+          'deps': [
+            'dbus-1',
+          ],
+        },
+      }],
       ['USE_pppoe == 0', {
         'defines': [
           'DISABLE_PPPOE',
@@ -322,6 +329,8 @@
             'dbus/chromeos_dbus_control.cc',
             'dbus/chromeos_dbus_daemon.cc',
             'dbus/chromeos_device_dbus_adaptor.cc',
+            'dbus/chromeos_dhcpcd_listener.cc',
+            'dbus/chromeos_dhcpcd_proxy.cc',
             'dbus/chromeos_ipconfig_dbus_adaptor.cc',
             'dbus/chromeos_manager_dbus_adaptor.cc',
             'dbus/chromeos_profile_dbus_adaptor.cc',
@@ -332,6 +341,16 @@
           ],
           'actions': [
             {
+              'action_name': 'generate-dhcpcd-proxies',
+              'variables': {
+                'proxy_output_file': 'include/dhcpcd/dbus-proxies.h',
+              },
+              'sources': [
+                'dbus_bindings/dhcpcd.xml',
+              ],
+              'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+            },
+            {
               'action_name': 'generate-upstart-proxies',
               'variables': {
                 'proxy_output_file': 'include/upstart/dbus-proxies.h',