daemon: register device after component init Bug:27276010 Change-Id: I97b2d00b5a8ca3c716ff3d8f2b042e2242579f28 Reviewed-on: https://weave-review.googlesource.com/2713 Reviewed-by: Johan Euphrosine <proppy@google.com>
diff --git a/examples/daemon/common/daemon.h b/examples/daemon/common/daemon.h index 0b3c25a..22591a2 100644 --- a/examples/daemon/common/daemon.h +++ b/examples/daemon/common/daemon.h
@@ -92,16 +92,18 @@ http_client_.get(), network_.get(), dns_sd_.get(), http_server_.get(), wifi_.get(), bluetooth_.get()); - if (!opts.registration_ticket.empty()) { - weave::RegistrationData data; - data.ticket_id = opts.registration_ticket; - data.service_url = opts.service_url; - device_->Register(data, base::Bind(&OnRegisterDeviceDone, device_.get())); + registration_data_.ticket_id = opts.registration_ticket; + registration_data_.service_url = opts.service_url; } } - void Run() { task_runner_->Run(); } + void Run() { + if (!registration_data_.ticket_id.empty()) { + device_->Register(registration_data_, base::Bind(&OnRegisterDeviceDone, device_.get())); + } + task_runner_->Run(); + } weave::Device* GetDevice() const { return device_.get(); } @@ -127,4 +129,5 @@ std::unique_ptr<weave::examples::HttpServerImpl> http_server_; std::unique_ptr<weave::examples::WifiImpl> wifi_; std::unique_ptr<weave::Device> device_; + weave::RegistrationData registration_data_; };