有时,某个ID总是发布一些垃圾文章,而且每天都在发,而这些ID是从新闻组来的,管都无法联系,所以很希望封掉这个id的转信文章.改了一下innbbsd的receive_article.c。实现了这个功能。
注:我这里用的是ytht的代码。
修改receive_article()的前面:
...
char *lesssym, *nameptrleft, *nameptrright;
static char sitebuf[80];
if (FROM == NULL) {
bbslog(":Err: article without usrid %s\n", MSGID);
return 0;
}
...
改成:
...
char *lesssym, *nameptrleft, *nameptrright;
static char sitebuf[80];
FILE *badidfp;
static char badid[200];
if (FROM == NULL) {
bbslog(":Err: article without usrid %s\n", MSGID);
return 0;
}
badidfp=fopen("/home/bbs/inndlog/badid","r");
if(badidfp){
while(!feof(badidfp)){
fgets(badid,200,badidfp);
strtok(badid,"\n");
if (strstr(FROM,badid)){
bbslog("Warning: atricle filtered by bad userid %s ,atricle ID is %s\n",badid,MSGID);
fclose(badidfp);
return 0;
}
}
fclose(badidfp);
}
...
然后编辑 /home/bbs/inndlog/badid 就可以了,每行一个id,形式如下:
xxx.bbs@bbs.yyy.
mmm@ttt.com
等等。
--
FROM 218.194.254.33