荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjksam (eee), 信区: InstallBBS
标  题: 双方自动应答造成讯息反弹问题的一种解决
发信站: 荔园晨风BBS站 (Fri Oct 10 14:29:47 2003), 站内信件


发信站: 南京大学小百合站 (Sat Dec 21 23:10:01 2002)
转信站: SMTH!maily.cic.tsinghua.edu.cn!news.zixia.net!NJU
出  处: bbs.nju.edu.cn

对于FB系统,如果两个sterm用户都开了自动应答,有可能出现双方都不断回
答"我不在.."而使得讯息不断反弹的情况。在网速快的时候,这会占用大量的
系统资源。通过限制短时间内连续对同样的人发送同样内容的讯息可以避免这
个问题。

具体改动如下:

在sendmsg.c的do_sendmsg()函数的适当地方加上:
    if(flood_msg(msgbuf, userpid)) {
        move(1, 0);
        clrtoeol();
        prints("错误! 您刚才已经发过这个消息了...\n");
        refresh();
        sleep(1);
        return -1;
    }

然后再加上flood_msg()函数:
int flood_msg(char *msgbuf, int pid) {
    static char last_buf[256]="";
    static int last_pid=0;
    static int last_time=0;
    if(abs(time(0)-last_time)>10 || pid!=last_pid || strcmp(msgbuf, last_buf)) {
        last_time=time(0);
        last_pid=pid;
        strncpy(last_buf, msgbuf, 256);
        return 0;
    } else {
        return 1;
    }
}

--
※ 来源:.南京大学小百合站 bbs.nju.edu.cn.[FROM: bbs.nju.edu.cn]

--
     。.
      ."。
      █D

 Would you like to have a cup of cola with me?

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.234]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店