summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/cache.c12
-rw-r--r--mbbsd/register.c4
2 files changed, 13 insertions, 3 deletions
diff --git a/mbbsd/cache.c b/mbbsd/cache.c
index 8063d80c..2d6fc0dd 100644
--- a/mbbsd/cache.c
+++ b/mbbsd/cache.c
@@ -192,9 +192,11 @@ remove_from_uhash(int n)
#warning "searchuser() average chaining MAX_USERS/(1<<HASH_BITS) times."
#endif
int
-searchuser(const char *userid, char *rightid)
+dosearchuser(const char *userid, char *rightid)
{
int h, p, times;
+ if(userid[0]=='\0')
+ return 0;
STATINC(STAT_SEARCHUSER);
h = StringHash(userid)%(1<<HASH_BITS);
p = SHM->hash_head[h];
@@ -211,6 +213,14 @@ searchuser(const char *userid, char *rightid)
}
int
+searchuser(const char *userid, char *rightid)
+{
+ if(userid[0]=='\0')
+ return 0;
+ return dosearchuser(userid, rightid);
+}
+
+int
getuser(const char *userid, userec_t *xuser)
{
int uid;
diff --git a/mbbsd/register.c b/mbbsd/register.c
index ebfb3bf0..0bb22bda 100644
--- a/mbbsd/register.c
+++ b/mbbsd/register.c
@@ -143,7 +143,7 @@ setupnewuser(const userec_t *user)
clock = now;
/* Lazy method : 先找尋已經清除的過期帳號 */
- if ((uid = searchuser("", NULL)) == 0) {
+ if ((uid = dosearchuser("", NULL)) == 0) {
/* 每 1 個小時,清理 user 帳號一次 */
if ((stat(fn_fresh, &st) == -1) || (st.st_mtime < clock - 3600)) {
if ((fd = open(fn_fresh, O_RDWR | O_CREAT, 0600)) == -1)
@@ -167,7 +167,7 @@ setupnewuser(const userec_t *user)
passwd_lock();
- uid = searchuser("", NULL);
+ uid = dosearchuser("", NULL);
if ((uid <= 0) || (uid > MAX_USERS)) {
passwd_unlock();
vmsg("抱歉,使用者帳號已經滿了,無法註冊新的帳號");