- size_t len = cp - (uri + 8);
- *connect_host = (char *) xmalloc(len+1);
- memcpy(*connect_host, uri + 8, len);
+ size_t len;
+
+ uri += 8;
+ len = cp - uri;
+ *connect_host = (char *) xmalloc(len + 1);
+ memcpy(*connect_host, uri, len);
+ (*connect_host)[len] = '\0';
+ uri = cp + 1;
+ }
+ }
+ else if (strncmp(uri, "unix:", 5) == 0)
+ {
+ const char *cp;
+
+ uri += 5;
+ cp = strchr(uri, ':');
+ if (cp)
+ {
+ size_t len = cp - uri;
+ *connect_host = (char *) xmalloc(len + 1);
+ memcpy(*connect_host, uri, len);