summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/register.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/mbbsd/register.c b/mbbsd/register.c
index c5bda783..b06b8400 100644
--- a/mbbsd/register.c
+++ b/mbbsd/register.c
@@ -111,6 +111,14 @@ removespace(char *s)
}
int
+reserved_user_id(const char *userid)
+{
+ if (file_exist_record(FN_RESERVED_ID, userid))
+ return 1;
+ return 0;
+}
+
+int
bad_user_id(const char *userid)
{
if(!is_validuserid(userid))
@@ -124,9 +132,6 @@ bad_user_id(const char *userid)
return 1;
#endif
- if (file_exist_record(FN_RESERVED_ID, userid))
- return 1;
-
/* in2: 原本是用strcasestr,
不過有些人中間剛剛好出現這個字應該還算合理吧? */
if( strncasecmp(userid, "fuck", 4) == 0 ||
@@ -717,6 +722,8 @@ new_register(void)
if (bad_user_id(passbuf))
outs("無法接受這個代號,請使用英文字母,並且不要包含空格\n");
+ else if (reserved_user_id(passbuf))
+ outs("此代號已由保留,請使用別的代號\n");
else if ((id = getuser(passbuf, &xuser)) &&
// >=: see check_and_expire_account definition
(minute = check_and_expire_account(id, &xuser, 0)) >= 0)