buffet: Add privet code into buffet binary

Code is still not called, only compiled and unit tested.

BUG=brillo:1161
TEST=`FEATURES=test emerge-gizmo buffet`

Change-Id: I2ba06200698bbec324d3e1598db1c8e261062a39
Reviewed-on: https://chromium-review.googlesource.com/276365
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 9ee85fc..c1f5205 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -4,8 +4,10 @@
       'deps': [
         'dbus-1',
         'expat',
+        'openssl',
         'libchrome-<(libbase_ver)',
         'libchromeos-<(libbase_ver)',
+        'system_api',
       ],
     },
     'include_dirs': ['.'],
@@ -47,6 +49,20 @@
         'notification/xmpp_channel.cc',
         'notification/xmpp_iq_stanza_handler.cc',
         'notification/xmpp_stream_parser.cc',
+        'privet/ap_manager_client.cc',
+        'privet/cloud_delegate.cc',
+        'privet/constants.cc',
+        'privet/daemon_state.cc',
+        'privet/device_delegate.cc',
+        'privet/main.cc',
+        'privet/openssl_utils.cc',
+        'privet/peerd_client.cc',
+        'privet/privet_handler.cc',
+        'privet/privetd_conf_parser.cc',
+        'privet/security_manager.cc',
+        'privet/shill_client.cc',
+        'privet/wifi_bootstrap_manager.cc',
+        'privet/wifi_ssid_generator.cc',
         'registration_status.cc',
         'storage_impls.cc',
         'states/error_codes.cc',
@@ -69,6 +85,49 @@
           ],
           'includes': ['../common-mk/generate-dbus-proxies.gypi'],
         },
+        {
+          # Import D-Bus bindings from peerd.
+          'action_name': 'generate-peerd-proxies',
+          'variables': {
+            'dbus_service_config': '../peerd/dbus_bindings/dbus-service-config.json',
+            'proxy_output_file': 'include/peerd/dbus-proxies.h'
+          },
+          'sources': [
+            '../peerd/dbus_bindings/org.chromium.peerd.Manager.xml',
+            '../peerd/dbus_bindings/org.chromium.peerd.Peer.xml',
+            '../peerd/dbus_bindings/org.chromium.peerd.Service.xml',
+          ],
+          'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+        },
+        {
+          # Import D-Bus bindings from shill.
+          'action_name': 'generate-shill-proxies',
+          'variables': {
+            'dbus_service_config': '../shill/dbus_bindings/dbus-service-config.json',
+            'proxy_output_file': 'include/shill/dbus-proxies.h'
+          },
+          'sources': [
+            '../shill/dbus_bindings/org.chromium.flimflam.Device.xml',
+            '../shill/dbus_bindings/org.chromium.flimflam.Manager.xml',
+            '../shill/dbus_bindings/org.chromium.flimflam.Service.xml',
+          ],
+          'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+        },
+        {
+          # Import D-Bus bindings from apmanager.
+          'action_name': 'generate-apmanager-proxies',
+          'variables': {
+            'dbus_service_config': '../apmanager/dbus_bindings/dbus-service-config.json',
+            'proxy_output_file': 'include/apmanager/dbus-proxies.h'
+          },
+          'sources': [
+            '../apmanager/dbus_bindings/org.chromium.apmanager.Config.xml',
+            '../apmanager/dbus_bindings/org.chromium.apmanager.Device.xml',
+            '../apmanager/dbus_bindings/org.chromium.apmanager.Manager.xml',
+            '../apmanager/dbus_bindings/org.chromium.apmanager.Service.xml',
+          ],
+          'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+        },
       ],
     },
     {
@@ -77,6 +136,12 @@
       'dependencies': [
         'buffet_common',
       ],
+      'variables': {
+        'exported_deps': [
+          'libwebserv-<(libbase_ver)',
+        ],
+        'deps': ['<@(exported_deps)'],
+      },
       'sources': [
         'main.cc',
       ],
@@ -132,6 +197,10 @@
             'notification/xmpp_channel_unittest.cc',
             'notification/xmpp_iq_stanza_handler_unittest.cc',
             'notification/xmpp_stream_parser_unittest.cc',
+            'privet/privetd_conf_parser_unittest.cc',
+            'privet/privet_handler_unittest.cc',
+            'privet/security_manager_unittest.cc',
+            'privet/wifi_ssid_generator_unittest.cc',
             'states/state_change_queue_unittest.cc',
             'states/state_manager_unittest.cc',
             'states/state_package_unittest.cc',
diff --git a/buffet/privet/main.cc b/buffet/privet/main.cc
index f449f4d..2088e37 100644
--- a/buffet/privet/main.cc
+++ b/buffet/privet/main.cc
@@ -30,7 +30,6 @@
 #include "buffet/privet/cloud_delegate.h"
 #include "buffet/privet/constants.h"
 #include "buffet/privet/daemon_state.h"
-#include "buffet/privet/dbus_manager.h"
 #include "buffet/privet/device_delegate.h"
 #include "buffet/privet/peerd_client.h"
 #include "buffet/privet/privet_handler.h"
@@ -151,13 +150,6 @@
           "/privet/ping", chromeos::http::request_type::kGet,
           base::Bind(&Daemon::HelloWorldHandler, base::Unretained(this)));
     }
-
-    dbus_manager_.reset(new DBusManager{object_manager_.get(),
-                                        wifi_bootstrap_manager_.get(),
-                                        cloud_.get(),
-                                        security_.get()});
-    dbus_manager_->RegisterAsync(
-        sequencer->GetHandler("DBusManager.RegisterAsync() failed.", true));
   }
 
   void OnShutdown(int* return_code) override {
@@ -258,7 +250,6 @@
   std::unique_ptr<PeerdClient> peerd_client_;
   std::unique_ptr<PrivetHandler> privet_handler_;
   ScopedObserver<CloudDelegate, CloudDelegate::Observer> cloud_observer_{this};
-  std::unique_ptr<DBusManager> dbus_manager_;
   libwebserv::Server web_server_;
 
   base::WeakPtrFactory<Daemon> weak_ptr_factory_{this};
@@ -269,7 +260,7 @@
 
 }  // namespace privetd
 
-int main(int argc, char* argv[]) {
+int old_main(int argc, char* argv[]) {
   DEFINE_bool(disable_security, false, "disable Privet security for tests");
   DEFINE_bool(enable_ping, false, "enable test HTTP handler at /privet/ping");
   DEFINE_bool(log_to_stderr, false, "log trace messages to stderr as well");