荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjksam (<ENTER>), 信区: InstallBBS
标 题: [src]拒收群体信息功能
发信站: 荔园晨风BBS站 (Sun Mar 9 14:50:04 2003), 转信
功能描述:
以下说明是按照荔园晨风的主菜单的:
可以选择是否接受群体信息,默认的是接受的。
在主菜单的[I]nfo 个人信息
|__
(U)serDefine 个人参数设定
可以找到这个选项。
代码修改:
1.
include/bbs.h
增加
+#define MSGWALL 0x10 /* add by jjk March 9, 2002 */
2.
include/permission.h
按下面的方法加一个bit, 注意要按照递增的顺序加。
#define DEF_NEWSTOP10 0x02000000
+#define DEF_MSGWALL 0x04000000 /* 接受群体信息,add by jjk on March 9,
2003 */
把NUMDEFINES加1。
即:
-#define NUMDEFINES 26
+#define NUMDEFINES 27
在下面的字符串数组里面加上
char *user_definestr[] = {
....
"不使用汉字整字删除", /* DEF_DELDBLCHAR */
"进站时观看全国十大排行榜", /* DEF_NEWSTOP10 */
+ "接收群体信息", /* DEF_MSGWALL */
NULL
};
3.
src/xyz.c
在下面的函数中增加代码:
x_userdefine()
{
...
uinfo.pager &= ~ALLMSG_PAGER;
uinfo.pager &= ~FRIENDMSG_PAGER;
+ uinfo.pager &= ~MSGWALL;
/* add by jjk from FB20001219 Apr 1, 2002 */
if (DEFINE(DEF_DELDBLCHAR))
enabledbchar=0;
else
enabledbchar=1;
/* end add */
if (DEFINE(DEF_FRIENDMSG)) {
uinfo.pager |= FRIENDMSG_PAGER;
}
if (DEFINE(DEF_ALLMSG)) {
uinfo.pager |= ALLMSG_PAGER;
uinfo.pager |= FRIENDMSG_PAGER;
}
+ /* add by jjk March 9, 2003 */
+ if (DEFINE(DEF_MSGWALL)) {
+ uinfo.pager |= MSGWALL;
+ }
+ /* end add.jjk */
update_utmp();
if (DEFINE(DEF_ACBOARD))
nettyNN = NNread_init();
prints("新的参数设定完成...\n\n");
}
...
}
4.
src/list.c
增加下面的函数。
/* add by jjk March 9, 2002 */
int
iswall(uentp)
struct user_info *uentp;
{
if (uentp->pager & MSGWALL)
return YEA;
return NA;
}
/* end add.jjk */
5.
src/main.c
在u_enter()中增加:
if (DEFINE(DEF_ALLMSG)) {
uinfo.pager |= ALLMSG_PAGER;
uinfo.pager |= FRIENDMSG_PAGER;
}
+ /* add by jjk March 9, 2002 */
+ if (DEFINE(DEF_MSGWALL)) {
+ uinfo.pager |= MSGWALL;
+ }
+ /* end add.jjk */
uinfo.uid = usernum;
strncpy(uinfo.from, fromhost, 60);
6.
src/sendmsg.c
修改代码如下:
int
myfriend_wall(uin)
struct user_info *uin;
{
+ /* modified by jjk Apr 12, 2002 */
- if ((uin->pid - uinfo.pid == 0) || !uin->active || !uin->pid ||
isreject(uin))
+ if ((uin->pid - uinfo.pid == 0) || !uin->active || !uin->pid ||
isreject(uin)
+ || !iswall(uin))
+ /* end modified.jjk */
...
}
int
hisfriend_wall(uin)
struct user_info *uin;
{
+ /* modified by jjk March 9, 2002 */
- if ((uin->pid - uinfo.pid == 0) || !uin->active || !uin->pid ||
isreject(uin))
+ if ((uin->pid - uinfo.pid == 0) || !uin->active || !uin->pid ||
isreject(uin)
+ || !iswall(uin))
+ /* end modified.jjk */
return -1;
...
}
7.
执行下面的命令(因为修改了include中的文件,所以需要make clean)
make clean && make &&make update
kill -9 `cat ~bbs/reclog/bbsd.pid`
~bbs/bin/bbsd 23
8.
注意,由于群体信息关联到其他id的utmp,所以要两方都重新登陆了才能生效,
除非把全站的人都kick下去。xixi :-)
--
ξ
█D
Would you like to have a cup of tea with me?
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.234]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店