shill: Parse dhcpcd Event signal properties.

BUG=chromium-os:16126
TEST=unit test

Change-Id: Idafd3cebc015a5f900fd589c27dfcd1b405da7ef
Reviewed-on: http://gerrit.chromium.org/gerrit/2126
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/dhcpcd_proxy.cc b/dhcpcd_proxy.cc
index 9f577c5..2552a29 100644
--- a/dhcpcd_proxy.cc
+++ b/dhcpcd_proxy.cc
@@ -8,7 +8,9 @@
 
 #include "shill/dhcp_provider.h"
 
+using std::map;
 using std::string;
+using std::vector;
 
 namespace shill {
 
@@ -38,8 +40,12 @@
     return;
   }
   config->InitProxy(&conn(), signal.sender());
-  // TODO(petkov): Process and dispatch the signal to the appropriate DHCP
-  // configuration.
+
+  string reason;
+  ri >> reason;
+  DHCPConfig::Configuration configuration;
+  ri >> configuration;
+  config->ProcessEventSignal(reason, configuration);
 }
 
 void DHCPCDListener::StatusChangedSignal(const DBus::SignalMessage &signal) {
@@ -74,15 +80,14 @@
   Rebind(interface);
 }
 
-void DHCPCDProxy::Event(
-    const uint32_t& pid,
-    const std::string& reason,
-    const std::map< std::string, DBus::Variant >& configuration) {
+void DHCPCDProxy::Event(const uint32_t &pid,
+                        const std::string &reason,
+                        const DHCPConfig::Configuration &configuration) {
   NOTREACHED();
 }
 
-void DHCPCDProxy::StatusChanged(const uint32_t& pid,
-                                const std::string& status) {
+void DHCPCDProxy::StatusChanged(const uint32_t &pid,
+                                const std::string &status) {
   NOTREACHED();
 }