LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: mars_engle

解决OpenQ 0.3.2 for Gaim 1.5.0无法登陆的问题

[复制链接]
发表于 2006-4-23 17:24:42 | 显示全部楼层
这两天读了点代码,没有关注群的那部分。但是似乎断线后重登录Segfault的原因和群功能的代码有关。
如果一个群成员已经是自己的好友,那么将使用自己的好友的nickname和alias。我把这部分的代码注释了。暂时避开了这个错误。目前经过测试,重连后不会segfautl。但相关原因自己还不太明确。
接下去先关注群的这部分代码。
回复 支持 反对

使用道具 举报

发表于 2006-4-26 10:06:44 | 显示全部楼层
改过的地方呢?
回复 支持 反对

使用道具 举报

发表于 2006-4-26 12:58:55 | 显示全部楼层
Post by csyfek
改过的地方呢?


还是前面的那个话题,于是就没有帖代码。
在group_find.c:143行里。那个q_bud->nickname获取时segfault的错误。

我把整个if(buddy != NULL)里面的代码全部注释掉了。

问题暂时出现了,但由于自己没找到错误的根源,所拿来讨论一下。
[php]
                member->uid = member_uid;
                buddy = gaim_find_buddy(gaim_connection_get_account(gc), uid_to_gaim_name(member_uid));
                if (buddy != NULL) {
/*                      q_bud = (qq_buddy *) buddy->proto_data;
                        if (q_bud != NULL )
                        {
                                gaim_debug(GAIM_DEBUG_ERROR, "QQ", "gnap: q_bud->nickname: %s\n", q_bud->nickname);
                                if(q_bud->nickname != NULL)
                                        member->nickname = g_strdup(q_bud->nickname);
                        }
                        else if (buddy->alias != NULL)
                                member->nickname = g_strdup(buddy->alias); */
                }               // if buddy != NULL
                group->members = g_list_append(group->members, member);
[/php]
回复 支持 反对

使用道具 举报

发表于 2006-4-26 17:37:16 | 显示全部楼层
也说一个题外话,一些群里面已有的人,可能该QQ已经被停掉或者被盗了的,他们的资料都只剩下一个Q号,其他什么资料看起来都是空的。每当刷新一次群列表或者该QQ号的资料,就会出现assertion。但我尝试把nickname判断为非空的时候才把这个人显示在群列表中,但是他照样会出现问题。而把他们的nickname在错误消息中打印出来,却什么也没有。。。

不知道gnap的gaim是什么版本的?我用的是2.0.0beta2。而且我发现1.5.0的版本下,mars_engel的版本会经常掉包,而poppyer的就很少这个现象。
回复 支持 反对

使用道具 举报

发表于 2006-4-26 19:15:13 | 显示全部楼层
Post by csyfek
也说一个题外话,一些群里面已有的人,可能该QQ已经被停掉或者被盗了的,他们的资料都只剩下一个Q号,其他什么资料看起来都是空的。每当刷新一次群列表或者该QQ号的资料,就会出现assertion。但我尝试把nickname判断为非空的时候才把这个人显示在群列表中,但是他照样会出现问题。而把他们的nickname在错误消息中打印出来,却什么也没有。。。

不知道gnap的gaim是什么版本的?我用的是2.0.0beta2。而且我发现1.5.0的版本下,mars_engel的版本会经常掉包,而poppyer的就很少这个现象。


不好意思,由于是接着回帖,就忘了说版本号的。我用的是gaim-1.5的。的确是零星出现“send again”的情况。但是由于我自己的网络连接就不稳定。openq丢包的情况部分时间其实是自己掉线了。所以我也不敢确定是不是补丁的问题。

这样吧!我觉得咱们的代码缺少文档或者流程图之类的。正好我在读代码,顺便画个图表出来的吧!
这样排错和扩展,团队新人加入等等都能够比较方便。
回复 支持 反对

使用道具 举报

发表于 2006-4-26 19:48:57 | 显示全部楼层
Post by gnap
不好意思,由于是接着回帖,就忘了说版本号的。我用的是gaim-1.5的。的确是零星出现“send again”的情况。但是由于我自己的网络连接就不稳定。openq丢包的情况部分时间其实是自己掉线了。所以我也不敢确定是不是补丁的问题。

这样吧!我觉得咱们的代码缺少文档或者流程图之类的。正好我在读代码,顺便画个图表出来的吧!
这样排错和扩展,团队新人加入等等都能够比较方便。

好呀好呀!那就先有劳gnap兄你了!
今天的补丁受到了么?有没有看出什么什么名堂~?
回复 支持 反对

使用道具 举报

发表于 2006-4-26 22:00:22 | 显示全部楼层
Post by csyfek
好呀好呀!那就先有劳gnap兄你了!
今天的补丁受到了么?有没有看出什么什么名堂~?


呀!唔好意思!~偶一看是2.0的补丁就给删了!~

其实咱们的补丁为虾米不帖到这里来呢?

想起来貌似保存了一份,Ipfile那个?和这个有什么关系吗?
回复 支持 反对

使用道具 举报

发表于 2006-4-26 22:16:12 | 显示全部楼层
支持一下,在FreeBSD 6.1RC1下面成功运行。
Gaim: 1.5.0_4
OpenQ: 0.3.2_6

感谢楼主!
回复 支持 反对

使用道具 举报

发表于 2006-4-26 22:16:21 | 显示全部楼层
-________-#

删掉了。。。。阿?
只是邮件列表很方便,一下子大家都可以知道这回事罢了。而且许多兄弟并不是经常上论坛,而邮箱一般都会开来看看吧。嘿嘿!那论坛上发一份,邮件列表也发一份,那就好了。
回复 支持 反对

使用道具 举报

发表于 2006-4-27 10:28:42 | 显示全部楼层
Ipfile那个补丁和这个问题不同的。那个补丁只是在gaim-2.0.0下才有效。大概是2.0.0碰到其中的string=NULL,就把string一项从prefs.xml里面去掉不写了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表