Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Some redirects are now permanent. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
dd8def223f8ecaeed0fd298b9417ece9 |
User & Date: | drh 2019-05-17 17:20:00.753 |
Context
2019-05-17
| ||
17:22 | Fix a harmless compiler warning about the return value of freopen() in althttpd. (check-in: 445195faaf user: drh tags: trunk) | |
17:20 | Some redirects are now permanent. (check-in: dd8def223f user: drh tags: trunk) | |
2019-05-08
| ||
17:26 | Document the fact that using PRAGMA case_sensitive_like in a database that uses LIKE operators in the schema can lead to problems. (check-in: bc4c1a7626 user: drh tags: trunk) | |
Changes
Changes to misc/althttpd.c.
︙ | ︙ | |||
797 798 799 800 801 802 803 | } /* ** Do a server redirect to the document specified. The document ** name not contain scheme or network location or the query string. ** It will be just the path. */ | | > > > > > > > > | 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 | } /* ** Do a server redirect to the document specified. The document ** name not contain scheme or network location or the query string. ** It will be just the path. */ static void Redirect(const char *zPath, int iStatus, int finish, int lineno){ switch( iStatus ){ case 308: StartResponse("308 Permanent Redirect"); break; default: StartResponse("302 Temporary Redirect"); break; } StartResponse("302 Temporary Redirect"); if( zServerPort==0 || zServerPort[0]==0 || strcmp(zServerPort,"80")==0 ){ nOut += printf("Location: %s://%s%s%s\r\n", zHttp, zServerName, zPath, zQuerySuffix); }else{ nOut += printf("Location: %s://%s:%s%s%s\r\n", zHttp, zServerName, zServerPort, zPath, zQuerySuffix); |
︙ | ︙ | |||
919 920 921 922 923 924 925 | NotFound(160); /* LOG: http request on https-only page */ fclose(in); return 0; } }else if( strcmp(zFieldName,"http-redirect")==0 ){ if( !useHttps ){ zHttp = "https"; | | | 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 | NotFound(160); /* LOG: http request on https-only page */ fclose(in); return 0; } }else if( strcmp(zFieldName,"http-redirect")==0 ){ if( !useHttps ){ zHttp = "https"; Redirect(zScript, 308, 1, 170); /* LOG: -auth redirect */ fclose(in); return 0; } }else if( strcmp(zFieldName,"anyone")==0 ){ fclose(in); return 1; }else{ |
︙ | ︙ | |||
1910 1911 1912 1913 1914 1915 1916 | int stillSearching = 1; while( stillSearching && i>0 && j>j0 ){ while( j>j0 && zLine[j-1]!='/' ){ j--; } strcpy(&zLine[j-1], "/not-found.html"); if( stat(zLine,&statbuf)==0 && S_ISREG(statbuf.st_mode) && access(zLine,R_OK)==0 ){ zRealScript = StrDup(&zLine[j0]); | | | 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 | int stillSearching = 1; while( stillSearching && i>0 && j>j0 ){ while( j>j0 && zLine[j-1]!='/' ){ j--; } strcpy(&zLine[j-1], "/not-found.html"); if( stat(zLine,&statbuf)==0 && S_ISREG(statbuf.st_mode) && access(zLine,R_OK)==0 ){ zRealScript = StrDup(&zLine[j0]); Redirect(zRealScript, 302, 1, 370); /* LOG: redirect to not-found */ return; }else{ j--; } } if( stillSearching ) NotFound(380); /* LOG: URI not found */ break; |
︙ | ︙ | |||
1946 1947 1948 1949 1950 1951 1952 | } zRealScript = StrDup(&zLine[j0]); if( zScript[i]==0 ){ /* If the requested URL does not end with "/" but we had to ** append "index.html", then a redirect is necessary. Otherwise ** none of the relative URLs in the delivered document will be ** correct. */ | | | 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 | } zRealScript = StrDup(&zLine[j0]); if( zScript[i]==0 ){ /* If the requested URL does not end with "/" but we had to ** append "index.html", then a redirect is necessary. Otherwise ** none of the relative URLs in the delivered document will be ** correct. */ Redirect(zRealScript,308,1,410); /* LOG: redirect to add trailing / */ return; } break; } zLine[j] = zScript[i]; i++; j++; } |
︙ | ︙ |