const gchar *name_owner,
gpointer user_data) {
FdBroker* broker = static_cast<FdBroker*>(user_data);
+ int pid = broker->GetSenderPid(connection, name_owner);
+ char owner_appid[255] = { 0, };
+
+ if (aul_app_get_appid_bypid(pid, owner_appid, sizeof(owner_appid)) < 0) {
+ LOGE("aul_app_get_appid_bypid failed %d", pid);
+ broker->watcher_->OnPortRejected(owner_appid);
+ return;
+ }
+
+ if (broker->watch_appid_ != owner_appid) {
+ LOGE("invalid appid %s", owner_appid);
+ broker->watcher_->OnPortRejected(owner_appid);
+ return;
+ }
+
broker->watcher_->OnPortAppeared(broker->watch_appid_,
broker->watch_port_name_);
}
const std::string& port_name) = 0;
virtual void OnPortVanished(const std::string& appid,
const std::string& port_name) = 0;
+ virtual void OnPortRejected(const std::string& appid) = 0;
};
FdBroker(bool mock = false) : mock_(mock) {}
return 0;
}
+void Proxy::OnPortRejected(const std::string& appid) {
+ if (listener_ == nullptr)
+ return;
+ listener_->OnRejected(appid);
+ listener_ = nullptr;
+}
+
void Proxy::OnPortAppeared(const std::string& appid,
const std::string& port_name) {
LOGD("endpoint(%s), port_name(%s)", appid.c_str(), port_name.c_str());
const std::string& port_name) override;
void OnPortVanished(const std::string& appid,
const std::string& port_name) override;
+ void OnPortRejected(const std::string& appid) override;
private:
std::string port_name_;