Diff
Not logged in

Differences From:

File src/url.c part of check-in [e621b6dbe3] - Use POST instead of GET for the /xfer method. Other bug fixes in the URL parser. by drh on 2007-07-30 14:28:17. [view]

To:

File src/url.c part of check-in [676fdd088a] - Enable proxy support using the "fossil setting proxy" command. This check-in is made using a proxy. by drh on 2008-05-01 22:49:57. [view]

@@ -112,9 +112,9 @@
 /*
 ** COMMAND: test-urlparser
 */
 void cmd_test_urlparser(void){
-  if( g.argc!=3 ){
+  if( g.argc!=3 && g.argc!=4 ){
     usage("URL");
   }
   url_parse(g.argv[2]);
   printf("g.urlIsFile    = %d\n", g.urlIsFile);
@@ -123,5 +123,19 @@
   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 the "proxy" setting is defined, then change the URL to refer
+** to the proxy server.
+*/
+void url_enable_proxy(const char *zMsg){
+  const char *zProxy = db_get("proxy", 0);
+  if( zProxy && zProxy[0] && !is_false(zProxy) ){
+    char *zOriginalUrl = g.urlCanonical;
+    if( zMsg ) printf("%s%s\n", zMsg, zProxy);
+    url_parse(zProxy);
+    g.urlPath = zOriginalUrl;
+  }
 }