Following patch makes such config possible:
<urllist>
<baseurl>http://www.site.com</baseurl>
<url>/</url>
<url>/foo.html</url>
<url>/cgi-bin/bar.cgi</url>
</urllist>
Might be useful if you move/install your site/app around quite a lot.
I'm not sure if I got everything right (apr_pstrcat with overleaping
strings -- is it safe?), but if there are no objections I'll comit this
patch later today.
regards,
--
Jacek Prucia
7bulls.com S.A.
http://www.7bulls.com/
diff -urN flood.orig/config.h.in flood/config.h.in
--- flood.orig/config.h.in 2002-09-06 12:16:09.000000000 +0200
+++ flood/config.h.in 2002-09-13 14:17:31.000000000 +0200
@@ -13,6 +13,7 @@
#define XML_URLLIST_SEQUENCE "sequence"
#define XML_URLLIST_SEQUENCE_NAME "sequencename"
#define XML_URLLIST_SEQUENCE_LIST "sequencelist"
+#define XML_URLLIST_BASE_URL "baseurl"
#define XML_URLLIST_URL "url"
#define XML_URLLIST_METHOD "method"
#define XML_URLLIST_METHOD_GET "get"
diff -urN flood.orig/flood_round_robin.c flood/flood_round_robin.c
--- flood.orig/flood_round_robin.c 2002-09-09 11:36:01.000000000 +0200
+++ flood/flood_round_robin.c 2002-09-13 14:17:24.000000000 +0200
@@ -136,6 +136,7 @@
int urls;
url_t *url;
+ char *baseurl;
cookie_t *cookie;
@@ -664,7 +665,7 @@
apr_status_t rv;
int i;
struct apr_xml_elem *root_elem, *profile_elem,
- *urllist_elem, *count_elem, *useurllist_elem, *e;
+ *urllist_elem, *count_elem, *useurllist_elem, *baseurl_elem, *e;
round_robin_profile_t *p;
char *xml_profile, *xml_urllist, *urllist_name;
@@ -732,6 +733,15 @@
xml_urllist, XML_URLLIST_NAME, urllist_name)) != APR_SUCCESS)
return rv;
+ /* do we have base url? */
+ if ((rv = retrieve_xml_elem_child(
+ &baseurl_elem, urllist_elem, XML_URLLIST_BASE_URL)) ==
APR_SUCCESS) {
+ /* yes we do */
+ p->baseurl = apr_pstrdup(pool, baseurl_elem->first_cdata.first->text);
+ } else {
+ p->baseurl = NULL;
+ }
+
p->urls = 0;
/* Include sequences. We'll expand them later. */
p->urls = count_xml_seq_child(urllist_elem);
@@ -828,6 +838,10 @@
r->parsed_uri = apr_pcalloc(rp->pool, sizeof(apr_uri_t));
+ if (rp->baseurl != NULL) {
+ r->uri = apr_pstrcat(rp->pool, rp->baseurl, r->uri, NULL);
+ }
+
apr_uri_parse(rp->pool, r->uri, r->parsed_uri);
if (r->parsed_uri->scheme == NULL || r->parsed_uri->hostname == NULL) {
apr_file_printf(local_stderr, "Misformed URL '%s'\n", r->uri);