summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/mbbsd/register.c142
1 files changed, 1 insertions, 141 deletions
diff --git a/pttbbs/mbbsd/register.c b/pttbbs/mbbsd/register.c
index c9b58a4c..2e14405d 100644
--- a/pttbbs/mbbsd/register.c
+++ b/pttbbs/mbbsd/register.c
@@ -1413,16 +1413,6 @@ u_register(void)
// TODO define and use structure instead, even in reg request file.
typedef struct {
- // current format:
- // (optional) num: unum, date
- // [0] uid: xxxxx (IDLEN=12)
- // [1] name: RRRRRR (20)
- // [2] career: YYYYYYYYYYYYYYYYYYYYYYYYYY (40)
- // [3] addr: TTTTTTTTT (50)
- // [4] phone: 02DDDDDDDD (20)
- // [5] email: x (50) (deprecated)
- // [6] mobile: (deprecated)
- // [7] ----
userec_t u; // user record
char online;
@@ -1430,43 +1420,6 @@ typedef struct {
// regform format utilities
-// regform loader: deprecated.
-// now we use real user record.
-/*
-int
-load_regform_entry(RegformEntry *pre, FILE *fp)
-{
- char buf[STRLEN];
- char *v;
-
- memset(pre, 0, sizeof(RegformEntry));
- while (fgets(buf, sizeof(buf), fp))
- {
- if (buf[0] == '-')
- break;
- buf[sizeof(buf)-1] = 0;
- v = strchr(buf, ':');
- if (v == NULL)
- continue;
- *v++ = 0;
- if (*v == ' ') v++;
- chomp(v);
-
- if (strcmp(buf, "uid") == 0)
- strlcpy(pre->u.userid, v, sizeof(pre->u.userid));
- else if (strcmp(buf, "name") == 0)
- strlcpy(pre->u.realname, v, sizeof(pre->u.realname));
- else if (strcmp(buf, "career") == 0)
- strlcpy(pre->u.career, v, sizeof(pre->u.career));
- else if (strcmp(buf, "addr") == 0)
- strlcpy(pre->u.address, v, sizeof(pre->u.address));
- else if (strcmp(buf, "phone") == 0)
- strlcpy(pre->u.phone, v, sizeof(pre->u.phone));
- }
- return pre->u.userid[0] ? 1 : 0;
-}
-*/
-
static int
print_regform_entry(const RegformEntry *pre, FILE *fp, int close)
{
@@ -1475,6 +1428,7 @@ print_regform_entry(const RegformEntry *pre, FILE *fp, int close)
fprintf(fp, "career: %s\n", pre->u.career);
fprintf(fp, "addr: %s\n", pre->u.address);
fprintf(fp, "phone: %s\n", pre->u.phone);
+ fprintf(fp, "lasthost: %s\n", pre->u.lasthost);
if (close)
fprintf(fp, "----\n");
return 1;
@@ -1584,7 +1538,6 @@ regform_log2board(const RegformEntry *pre, char accepted,
concat_regform_entry_localized(pre, msg, sizeof(msg));
post_msg(BN_ID_RECORD, title, msg, "[註冊系統]");
-
#endif // BN_ID_RECORD
}
@@ -1614,7 +1567,6 @@ regform_log2file(const RegformEntry *pre, char accepted,
if (!fp) return;
fputs(msg, fp);
fclose(fp);
-
#endif // FN_ID_RECORD
}
@@ -2567,98 +2519,6 @@ regform2_validate_page(int dryrun)
// 處理 Register Form
/////////////////////////////////////////////////////////////////////////////
-/* Auto-Regform-Scan
- * FIXME 真是一團垃圾
- *
- * fdata 用了太多 magic number
- * return value 應該是指 reason (return index + 1)
- * ans[0] 指的是帳管選擇的「錯誤的欄位」 (Register 選單裡看到的那些)
- */
-#if 0
-static int
-auto_scan(char fdata[][STRLEN], char ans[])
-{
- int good = 0;
- int count = 0;
- int i;
- char temp[10];
-
- if (!strncmp(fdata[1], "小", 2) || DBCS_strcasestr(fdata[1], "丫")
- || DBCS_strcasestr(fdata[1], "誰") || DBCS_strcasestr(fdata[1], "不")) {
- ans[0] = '0';
- return 1;
- }
- strlcpy(temp, fdata[1], 3);
-
- /* 疊字 */
- if (!strncmp(temp, &(fdata[1][2]), 2)) {
- ans[0] = '0';
- return 1;
- }
- if (strlen(fdata[1]) >= 6) {
- if (DBCS_strcasestr(fdata[1], "陳水扁")) {
- ans[0] = '0';
- return 1;
- }
- if (DBCS_strcasestr("趙錢孫李周吳鄭王", temp))
- good++;
- else if (DBCS_strcasestr("杜顏黃林陳官余辛劉", temp))
- good++;
- else if (DBCS_strcasestr("蘇方吳呂李邵張廖應蘇", temp))
- good++;
- else if (DBCS_strcasestr("徐謝石盧施戴翁唐", temp))
- good++;
- }
- if (!good)
- return 0;
-
- if (!strcmp(fdata[2], fdata[3]) ||
- !strcmp(fdata[2], fdata[4]) ||
- !strcmp(fdata[3], fdata[4])) {
- ans[0] = '4';
- return 5;
- }
- if (DBCS_strcasestr(fdata[2], "大")) {
- if (DBCS_strcasestr(fdata[2], "台") || DBCS_strcasestr(fdata[2], "淡") ||
- DBCS_strcasestr(fdata[2], "交") || DBCS_strcasestr(fdata[2], "政") ||
- DBCS_strcasestr(fdata[2], "清") || DBCS_strcasestr(fdata[2], "警") ||
- DBCS_strcasestr(fdata[2], "師") || DBCS_strcasestr(fdata[2], "銘傳") ||
- DBCS_strcasestr(fdata[2], "中央") || DBCS_strcasestr(fdata[2], "成") ||
- DBCS_strcasestr(fdata[2], "輔") || DBCS_strcasestr(fdata[2], "東吳"))
- good++;
- } else if (DBCS_strcasestr(fdata[2], "女中"))
- good++;
-
- if (DBCS_strcasestr(fdata[3], "地球") || DBCS_strcasestr(fdata[3], "宇宙") ||
- DBCS_strcasestr(fdata[3], "信箱")) {
- ans[0] = '2';
- return 3;
- }
- if (DBCS_strcasestr(fdata[3], "市") || DBCS_strcasestr(fdata[3], "縣")) {
- if (DBCS_strcasestr(fdata[3], "路") || DBCS_strcasestr(fdata[3], "街")) {
- if (DBCS_strcasestr(fdata[3], "號"))
- good++;
- }
- }
- for (i = 0; fdata[4][i]; i++) {
- if (isdigit((int)fdata[4][i]))
- count++;
- }
-
- if (count <= 4) {
- ans[0] = '3';
- return 4;
- } else if (count >= 7)
- good++;
-
- if (good >= 3) {
- ans[0] = 'y';
- return -1;
- } else
- return 0;
-}
-#endif
-
int
m_register(void)
{