summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Koskovich <akoskovich@pm.me>2022-03-06 15:51:51 -0700
committeralk3pInjection <webmaster@raspii.tech>2022-05-02 12:00:45 +0800
commit6cbe0c30150357b131d6c09d7729c5f9cf7b0daa (patch)
tree8debe48b360cb1195c012f303a9ca57fed04f984
parent5936b4ce1cb121cffe64a76e7313a8208dc99038 (diff)
init: Skip interface duplicates if service is an override
These aren't actually duplicate interfaces because we are overriding the service so interfaces in the original definition will never be used. Test: Verify 'm dist' works without complaining about duplicate interfaces. Change-Id: Iab5e1d8bb4cb7d5b2608028c3cee73af94c47424
-rw-r--r--init/service_parser.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/init/service_parser.cpp b/init/service_parser.cpp
index 57c311a52..35bd41596 100644
--- a/init/service_parser.cpp
+++ b/init/service_parser.cpp
@@ -202,7 +202,7 @@ Result<void> ServiceParser::ParseInterface(std::vector<std::string>&& args) {
const std::string fullname = interface_name + "/" + instance_name;
for (const auto& svc : *service_list_) {
- if (svc->interfaces().count(fullname) > 0) {
+ if (svc->interfaces().count(fullname) > 0 && !service_->is_override()) {
return Error() << "Interface '" << fullname << "' redefined in " << service_->name()
<< " but is already defined by " << svc->name();
}