* make param const char *
authorWilfried Göesgens <willi@citadel.org>
Tue, 29 Jul 2008 19:11:18 +0000 (19:11 +0000)
committerWilfried Göesgens <willi@citadel.org>
Tue, 29 Jul 2008 19:11:18 +0000 (19:11 +0000)
* goto _BASEROOM_ if no pref is set
* store/load locales inn case of webcit tries to reauthenticate a user by cookie after a crash.

webcit/auth.c
webcit/gettext.c
webcit/webcit.c
webcit/webcit.h

index d347e78414a657de154d4ef261794dc55f29d2aa..41489194ae0df7439282c472e1313ee63f4ab8fa 100644 (file)
@@ -286,6 +286,7 @@ void do_login(void)
                }
        }
        if (WC->logged_in) {
+               set_preference("language", NewStrBufPlain(bstr("language"), -1), 1);
                if (WC->need_regi) {
                        display_reg(1);
                } else if (WC->need_vali) {
@@ -540,7 +541,7 @@ void do_welcome(void)
                StrBufCutLeft(Buf, 1);
        }
        if (StrLength(Buf) == 0)
-               StrBufAppendBufPlain(Buf, "/knrooms", 1, 0);
+               StrBufAppendBufPlain(Buf, "dotgoto?room=_BASEROOM_", -1, 0);
        http_redirect(ChrPtr(Buf));
 }
 
index f463140c25e8654eb6f45e8f1c8d714b14c1447e..f044ab6ac9ac9f619f4baeee22797f2ed969c090 100644 (file)
@@ -220,8 +220,9 @@ void offer_languages(void) {
  * \brief Set the selected language for this session.
  * \param lang the locale to set.
  */
-void set_selected_language(char *lang) {
+void set_selected_language(const char *lang) {
        int i;
+
 #ifdef HAVE_USELOCALE
        for (i=0; i<NUM_LANGS; ++i) {
                if (!strcasecmp(lang, AvailLang[i])) {
index 7638cbf2084bda3530befceb6182d88b6de37d6a..fc3a35f2a224bfa91fcd57dc48251945516e8f59 100644 (file)
@@ -1606,7 +1606,7 @@ void session_loop(struct httprequest *req)
                        }
                }
        }
-
+////////todo: restorte language in this case
        /*
         * Functions which can be performed without logging in
         */
@@ -1692,7 +1692,12 @@ void session_loop(struct httprequest *req)
                        serv_printf("PASS %s", c_password);
                        serv_getln(buf, sizeof buf);
                        if (buf[0] == '2') {
+                               StrBuf *Lang;
                                become_logged_in(c_username, c_password, buf);
+                               if (get_preference("language", &Lang)) {
+                                       set_selected_language(ChrPtr(Lang));
+                                       go_selected_language();         /* set locale */
+                               }
                        }
                }
        }
index 572b42ff0af497072083840432aef548e20b4896..1e02177b5a821915bef29c9689fbba19c1bb2d0f 100644 (file)
@@ -716,7 +716,7 @@ int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen);
 void spawn_another_worker_thread(void);
 void display_rss(char *roomname, char *request_method);
 void offer_languages(void);
-void set_selected_language(char *);
+void set_selected_language(const char *);
 void go_selected_language(void);
 void stop_selected_language(void);
 void preset_locale(void);