wc_printf("<div id=\"important_message\">\n"
"<span class=\"imsg\">");
StrEscAppend(WCC->WBuf, NULL, WCC->ImportantMessage, 0, 0);
- wc_printf("</span><br />\n"
+ wc_printf("</span><br>\n"
"</div>\n"
);
StrBufAppendBufPlain(WCC->trailing_javascript,
wc_printf("<div id=\"important_message\">\n"
"<span class=\"imsg\">");
StrEscAppend(WCC->WBuf, WCC->ImportantMsg, NULL, 0, 0);
- wc_printf("</span><br />\n"
+ wc_printf("</span><br>\n"
"</div>\n"
);
StrBufAppendBufPlain(WCC->trailing_javascript,
/*
* Output a piece of content to the web browser using conformant HTTP and MIME semantics
*/
-void http_transmit_thing(const char *content_type,
- int is_static) {
+void http_transmit_thing(const char *content_type, int is_static)
+{
-#ifndef TECH_PREVIEW
- lprintf(9, "http_transmit_thing(%s)%s\n",
- content_type,
- ((is_static > 0) ? " (static)" : "")
- );
-#endif
+ lprintf(9, "http_transmit_thing(%s)%s\n", content_type, ((is_static > 0) ? " (static)" : ""));
output_headers(0, 0, 0, 0, 0, is_static);
hprintf("Content-type: %s\r\n"
/*
- * Authorization required page
- * This is probably temporary and should be revisited
+ * Authorization required page (sends a 401, causing the browser to request login credentials)
*/
void authorization_required(void)
{
}
/*
- * If we're not connected to a Citadel server, try to hook up the
- * connection now.
+ * If we're not connected to a Citadel server, try to hook up the connection now.
*/
if (!WCC->connected) {
if (GetConnected()) {
wc_printf("</body></html>\n");
end_burst();
goto SKIP_ALL_THIS_CRAP;
+ }
}
-
/*
* If we're not logged in, but we have authentication data (either from
* a cookie or from http-auth), try logging in to Citadel using that.
}
if (WCC->Hdr->HR.Handler != NULL) {
- if (!WCC->logged_in && ((WCC->Hdr->HR.Handler->Flags & ANONYMOUS) == 0)) {
+ if ( (!WCC->logged_in)
+ && ((WCC->Hdr->HR.Handler->Flags & ANONYMOUS) == 0)
+ && (WCC->serv_info->serv_supports_guest == 0)
+ ) {
display_login();
}
else {
end_ajax_response();
}
}
- /* When all else fais, display the main menu. */
+ /* When all else fails, display the default landing page or a main menu. */
else {
/*
* ordinary browser users get a nice login screen, DAV etc. requsets
* are given a 401 so they can handle it appropriate.
*/
if (!WCC->logged_in) {
- if (xhttp)
+ if (xhttp) {
authorization_required();
- else
- display_login();
+ }
+ else {
+ display_default_landing_page();
+ }
}
/*
* Toplevel dav requests? or just a flat browser request?
}
+
+/*
+ * Display the appropriate landing page for this site.
+ */
+void display_default_landing_page(void) {
+ if (WC->serv_info->serv_supports_guest) {
+ /* default action. probably revisit this. */
+ StrBuf *teh_lobby = NewStrBufPlain(HKEY("_BASEROOM_"));
+ smart_goto(teh_lobby);
+ FreeStrBuf(&teh_lobby);
+ }
+ else {
+ display_login();
+ }
+}
+
+
/*
* Replacement for sleep() that uses select() in order to avoid SIGALRM
*/
FreeStrBuf(&sess->WBuf);
FreeStrBuf(&sess->HBuf);
FreeStrBuf(&sess->ImportantMsg);
+ FreeStrBuf(&sess->PushedDestination);
}