cs_get_host_args: allow unix:path:args notation
[yaz-moved-to-github.git] / src / comstack.c
index 066fafd..306ec6d 100644 (file)
@@ -35,16 +35,8 @@ static const char *cs_errlist[] =
 
 const char *cs_errmsg(int n)
 {
-    static char buf[250];
-
-    if (n < CSNONE || n > CSLASTERROR) {
-        sprintf(buf, "unknown comstack error %d", n);
-        return buf;
-    }
-    if (n == CSYSERR) {
-        sprintf(buf, "%s: %s", cs_errlist[n], strerror(errno));
-        return buf;
-    }
+    if (n < CSNONE || n > CSLASTERROR)
+        n = CSNONE;
     return cs_errlist[n];
 }
 
@@ -59,10 +51,14 @@ void cs_get_host_args(const char *type_and_host, const char **args)
     if (!strncmp(type_and_host, "unix:", 5))
     {
         const char *cp = strchr(type_and_host + 5, ':');
-        if (cp)
-            type_and_host = cp + 1;
-        else
-            type_and_host += strlen(type_and_host); /* empty string */
+        if (!cp)
+            return;
+        type_and_host = cp + 1;
+        if (!strchr(type_and_host, ':'))
+        {
+            *args = type_and_host;  /* unix:path:args */
+            return;
+        }
     }
     if (*type_and_host)
     {
@@ -73,7 +69,7 @@ void cs_get_host_args(const char *type_and_host, const char **args)
                 cp = strchr(cp + 2, '/');
         }
         if (cp)
-            *args = cp+1;
+            *args = cp + 1;
     }
 }