From 5323340cae2f11f2784279acf8f97db401694054 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 24 Aug 2001 07:01:09 +0000 Subject: Kevin Roth's comments about -G have been addressed: o -G -I works on the same command line and makes HEAD instead of GET o -G with an already present question mark in the URL makes an ampersand get added as a separator instead --- src/main.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 0e82748cc..bb63527d1 100644 --- a/src/main.c +++ b/src/main.c @@ -1654,7 +1654,8 @@ operate(struct Configurable *config, int argc, char *argv[]) httpgetfields = strdup(config->postfields); free(config->postfields); config->postfields = NULL; - if(SetHTTPrequest(HTTPREQ_GET, &config->httpreq)) { + if(SetHTTPrequest((config->conf&CONF_NOBODY?HTTPREQ_HEAD:HTTPREQ_GET), + &config->httpreq)) { free(httpgetfields); return PARAM_BAD_USE; } @@ -1858,12 +1859,22 @@ operate(struct Configurable *config, int argc, char *argv[]) if (httpgetfields) { /* Find out whether the url contains a file name */ char *pc =strstr(url, "://"); + char separator='?'; if(pc) pc+=3; else pc=url; - pc = strrchr(pc, '/'); + pc = strrchr(pc, '/'); /* check for a slash */ + + if(pc) { + /* there is a slash present in the URL */ + + if(strchr(pc, '?')) + /* Ouch, there's already a question mark in the URL string, we + then appead the data with an amperand separator instead! */ + separator='&'; + } /* * Then append ? followed by the get fields to the url. */ @@ -1872,12 +1883,12 @@ operate(struct Configurable *config, int argc, char *argv[]) helpf("out of memory\n"); return CURLE_OUT_OF_MEMORY; } - /* Append / before the ? to create a well-formed url - if the url contains a hostname only - */ if (pc) - sprintf(urlbuffer, "%s?%s", url, httpgetfields); + sprintf(urlbuffer, "%s%c%s", url, separator, httpgetfields); else + /* Append / before the ? to create a well-formed url + if the url contains a hostname only + */ sprintf(urlbuffer, "%s/?%s", url, httpgetfields); free(url); /* free previous URL */ -- cgit v1.2.3