LinuxSir.cn,穿越时空的Linuxsir!

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

GPL发布: QQ Plugin 0.2 Final for Gaim 0.76cvs

[复制链接]
发表于 2004-2-18 23:46:29 | 显示全部楼层
耐心等待稳定版的发布。。。。。
发表于 2004-2-19 00:42:51 | 显示全部楼层
有时侯收不到msg的状况我跟踪叻一下,发现是read_packet_data那个判断导致,那个判断本身没什么问题,gdb调试的结果发现问题出在这里:
qq_process_packet.c: 76行左右,
msg_len = strlen(cursor); // msg ends with 0x00
cursor现在指向的应该是msg本身,但是在我的系统上,不知道为什么,msg后面没有跟0x00,而是还有一些乱码。这样导致msg_len比我实际发送过来的msg长。
所以,我在后面加了个判断:
if (cursor + msg_len > data + len) {
        msg_len = (unsigned int)(data + len) - (unsigned int)cursor;
}
另外,加了:
memset(msg, 0, sizeof(msg));

不知道我说清楚了问题没有:p
希望有所帮助,我的代码经过前面提到的qq_to_utf8和上面这个处理之后,稳定了好多,今天晚上特意上线跟朋友聊天测试,没崩过了,

谢谢大家
发表于 2004-2-19 00:46:33 | 显示全部楼层
另外,还有个小地方:
很多的g_free(msg_utf8)都被我改成了:

        if (msg_utf8 != NULL) g_free(msg_utf8);

因为我不知道g_free(NULL)这样的会不会导致seg..:_), free(NULL)是会的。呵呵

不过其实如果msg_utf8每次返回都检查的话,msg_utf8==NULL应该能避免的。
希望有用,谢谢
发表于 2004-2-19 00:56:53 | 显示全部楼层
free就是好哈?:p睡觉叻。。。
发表于 2004-2-19 01:58:15 | 显示全部楼层

开始遍译时有点问题,但把autogen.sh里面的 第一个叹号删了后,就顺利遍译啦

上面是问题1,已顺利搞定
问题2:同一个号码不能同时在账户里,如一个icq一个QQ都用123345,就打开后很自动关了
问题3:还是不太稳定,有时也会自动消失了。
问题4:还是没有群,就连代表群的号码也没有了
 楼主| 发表于 2004-2-19 08:50:17 | 显示全部楼层
多谢arfankai的建议,代码改进中。
发表于 2004-2-19 09:38:44 | 显示全部楼层
太感谢了。完全支持!!
发表于 2004-2-19 10:15:58 | 显示全部楼层
很棒, 要是能正确显示并正确发送qq版笑脸就更好了.
发表于 2004-2-19 10:47:48 | 显示全部楼层
还有一点问题,我不知道puzzlebird解决叻没有(希望已经搞定叻)
就是半个汉字的问题。
1,收到含有半个汉字的消息时,qq_to_utf8(g_convert)转化不了,所以显示不了收到的msg,有什么办法可以转化?

2, 发送含有半个汉字的消息时,gaim会崩溃,原因是utf8_to_qq也转化不了,返回NULL, 程序里没有判断。

以上俩个问题实际上是同一个问题:就是当含有半个汉字的时候,g_convert失败,然后怎么样才能达到转化的目的讷?还有其它的函数吗?

谢谢了:p
 楼主| 发表于 2004-2-19 10:55:25 | 显示全部楼层
我也发觉g_convert不好用,想改为 iconv 的,在调试中。

arfankai 兄很帮忙,给个email ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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