This sounds reasonable to me, did it ever get committed?
-aaron
On Fri, Feb 13, 2004 at 09:44:15AM +0100, Philippe Marzouk wrote:
> I needed to be able to set the content-type in POST type url, for
> example to send a file so I added a parameter to the url element.
>
> The patch is attached to this mail for inclusion if it suits you
>
> Philippe
> Index: config.h.in
> ===================================================================
> RCS file: /home/cvspublic/httpd-test/flood/config.h.in,v
> retrieving revision 1.30
> diff -u -b -B -r1.30 config.h.in
> --- config.h.in 9 Sep 2003 13:59:17 -0000 1.30
> +++ config.h.in 13 Feb 2004 08:35:51 -0000
> @@ -22,6 +22,7 @@
> #define XML_URLLIST_METHOD_POST "post"
> #define XML_URLLIST_METHOD_HEAD "head"
> #define XML_URLLIST_PAYLOAD "payload"
> +#define XML_URLLIST_CONTENT_TYPE "content-type"
> #define XML_URLLIST_PAYLOAD_TEMPLATE "payloadtemplate"
> #define XML_URLLIST_REQUEST_TEMPLATE "requesttemplate"
> #define XML_URLLIST_RESPONSE_TEMPLATE "responsetemplate"
> Index: flood_profile.h
> ===================================================================
> RCS file: /home/cvspublic/httpd-test/flood/flood_profile.h,v
> retrieving revision 1.14
> diff -u -b -B -r1.14 flood_profile.h
> --- flood_profile.h 1 Jan 2004 13:38:36 -0000 1.14
> +++ flood_profile.h 13 Feb 2004 08:35:51 -0000
> @@ -108,6 +108,9 @@
> /* Following only valid when method == POST */
> apr_size_t payloadsize;
> void * payload;
> +
> + apr_size_t contenttypesize;
> + char * contenttype;
>
> apr_uri_t *parsed_uri;
>
> Index: flood_round_robin.c
> ===================================================================
> RCS file: /home/cvspublic/httpd-test/flood/flood_round_robin.c,v
> retrieving revision 1.38
> diff -u -b -B -r1.38 flood_round_robin.c
> --- flood_round_robin.c 1 Jan 2004 13:38:36 -0000 1.38
> +++ flood_round_robin.c 13 Feb 2004 08:35:52 -0000
> @@ -109,6 +109,7 @@
> char *url;
> method_e method;
> char *payload;
> + char *contenttype;
> apr_int64_t predelay;
> apr_int64_t predelayprecision;
> apr_int64_t postdelay;
> @@ -346,7 +347,7 @@
> "Connection: %s" CRLF
> "Host: %s" CRLF
> "Content-Length: %d" CRLF
> - "Content-type:
> application/x-www-form-urlencoded" CRLF
> + "Content-type: %s" CRLF
> "%s"
> "%s" CRLF
> "%s",
> @@ -356,6 +357,7 @@
> r->keepalive ? "Keep-Alive" : "Close",
> r->parsed_uri->hostinfo,
> r->payloadsize,
> + r->contenttype ? r->contenttype :
> "application/x-www-form-urlencoded",
> authz_hdr ? authz_hdr : "",
> cookies,
> (char*)r->payload);
> @@ -432,6 +434,10 @@
> FLOOD_STRLEN_MAX) == 0) {
> url->payload = (char*)attr->value;
> }
> + else if (strncasecmp(attr->name,XML_URLLIST_CONTENT_TYPE,
> + FLOOD_STRLEN_MAX) == 0) {
> + url->contenttype = (char*)attr->value;
> + }
> else if (strncasecmp(attr->name, XML_URLLIST_PREDELAY,
> FLOOD_STRLEN_MAX) == 0) {
> char *endptr;
> @@ -527,6 +533,7 @@
> {
> url->method = GET;
> url->payload = NULL;
> + url->contenttype = NULL;
> }
>
> return APR_SUCCESS;
> @@ -821,6 +828,12 @@
> r->payload = parse_param_string(rp,
>
> rp->url[rp->current_url].payloadtemplate);
> r->payloadsize = strlen(r->payload);
> + }
> +
> + if (rp->url[rp->current_url].contenttype)
> + {
> + r->contenttype = parse_param_string(rp,
> rp->url[rp->current_url].contenttype);
> + r->contenttypesize = strlen(r->contenttype);
> }
>
> /* If they want a sleep, do it now. */