summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDong Sun Lee <ds73.lee@samsung.com>2016-09-25 18:40:57 -0700
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>2016-09-25 18:40:57 -0700
commit90ad2c656479499ae0e49433f8ccb881417c233e (patch)
treef514d8137ac6e9ed5d1f4ba6b43beabcc0531eb5
parent6b228889696a909475089aca883a68fc8c279d13 (diff)
parenta34c9f9a3d6b919cd44cc716e4102481e1f6e4b4 (diff)
downloadkey-manager-90ad2c656479499ae0e49433f8ccb881417c233e.tar.gz
key-manager-90ad2c656479499ae0e49433f8ccb881417c233e.tar.bz2
key-manager-90ad2c656479499ae0e49433f8ccb881417c233e.zip
-rw-r--r--src/manager/main/socket-2-id-mockup.cpp2
-rw-r--r--src/manager/main/socket-2-id-wrapper.cpp2
-rw-r--r--src/manager/main/socket-2-id.cpp12
-rw-r--r--src/manager/main/socket-2-id.h1
4 files changed, 17 insertions, 0 deletions
diff --git a/src/manager/main/socket-2-id-mockup.cpp b/src/manager/main/socket-2-id-mockup.cpp
index 6b21a32e..222976d5 100644
--- a/src/manager/main/socket-2-id-mockup.cpp
+++ b/src/manager/main/socket-2-id-mockup.cpp
@@ -68,6 +68,8 @@ int Socket2Id::translate(int sock, std::string &result)
if (0 > getPkgIdFromSmack(smack, pkgId))
return -1;
+ mapToDomainLabel(pkgId);
+
result = std::move(pkgId);
return 0;
}
diff --git a/src/manager/main/socket-2-id-wrapper.cpp b/src/manager/main/socket-2-id-wrapper.cpp
index 3d30c4b7..2eb9f369 100644
--- a/src/manager/main/socket-2-id-wrapper.cpp
+++ b/src/manager/main/socket-2-id-wrapper.cpp
@@ -81,6 +81,8 @@ int Socket2Id::translate(int sock, std::string &result)
pkgId = "/" + smack;
}
+ mapToDomainLabel(pkgId);
+
result = pkgId;
m_stringMap.emplace(std::move(smack), std::move(pkgId));
return 0;
diff --git a/src/manager/main/socket-2-id.cpp b/src/manager/main/socket-2-id.cpp
index a9efe1b0..b6f43c08 100644
--- a/src/manager/main/socket-2-id.cpp
+++ b/src/manager/main/socket-2-id.cpp
@@ -70,6 +70,18 @@ int Socket2Id::getCredentialsFromSocket(int sock, std::string &res)
return assignToString(result, length, res);
}
+void Socket2Id::mapToDomainLabel(std::string &label)
+{
+ static const std::string subdomainSep = "::";
+ static const auto systemLabelLen = strlen(OWNER_ID_SYSTEM);
+
+ if (label.length() > systemLabelLen + subdomainSep.length() &&
+ label.compare(0, systemLabelLen, OWNER_ID_SYSTEM) == 0 &&
+ label.compare(systemLabelLen, subdomainSep.length(), subdomainSep) == 0) {
+ label = OWNER_ID_SYSTEM;
+ }
+}
+
void Socket2Id::resetCache()
{
m_stringMap.clear();
diff --git a/src/manager/main/socket-2-id.h b/src/manager/main/socket-2-id.h
index afa863ab..3e970c28 100644
--- a/src/manager/main/socket-2-id.h
+++ b/src/manager/main/socket-2-id.h
@@ -36,6 +36,7 @@ public:
private:
int getCredentialsFromSocket(int sock, std::string &res);
+ void mapToDomainLabel(std::string &label);
typedef std::map<std::string, std::string> StringMap;
StringMap m_stringMap;