X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fstatic.c;h=7e5580b273400c188ce13bbfedd959ee3f398041;hb=d1a9b13de4ea01f1c299a16e06d207b687e7c576;hp=0d0eea948b23c423204d232760f887a6ba4bbdc8;hpb=57eba726fbad7b16f7b9624e9d01f16eaccb35b2;p=citadel.git diff --git a/webcit/static.c b/webcit/static.c index 0d0eea948..7e5580b27 100644 --- a/webcit/static.c +++ b/webcit/static.c @@ -19,65 +19,7 @@ HashList *StaticFilemappings[4] = {NULL, NULL, NULL, NULL}; - - /* - for ( a = 0; a < 9; ++a) - { - extract_token(index[a], ChrPtr(ReqLine), a + 1, '/', sizes[a]); - if (strstr(index[a], "?")) *strstr(index[a], "?") = 0; - if (strstr(index[a], "&")) *strstr(index[a], "&") = 0; - if (strstr(index[a], " ")) *strstr(index[a], " ") = 0; - if ((index[a][0] == '.') && (index[a][1] == '.')) - nBackDots++; - if (index[a][0] == '\0') - nEmpty++; - } -*/ - -/* TODO: staticdata -{ - - - /** Figure out the action * / - index[0] = action; - sizes[0] = sizeof action; - for (a=1; a<9; a++) - { - index[a] = arg[a-1]; - sizes[a] = sizeof arg[a-1]; - } - nBackDots = 0; - nEmpty = 0; - - - /* Static content can be sent without connecting to Citadel. * / - is_static = 0; - for (a=0; a= 11) && - !strncasecmp(ChrPtr(ReqLine), "/robots.txt", 11)) { - StrBufPlain(ReqLine, - HKEY("/static/robots.txt" - "?force_close_session=yes HTTP/1.1")); - Hdr.eReqType = eGET; - } - else if ((StrLength(ReqLine) >= 11) && - !strncasecmp(ChrPtr(ReqLine), "/favicon.ico", 12)) { - StrBufPlain(ReqLine, HKEY("/static/favicon.ico")); - Hdr.eReqType = eGET; - } - -*/ - - - int LoadStaticDir(const char *DirName, HashList *DirList, const char *RelDir) { @@ -262,6 +178,22 @@ int LoadStaticDir(const char *DirName, HashList *DirList, const char *RelDir) } +void output_flat_static(void) +{ + wcsession *WCC = WC; + void *vFile; + StrBuf *File; + + if (GetHash(StaticFilemappings[0], SKEY(WCC->Hdr->Handler->Name), &vFile) && + (vFile != NULL)) + { + File = (StrBuf*) vFile; + output_static(ChrPtr(vFile)); + } +} + + + void output_static_safe(HashList *DirList) { wcsession *WCC = WC; @@ -324,11 +256,9 @@ InitModule_STATIC LoadStaticDir(static_dirs[2], StaticFilemappings[2], ""); LoadStaticDir(static_dirs[3], StaticFilemappings[3], ""); - WebcitAddUrlHandler(HKEY("robots.txt"), output_static_0, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); - WebcitAddUrlHandler(HKEY("favicon.ico"), output_static_0, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); + WebcitAddUrlHandler(HKEY("robots.txt"), output_flat_static, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); + WebcitAddUrlHandler(HKEY("favicon.ico"), output_flat_static, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); WebcitAddUrlHandler(HKEY("static"), output_static_0, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); WebcitAddUrlHandler(HKEY("static.local"), output_static_1, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); WebcitAddUrlHandler(HKEY("tinymce"), output_static_2, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); - - }