日期:2014-05-16  浏览次数:20511 次

ejabberd中mod_privacy_odbc.erl实现没有完全遵循xmpp协议

?

?

?

修改privacy 利用推送 方式 更新privacy list ?userlist

?updated_list(_, #userlist{name = OldName} = Old, #userlist{name = NewName} = New) ->

?? ? ?if

?? ? ? ? OldName == NewName ->

?? ? ? ? ? ? ? New;

?? ? ? ?true ->

?? ? ? ? ? ? ? ?Old

?? ? ?end.

?上传几个附近 备用

?

ejabberd中mod_privacy_odbc.erl实现没有完全遵循xmpp协议

其中,设置默认和删除privacy list时没有判断当前privacy list 是否有资源在使用。仅仅在删除时候判断了privacy list是否是默认的。

如果是active的话,此状态存在用户资源当前进程中。其他资源进程不能直接读取,所以无法判断目前到底有多少个进程正在使用privacy list.

目前想到的解决方法:

1、建立一个内存表,每个进程与它的状态都写在里面。用的话查询一下就可以。

2、进程之间相互发送消息。”双方“提供相应