utils.c: optimization
authorFelipe Barriga Richards <spam@felipebarriga.cl>
Thu, 16 Feb 2017 16:50:59 +0000 (13:50 -0300)
committerFelipe Barriga Richards <spam@felipebarriga.cl>
Thu, 16 Feb 2017 17:11:08 +0000 (14:11 -0300)
utils.c

diff --git a/utils.c b/utils.c
index 10593e6f90d67ed6a414937ea9dc509f22c28ccc..f245e7e3e84849b0a62d57a9c5dd09ff872749bb 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -62,20 +62,32 @@ const int filename_is_sidecar(const char *string) {
     return 0;
 }
 
+#define USER_NAMESPACE "user."
+#define SYSTEM_NAMESPACE "system."
+#define SECURITY_NAMESPACE "security."
+#define TRUSTED_NAMESPACE "trusted."
+
+const size_t USER_NAMESPACE_SIZE     = strlen(USER_NAMESPACE);
+const size_t SYSTEM_NAMESPACE_SIZE   = strlen(SYSTEM_NAMESPACE);
+const size_t SECURITY_NAMESPACE_SIZE = strlen(SECURITY_NAMESPACE);
+const size_t THRUSTED_NAMESPACE_SIZE = strlen(TRUSTED_NAMESPACE);
+
 enum namespace get_namespace(const char *name) {
-    if (strncmp(name, "user.", strlen("user.")) == 0) {
+    size_t name_size = strlen(name);
+
+    if (name_size > USER_NAMESPACE_SIZE && memcmp(name, USER_NAMESPACE, USER_NAMESPACE_SIZE) == 0) {
         return USER;
     }
 
-    if (strncmp(name, "system.", strlen("system.")) == 0) {
+    if (name_size > SYSTEM_NAMESPACE_SIZE && memcmp(name, SYSTEM_NAMESPACE, SYSTEM_NAMESPACE_SIZE) == 0) {
         return SYSTEM;
     }
 
-    if (strncmp(name, "security.", strlen("security.")) == 0) {
+    if (name_size > SECURITY_NAMESPACE_SIZE && memcmp(name, SECURITY_NAMESPACE, SECURITY_NAMESPACE_SIZE) == 0) {
         return SECURITY;
     }
 
-    if (strncmp(name, "trusted.", strlen("trusted.")) == 0) {
+    if (name_size > THRUSTED_NAMESPACE_SIZE && memcmp(name, TRUSTED_NAMESPACE, THRUSTED_NAMESPACE_SIZE) == 0) {
         return TRUSTED;
     }