void pop_destination(void) {
wcsession *WCC = WC;
- if (!WCC) {
+ if ( (!WCC) || (WCC->PushedDestination == NULL) || (StrLength(WCC->PushedDestination) == 0) ) {
do_welcome();
return;
}
WCC= WC;
WCC->upload_length = 0;
WCC->upload = NULL;
- WCC->is_mobile = 0;
WCC->Hdr->nWildfireHeaders = 0;
if (WCC->Hdr->HR.Handler != NULL)
Flags = WCC->Hdr->HR.Handler->Flags; /* so we can temporarily add our own... */
(WCC->Hdr->HR.eReqType != eHEAD);
/*
- * If a 'go' parameter has been specified, attempt to goto that room
+ * If a 'go' (or 'gotofirst') parameter has been specified, attempt to goto that room
* prior to doing anything else.
*/
if (havebstr("go")) {
lprintf(9, "Explicit room selection: %s\n", bstr("go"));
ret = gotoroom(sbstr("go")); /* do quietly to avoid session output! */
if ((ret/100) != 2) {
- lprintf(1, "GOTOFIRST: Unable to change to [%s]; Reason: %d\n",
- bstr("go"), ret);
+ lprintf(1, "Unable to change to [%s]; Reason: %d\n", bstr("go"), ret);
+ }
+ }
+ else if (havebstr("gotofirst")) {
+ int ret;
+ lprintf(9, "Explicit room selection: %s\n", bstr("gotofirst"));
+ ret = gotoroom(sbstr("gotofirst")); /* do quietly to avoid session output! */
+ if ((ret/100) != 2) {
+ lprintf(1, "Unable to change to [%s]; Reason: %d\n", bstr("gotofirst"), ret);
}
}