X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fcontext_loop.c;h=04c5cf0a3ea714ecb6ed959fa97d4aeb5d87e23a;hb=e1968d13f46f5c549cdf2f5ab8b63080ba45e7da;hp=8295fff75885ab992b873b9fddb1956af083744f;hpb=7d6ae2d75fd8b3716d5ad6ad168bc75360a9acd8;p=citadel.git diff --git a/webcit/context_loop.c b/webcit/context_loop.c index 8295fff75..04c5cf0a3 100644 --- a/webcit/context_loop.c +++ b/webcit/context_loop.c @@ -7,18 +7,12 @@ * Copyright (c) 1996-2011 by the citadel.org team * * This program is open source software. You can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 3 of the - * License, or (at your option) any later version. + * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "webcit.h" @@ -267,7 +261,6 @@ int ReadHttpSubject(ParsedHttpHdrs *Hdr, StrBuf *Line, StrBuf *Buf) void *vLine, *vHandler; const char *Pos = NULL; - Hdr->HR.ReqLine = Line; /* The requesttype... GET, POST... */ StrBufExtract_token(Buf, Hdr->HR.ReqLine, 0, ' '); @@ -332,15 +325,23 @@ int ReadHttpSubject(ParsedHttpHdrs *Hdr, StrBuf *Line, StrBuf *Buf) } if (Hdr->HR.Handler != NULL) { - if ((Hdr->HR.Handler->Flags & BOGUS) != 0) + if ((Hdr->HR.Handler->Flags & BOGUS) != 0) { return 1; + } Hdr->HR.DontNeedAuth = ( ((Hdr->HR.Handler->Flags & ISSTATIC) != 0) || ((Hdr->HR.Handler->Flags & ANONYMOUS) != 0) - ); + ); } else { Hdr->HR.DontNeedAuth = 1; /* Flat request? show him the login screen... */ + StrBuf *NewLine = NewStrBufPlain(HKEY("GET /readfwd?go=")); + StrBufUrlescAppend(NewLine, Buf, NULL); + StrBufAppendBufPlain(NewLine, HKEY(" HTTP/1.0"), 0); + syslog(LOG_DEBUG, "Replacing with: %s", ChrPtr(NewLine)); + int return_value = ReadHttpSubject(Hdr, NewLine, Buf); + FreeStrBuf(&NewLine); + return return_value; } return 0;