Differences From:
File
src/url.c
part of check-in
[387cbeda3f]
- Honor the http_proxy environment variable as another source for the
URL of the HTTP proxy if the "proxy" setting is undefined or is "off".
by
drh on
2008-05-05 17:30:12.
[view]
To:
File
src/url.c
part of check-in
[1dbf332352]
- Fix the HOST: header to use the original URL, not the proxy URL.
by
drh on
2008-05-05 19:08:43.
[view]
@@ -68,10 +68,12 @@
while( (c = zUrl[i])!=0 && isdigit(c) ){
g.urlPort = g.urlPort*10 + c - '0';
i++;
}
+ g.urlHostname = mprintf("%s:%d", g.urlName, g.urlPort);
}else{
g.urlPort = 80;
+ g.urlHostname = g.urlName;
}
g.urlPath = mprintf(&zUrl[i]);
dehttpize(g.urlName);
dehttpize(g.urlPath);
@@ -112,19 +114,27 @@
/*
** COMMAND: test-urlparser
*/
void cmd_test_urlparser(void){
+ int i;
if( g.argc!=3 && g.argc!=4 ){
usage("URL");
}
url_parse(g.argv[2]);
- printf("g.urlIsFile = %d\n", g.urlIsFile);
- printf("g.urlName = %s\n", g.urlName);
- printf("g.urlPort = %d\n", g.urlPort);
- printf("g.urlPath = %s\n", g.urlPath);
- printf("g.urlUser = %s\n", g.urlUser);
- printf("g.urlPasswd = %s\n", g.urlPasswd);
- printf("g.urlCanonical = %s\n", g.urlCanonical);
+ for(i=0; i<2; i++){
+ printf("g.urlIsFile = %d\n", g.urlIsFile);
+ printf("g.urlName = %s\n", g.urlName);
+ printf("g.urlPort = %d\n", g.urlPort);
+ printf("g.urlHostname = %s\n", g.urlHostname);
+ printf("g.urlPath = %s\n", g.urlPath);
+ printf("g.urlUser = %s\n", g.urlUser);
+ printf("g.urlPasswd = %s\n", g.urlPasswd);
+ printf("g.urlCanonical = %s\n", g.urlCanonical);
+ if( i==0 ){
+ printf("********\n");
+ url_enable_proxy("Using proxy: ");
+ }
+ }
}
/*
** If the "proxy" setting is defined, then change the URL to refer
@@ -136,9 +146,11 @@
zProxy = getenv("http_proxy");
}
if( zProxy && zProxy[0] && !is_false(zProxy) ){
char *zOriginalUrl = g.urlCanonical;
+ char *zOriginalHost = g.urlHostname;
if( zMsg ) printf("%s%s\n", zMsg, zProxy);
url_parse(zProxy);
g.urlPath = zOriginalUrl;
+ g.urlHostname = zOriginalHost;
}
}