If no URL handler is found, try it as a room name. This will allow friendly URLs...
authorArt Cancro <ajc@uncensored.citadel.org>
Thu, 22 Dec 2011 17:35:16 +0000 (12:35 -0500)
committerArt Cancro <ajc@uncensored.citadel.org>
Thu, 22 Dec 2011 17:35:16 +0000 (12:35 -0500)
webcit/context_loop.c

index 8295fff75885ab992b873b9fddb1956af083744f..04c5cf0a3ea714ecb6ed959fa97d4aeb5d87e23a 100644 (file)
@@ -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;