summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b584d89)
embedded in the host string, like this:
admin:secretpw%localhost:9999/gils
i.e. if there is a "%" sign, then what comes before is taken as a
":"-separated user/password pair. This is a bit hacky, but necessary
to run zoomtst9 against secured databases, and it's much more general
than just adding authentication parameters to that one program.
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.52 2005-11-16 16:07:52 mike Exp $
+ * $Id: zoom-c.c,v 1.53 2005-12-07 16:15:15 mike Exp $
else
c->host_port = xstrdup(host);
else
c->host_port = xstrdup(host);
+ 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*)val = '\0';
+ char *remainder = xstrdup(val+1);
+ char *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;
+ }
+
ZOOM_options_set(c->options, "host", c->host_port);
val = ZOOM_options_get (c->options, "cookie");
ZOOM_options_set(c->options, "host", c->host_port);
val = ZOOM_options_get (c->options, "cookie");
ZOOM_options_get(c->options, "implementationName"),
odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName));
ZOOM_options_get(c->options, "implementationName"),
odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName));
- version = odr_strdup(c->odr_out, "$Revision: 1.52 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.53 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion = odr_prepend(c->odr_out,
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion = odr_prepend(c->odr_out,