summaryrefslogtreecommitdiff
path: root/base/HidlSupport.cpp
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2017-03-01 23:46:22 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-01 23:46:22 +0000
commit59bd078a6268842ec7d32c053084c10e3cccd772 (patch)
tree8e91b4543042f178a7fc40dfe2e24b9a94279634 /base/HidlSupport.cpp
parent1fad64f440585a84f8d9fc5af318e60132a7746f (diff)
parenta83084fb93559f80cf89db08e3e02d2855b107ec (diff)
downloadlibhidl-59bd078a6268842ec7d32c053084c10e3cccd772.tar.gz
getTransport checks interface and instance names. am: 37b3620ce1 am: 40256807d6
am: a83084fb93 Change-Id: I9ef49283f2c4af2da55bcaa508219dbd675c5e94
Diffstat (limited to 'base/HidlSupport.cpp')
-rw-r--r--base/HidlSupport.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/base/HidlSupport.cpp b/base/HidlSupport.cpp
index c7328d4..6e4b103 100644
--- a/base/HidlSupport.cpp
+++ b/base/HidlSupport.cpp
@@ -29,7 +29,8 @@ namespace android {
namespace hardware {
vintf::Transport getTransportFromManifest(
- const FQName &fqName, const std::string &manifestName,
+ const FQName &fqName, const std::string &instanceName,
+ const std::string &manifestName,
const vintf::HalManifest *vm) {
if (vm == nullptr) {
LOG(WARNING) << "getTransportFromManifest: No " << manifestName << " manifest defined, "
@@ -37,7 +38,8 @@ vintf::Transport getTransportFromManifest(
return vintf::Transport::EMPTY;
}
vintf::Transport tr = vm->getTransport(fqName.package(),
- vintf::Version{fqName.getPackageMajorVersion(), fqName.getPackageMinorVersion()});
+ vintf::Version{fqName.getPackageMajorVersion(), fqName.getPackageMinorVersion()},
+ fqName.name(), instanceName);
if (tr == vintf::Transport::EMPTY) {
LOG(WARNING) << "getTransportFromManifest: Cannot find entry "
<< fqName.string()
@@ -50,10 +52,10 @@ vintf::Transport getTransportFromManifest(
return tr;
}
-vintf::Transport getTransport(const std::string &name) {
- FQName fqName(name);
+vintf::Transport getTransport(const std::string &interfaceName, const std::string &instanceName) {
+ FQName fqName(interfaceName);
if (!fqName.isValid()) {
- LOG(ERROR) << "getTransport: " << name << " is not a valid fully-qualified name.";
+ LOG(ERROR) << "getTransport: " << interfaceName << " is not a valid fully-qualified name.";
return vintf::Transport::EMPTY;
}
if (!fqName.hasVersion()) {
@@ -61,12 +63,17 @@ vintf::Transport getTransport(const std::string &name) {
<< " does not specify a version. Using default transport.";
return vintf::Transport::EMPTY;
}
+ if (fqName.name().empty()) {
+ LOG(ERROR) << "getTransport: " << fqName.string()
+ << " does not specify an interface name. Using default transport.";
+ return vintf::Transport::EMPTY;
+ }
// TODO(b/34772739): modify the list if other packages are added to system/manifest.xml
if (fqName.inPackage("android.hidl")) {
- return getTransportFromManifest(fqName, "framework",
+ return getTransportFromManifest(fqName, instanceName, "framework",
vintf::VintfObject::GetFrameworkHalManifest());
}
- return getTransportFromManifest(fqName, "device",
+ return getTransportFromManifest(fqName, instanceName, "device",
vintf::VintfObject::GetDeviceHalManifest());
}