const char kIDPrefixGcd[] = "gcd:";
const char kIDPrefixMdns[] = "mdns:";
-#if defined(ENABLE_WIFI_BOOTSTRAPPING)
const char kPrivatAPISetup[] = "/privet/v3/setup/start";
const char kPrivetKeyWifi[] = "wifi";
const char kPrivetKeyPassphrase[] = "passphrase";
const char kPrivetKeySSID[] = "ssid";
const char kPrivetKeyPassphraseDotted[] = "wifi.passphrase";
-#endif // ENABLE_WIFI_BOOTSTRAPPING
scoped_ptr<Event> MakeDeviceStateChangedEvent(
const gcd_private::GCDDevice& device) {
int port,
ConfirmationCodeCallback callback);
- void ConfirmCode(int session_id, SessionEstablishedCallback callback);
+ void ConfirmCode(int session_id,
+ const std::string& code,
+ SessionEstablishedCallback callback);
void SendMessage(int session_id,
const std::string& api,
#if defined(ENABLE_WIFI_BOOTSTRAPPING)
scoped_ptr<local_discovery::wifi::WifiManager> wifi_manager_;
- PasswordMap wifi_passwords_;
#endif
+ PasswordMap wifi_passwords_;
};
class GcdPrivateRequest : public local_discovery::PrivetV3Session::Request {
void Start(const ConfirmationCodeCallback& callback);
void ConfirmCode(
+ const std::string& code,
const GcdPrivateAPIImpl::SessionEstablishedCallback& callback);
void SendMessage(const std::string& api,
private:
// local_discovery::PrivetV3Session::Delegate implementation.
virtual void OnSetupConfirmationNeeded(
- const std::string& confirmation_code) OVERRIDE;
- virtual void OnSessionEstablished() OVERRIDE;
- virtual void OnCannotEstablishSession() OVERRIDE;
+ const std::string& confirmation_code,
+ api::gcd_private::ConfirmationType confirmation_type) OVERRIDE;
+ virtual void OnSessionStatus(api::gcd_private::Status status) OVERRIDE;
scoped_ptr<local_discovery::PrivetHTTPClient> http_client_;
scoped_ptr<local_discovery::PrivetV3Session> privet_session_;
}
void GcdPrivateAPIImpl::ConfirmCode(int session_id,
+ const std::string& code,
SessionEstablishedCallback callback) {
GCDSessionMap::iterator found = sessions_.find(session_id);
return;
}
- found->second->ConfirmCode(callback);
+ found->second->ConfirmCode(code, callback);
}
void GcdPrivateAPIImpl::SendMessage(int session_id,
const base::DictionaryValue& input,
MessageResponseCallback callback) {
const base::DictionaryValue* input_actual = &input;
-#if defined(ENABLE_WIFI_BOOTSTRAPPING)
scoped_ptr<base::DictionaryValue> input_cloned;
if (api == kPrivatAPISetup) {
}
}
}
-#endif
GCDSessionMap::iterator found = sessions_.find(session_id);
}
void GcdPrivateSessionHolder::ConfirmCode(
+ const std::string& code,
const GcdPrivateAPIImpl::SessionEstablishedCallback& callback) {
session_established_callback_ = callback;
- privet_session_->ConfirmCode();
+ privet_session_->ConfirmCode(code);
}
void GcdPrivateSessionHolder::SendMessage(
}
void GcdPrivateSessionHolder::OnSetupConfirmationNeeded(
- const std::string& confirmation_code) {
- confirm_callback_.Run(gcd_private::STATUS_SUCCESS,
- confirmation_code,
- gcd_private::CONFIRMATION_TYPE_DISPLAYCODE);
+ const std::string& confirmation_code,
+ gcd_private::ConfirmationType confirmation_type) {
+ confirm_callback_.Run(
+ gcd_private::STATUS_SUCCESS, confirmation_code, confirmation_type);
confirm_callback_.Reset();
}
-void GcdPrivateSessionHolder::OnSessionEstablished() {
- session_established_callback_.Run(gcd_private::STATUS_SUCCESS);
-
- session_established_callback_.Reset();
-}
-
-void GcdPrivateSessionHolder::OnCannotEstablishSession() {
- session_established_callback_.Run(gcd_private::STATUS_SESSIONERROR);
+void GcdPrivateSessionHolder::OnSessionStatus(gcd_private::Status status) {
+ session_established_callback_.Run(status);
session_established_callback_.Reset();
}
gcd_private::Status status,
const std::string& confirm_code,
gcd_private::ConfirmationType confirmation_type) {
- results_ = gcd_private::EstablishSession::Results::Create(
- session_id, status, confirm_code, confirmation_type);
+ gcd_private::ConfirmationInfo info;
+
+ info.type = confirmation_type;
+ if (!confirm_code.empty()) {
+ info.code.reset(new std::string(confirm_code));
+ }
+
+ results_ =
+ gcd_private::EstablishSession::Results::Create(session_id, status, info);
SendResponse(true);
}
gcd_api->ConfirmCode(
params->session_id,
+ params->code,
base::Bind(&GcdPrivateConfirmCodeFunction::OnSessionEstablishedCallback,
this));