privet: only enable publisher if dns_sd is set

Change-Id: I9531319c2a20bd77b3fcf3ab0cb4c8bdf8c0cc78
Reviewed-on: https://weave-review.googlesource.com/1213
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 7feadc0..ff19082 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -57,7 +57,6 @@
   device_info_->Start();
 
   if (http_server) {
-    CHECK(dns_sd);
     StartPrivet(task_runner, network, dns_sd, http_server, wifi, bluetooth);
   } else {
     CHECK(!dns_sd);
diff --git a/libweave/src/privet/privet_manager.cc b/libweave/src/privet/privet_manager.cc
index e7b0052..ac47c6c 100644
--- a/libweave/src/privet/privet_manager.cc
+++ b/libweave/src/privet/privet_manager.cc
@@ -74,8 +74,10 @@
     wifi_bootstrap_manager_->Init();
   }
 
-  publisher_.reset(new Publisher(device_.get(), cloud_.get(),
-                                 wifi_bootstrap_manager_.get(), dns_sd));
+  if (dns_sd) {
+    publisher_.reset(new Publisher(device_.get(), cloud_.get(),
+                                   wifi_bootstrap_manager_.get(), dns_sd));
+  }
 
   privet_handler_.reset(new PrivetHandler(cloud_.get(), device_.get(),
                                           security_.get(),