The 'static redirects' file may now contain a special token called 'home' which can...
authorArt Cancro <ajc@uncensored.citadel.org>
Wed, 22 Jun 2011 20:23:52 +0000 (16:23 -0400)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 4 Sep 2011 21:00:29 +0000 (21:00 +0000)
webcit/webcit.c
webcit/webserver.c
webcit/webserver.h

index 6727f38782e0ff4a6cc12bcd6e846c0d7a83e1e2..117f8fdf9e0c2147ae00704398395ef77f3e7b01 100644 (file)
@@ -876,10 +876,16 @@ void display_default_landing_page(void) {
        wcsession *WCC = WC;
 
        if (WCC && WCC->serv_info && WCC->serv_info->serv_supports_guest) {
-               /* default action.  probably revisit this. */
-               StrBuf *teh_lobby = NewStrBufPlain(HKEY("_BASEROOM_"));
-               smart_goto(teh_lobby);
-               FreeStrBuf(&teh_lobby);
+               /* default action */
+
+               if (default_landing_page) {
+                       http_redirect(default_landing_page);
+               }
+               else {
+                       StrBuf *teh_lobby = NewStrBufPlain(HKEY("_BASEROOM_"));
+                       smart_goto(teh_lobby);
+                       FreeStrBuf(&teh_lobby);
+               }
        }
        else {
                display_login();
index 6e3aef7ac746f95347b9f340f0903145a781149e..e0887b58635a4c18db6fc889fd6792c5cdeadb42 100644 (file)
@@ -25,6 +25,7 @@ int follow_xff = 0;           /* Follow X-Forwarded-For: header */
 int home_specified = 0;                /* did the user specify a homedir? */
 int DisableGzip = 0;
 struct redirector *redir = NULL;
+char *default_landing_page = NULL;
 int num_redir = 0;
 extern pthread_mutex_t SessionListMutex;
 extern pthread_key_t MyConKey;
@@ -131,6 +132,9 @@ void load_redirs(char *filename) {
                        extract_token(redir[num_redir].urlpart, buf, 0, '|', sizeof(redir[num_redir].urlpart));
                        extract_token(redir[num_redir].redirect_to, buf, 1, '|', sizeof(redir[num_redir].redirect_to));
                        WebcitAddUrlHandler(redir[num_redir].urlpart, strlen(redir[num_redir].urlpart), "", 0, handle_redir, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC);
+                       if (!strcasecmp(redir[num_redir].urlpart, "home")) {
+                               default_landing_page = redir[num_redir].redirect_to ;
+                       }
                        ++num_redir;
                }
 
index 1a1832254466fe0c9e2f839535358ea3d485ea31..dadee85cb1b6364341cc96a3a8d23c38b3f062fa 100644 (file)
@@ -10,6 +10,7 @@ struct redirector {
        
 extern struct redirector *redir;
 extern int num_redir;
+extern char *default_landing_page;
 
 int ClientGetLine(ParsedHttpHdrs *Hdr, StrBuf *Target);
 int client_read_to(ParsedHttpHdrs *Hdr, StrBuf *Target, int bytes, int timeout);