diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-07 00:43:46 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-07 00:43:46 +0800 |
commit | 3a374a93478bb790ccd98afd6fc17e752d235746 (patch) | |
tree | e7526cb726ac133e51dfe24f1f34cf8cfb39ac06 /mbbsd | |
parent | 1fc58c8aaf157418ef1a6706717be0f2956a4ecf (diff) | |
download | pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar.gz pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar.bz2 pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar.lz pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar.xz pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.tar.zst pttbbs-3a374a93478bb790ccd98afd6fc17e752d235746.zip |
- refine setup_utmp procedure
* reduce the latency
* moved SSH_CONNECTION fromhost overriding to shell_login
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4500 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/mbbsd.c | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index c5bc0e83..54f714d5 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -1139,27 +1139,26 @@ user_login(void) /* NOTE! 在 setup_utmp 之前, 不應該有任何 blocking/slow function, * 否則可藉機 race condition 達到 multi-login */ - /* get local time */ - localtime4_r(&now, &ptime); - - log_usies("ENTER", fromhost); -#ifndef VALGRIND - setproctitle("%s: %s", margs, cuser.userid); -#endif + // XXX resolve_fcache 不就會 blcok/slow 了...!? resolve_fcache(); + /* resolve_boards(); */ numboards = SHM->Bnumber; - if(getenv("SSH_CONNECTION") != NULL){ - char frombuf[50]; - sscanf(getenv("SSH_CONNECTION"), "%s", frombuf); - strlcpy(fromhost, frombuf, sizeof(fromhost)); - } - /* 初始化 uinfo、flag、mode */ setup_utmp(LOGIN); enter_uflag = cuser.uflag; + + /* log usies */ + log_usies("ENTER", fromhost); +#ifndef VALGRIND + setproctitle("%s: %s", margs, cuser.userid); +#endif + + /* get local time */ + localtime4_r(&now, &ptime); localtime4_r(&cuser.lastlogin, &lasttime); + redrawwin(); /* mask fromhost a.b.c.d to a.b.c.* */ @@ -1670,6 +1669,14 @@ shell_login(char *argv0, struct ProgramOption *option) } init_tty(); + + // XXX overwrite fromhost here is better? + if(getenv("SSH_CONNECTION") != NULL){ + char frombuf[50]; + sscanf(getenv("SSH_CONNECTION"), "%s", frombuf); + strlcpy(fromhost, frombuf, sizeof(fromhost)); + } + if (check_ban_and_load(0, option)) { sleep(10); return 0; |