+ if ((val = strchr(c->host_port, '%')) != 0) {
+ /* We recognise <username>:<password>%<string> for embedded
+ * authentication. This is slightly hacky syntax, but it's
+ * hard to get into the comstack code in a
+ * protocol-independent way.
+ */
+ char *remainder, *pass;
+
+ *(char*)val = '\0';
+ remainder = xstrdup(val+1);
+ pass = strchr(c->host_port, ':');
+ if (pass != 0) {
+ *pass++ = '\0';
+ ZOOM_connection_option_set(c, "user", c->host_port);
+ ZOOM_connection_option_set(c, "password", pass);
+ }
+ xfree(c->host_port);
+ c->host_port = remainder;
+ }
+