Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix the HOST: header to use the original URL, not the proxy URL. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1dbf332352efea4a98c0f4570e9d52da |
User & Date: | drh 2008-05-05 19:08:43.000 |
Context
2008-05-05
| ||
19:33 | Updates to quickstart document to talk about setting up a proxy. ... (check-in: c507cfa7 user: drh tags: trunk) | |
19:08 | Fix the HOST: header to use the original URL, not the proxy URL. ... (check-in: 1dbf3323 user: drh tags: trunk) | |
18:39 | Fix the fossil repository URL in the quickstart.html document. ... (check-in: c7438f6d user: drh tags: trunk) | |
Changes
Changes to src/http.c.
︙ | ︙ | |||
336 337 338 339 340 341 342 | i = strlen(g.urlPath); if( i>0 && g.urlPath[i-1]=='/' ){ zSep = ""; }else{ zSep = "/"; } blob_appendf(&hdr, "POST %s%sxfer HTTP/1.1\r\n", g.urlPath, zSep); | | | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | i = strlen(g.urlPath); if( i>0 && g.urlPath[i-1]=='/' ){ zSep = ""; }else{ zSep = "/"; } blob_appendf(&hdr, "POST %s%sxfer HTTP/1.1\r\n", g.urlPath, zSep); blob_appendf(&hdr, "Host: %s\r\n", g.urlHostname); if( g.fHttpTrace ){ blob_appendf(&hdr, "Content-Type: application/x-fossil-debug\r\n"); }else{ blob_appendf(&hdr, "Content-Type: application/x-fossil\r\n"); } blob_appendf(&hdr, "Content-Length: %d\r\n\r\n", blob_size(&payload)); |
︙ | ︙ |
Changes to src/main.c.
︙ | ︙ | |||
69 70 71 72 73 74 75 76 77 78 79 80 81 82 | int cgiPanic; /* Write error messages to CGI */ Th_Interp *interp; /* The TH1 interpreter */ int *aCommitFile; int urlIsFile; /* True if a "file:" url */ char *urlName; /* Hostname for http: or filename for file: */ int urlPort; /* TCP port number for http: */ char *urlPath; /* Pathname for http: */ char *urlUser; /* User id for http: */ char *urlPasswd; /* Password for http: */ char *urlCanonical; /* Canonical representation of the URL */ const char *zLogin; /* Login name. "" if not logged in. */ | > | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | int cgiPanic; /* Write error messages to CGI */ Th_Interp *interp; /* The TH1 interpreter */ int *aCommitFile; int urlIsFile; /* True if a "file:" url */ char *urlName; /* Hostname for http: or filename for file: */ char *urlHostname; /* The HOST: parameter on http headers */ int urlPort; /* TCP port number for http: */ char *urlPath; /* Pathname for http: */ char *urlUser; /* User id for http: */ char *urlPasswd; /* Password for http: */ char *urlCanonical; /* Canonical representation of the URL */ const char *zLogin; /* Login name. "" if not logged in. */ |
︙ | ︙ |
Changes to src/url.c.
︙ | ︙ | |||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | if( c==':' ){ g.urlPort = 0; i++; while( (c = zUrl[i])!=0 && isdigit(c) ){ g.urlPort = g.urlPort*10 + c - '0'; i++; } }else{ g.urlPort = 80; } g.urlPath = mprintf(&zUrl[i]); dehttpize(g.urlName); dehttpize(g.urlPath); g.urlCanonical = mprintf("http://%T:%d%T", g.urlName, g.urlPort, g.urlPath); }else if( strncmp(zUrl, "file:", 5)==0 ){ g.urlIsFile = 1; | > > | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | if( c==':' ){ g.urlPort = 0; i++; 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); g.urlCanonical = mprintf("http://%T:%d%T", g.urlName, g.urlPort, g.urlPath); }else if( strncmp(zUrl, "file:", 5)==0 ){ g.urlIsFile = 1; |
︙ | ︙ | |||
109 110 111 112 113 114 115 116 117 118 119 | } } /* ** COMMAND: test-urlparser */ void cmd_test_urlparser(void){ if( g.argc!=3 && g.argc!=4 ){ usage("URL"); } url_parse(g.argv[2]); | > > | | | > | | | | > > > > > > > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | } } /* ** COMMAND: test-urlparser */ void cmd_test_urlparser(void){ int i; if( g.argc!=3 && g.argc!=4 ){ usage("URL"); } url_parse(g.argv[2]); 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 ** to the proxy server. */ void url_enable_proxy(const char *zMsg){ const char *zProxy = db_get("proxy", 0); if( zProxy==0 || zProxy[0] || is_false(zProxy) ){ 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; } } |