作者chwaian.bbs@cpu.tfcis.org (無言) 看板: plan
標題[功能]被設壞人不准寄信給對方
時間動力核心 (2004/12/19 Sun 00:33:49) Updated: 2005/01/02
很鴕鳥的一個功能
只要對方換個ID或是從外站寄信來 就沒用了 :P
可以配合禁止收站外信 來稍微補足
: ufo.h
#define UFO_JUMPBRD BFLAG(19)
+ #define UFO_DENYBADMAIL BFLAG(20) /* 拒收壞人來信 */
...
- #define NUMUFOS_USER 20
+ #define NUMUFOS_USER 21
- #define STR_UFO "-mpsnemPBQFANbwtSHKJ----CHA"
+ #define STR_UFO "-mpsnemPBQFANbwtSHKJB---CHA"
...
#ifdef AUTO_JUMPBRD
"跳去未讀看板 (跳去/不跳)", /* UFO_JUMPBRD */
#else
"保留",
#endif
- "保留",
+ "拒收壞人來信", /* UFO_DENYBADMAIL */
: pal.c 新增底下這隻程式
int
pal_findbad(userid) /* 找是否被對方設為壞人 */
char *userid;
{
ACCT acct;
PAL bad;
char fpath[64];
int fd;
int rc = 0;
/* 若對方擋壞人的信,才檢查 */
if (acct_load(&acct, userid) >= 0 && (acct.ufo & UFO_DENYBADMAIL))
{
usr_fpath(fpath, userid, fn_pal);
if ((fd = open(fpath, O_RDONLY)) >= 0)
{
while (read(fd, &bad, sizeof(PAL)) == sizeof(PAL))
{
if ((cuser.userno == bad.userno) && (bad.ftype & PAL_BAD))
{
rc = 1;
vmsg("你被對方設為壞人不能寄信給對方!");
break;
}
}
close(fd);
}
}
return rc;
}
: maple.p
int t_list(void);
+ int pal_findbad(char *userid);
: mail.c mail_him()
if ((userno = acct_userno(rcpt)) > 0) /* 收件人有可能不存在 */
{
+ if (pal_findbad(rcpt))
+ return -1;
: mail.c mail_send()
else
{
if ((userno = acct_userno(rcpt)) <= 0)
{
vmsg(err_uid);
return -1;
}
+ else if (pal_findbad(rcpt))
+ return -1;
}
--
◤◥ Origin: Maple-itoc˙動力核心 cpu.tfcis.org
◣◢ Author: chwaian 從 218-171-104-58.dynamic.hinet.net 發表