LinuxSir.cn,穿越时空的Linuxsir!

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

QQ Plugin 0.2.4.1 for Gaim 0.76-0218-cvs, 支持QQ笑脸和TCP登陆

[复制链接]
发表于 2004-3-1 12:22:08 | 显示全部楼层
最初由 puzzlebird 发表
关于gaim-qq 崩溃的一个bug,

如果用户添加自己为好友,那么在载入gaim-qq时候回崩溃。

原因:

QQ server will send QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS before  the QQ_CMD_LOGIN reply packet, if the user itself is in the list.

This results in empty qd->session_key in qq_data structure and then program crashes in function qq_process_friends_change_status.


暂时的解决方法:在windows QQ中删除自己。

我正在修改代码,下一个版本解决。


我的列表里有我自己,用的好好的啊
发表于 2004-3-1 12:40:27 | 显示全部楼层

回复: 请问少啥包阿

最初由 wheel 发表
checking for GLIB - version >= 2.0.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error:
*** GLib 2.0 is required to build Gaim; please make sure you have the GLib
*** development headers installed. The latest version of GLib is
*** always available at http://www.gtk.org/.


libglib2.0-dev
发表于 2004-3-1 13:04:25 | 显示全部楼层
最初由 puzzlebird 发表
关于gaim-qq 崩溃的一个bug,

如果用户添加自己为好友,那么在载入gaim-qq时候回崩溃。

原因:

QQ server will send QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS before  the QQ_CMD_LOGIN reply packet, if the user itself is in the list.

This results in empty qd->session_key in qq_data structure and then program crashes in function qq_process_friends_change_status.


暂时的解决方法:在windows QQ中删除自己。

我正在修改代码,下一个版本解决。

我怎么没有这个问题??
发表于 2004-3-1 13:09:29 | 显示全部楼层
有声音吗?支持对手机发信息吗?
发表于 2004-3-1 14:01:16 | 显示全部楼层
我的在别人加我为好友时,就要崩溃,不知为什么.
发表于 2004-3-2 00:04:16 | 显示全部楼层
只要一登录 QQ 就出现:
[root@playart root]# gaim
Gaim has segfaulted and attempted to dump a core file.
This is a bug in the software and has happened through
no fault of your own.

It is possible that this bug is already fixed in CVS.
If you can reproduce the crash, please notify the gaim
maintainers by reporting a bug at
http://gaim.sourceforge.net/bug.php

Please make sure to specify what you were doing at the time,
and post the backtrace from the core file. If you do not know
how to get the backtrace, please get instructions at
http://gaim.sourceforge.net/gdb.php. If you need further
assistance, please IM either RobFlynn or SeanEgn and
they can help you.
已放弃
[root@playart root]#
发表于 2004-3-2 01:13:12 | 显示全部楼层
最初由 puzzlebird 发表
关于gaim-qq 崩溃的一个bug,

如果用户添加自己为好友,那么在载入gaim-qq时候回崩溃。

原因:

QQ server will send QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS before  the QQ_CMD_LOGIN reply packet, if the user itself is in the list.

This results in empty qd->session_key in qq_data structure and then program crashes in function qq_process_friends_change_status.


暂时的解决方法:在windows QQ中删除自己。

我正在修改代码,下一个版本解决。
加油呵呵
不过我似乎没遇到这个问题
反而发信息给某些自动回复状态的用户时会马上crash掉

ps,我最近已经写好qq show代码~准备再调试一下就发布
 楼主| 发表于 2004-3-2 09:10:05 | 显示全部楼层
没有遇到这种情况的可能是以前的版本简单的把包给过滤了。现在的版本多了一个Gqueue来放这些包。新版本要等到?0.76正式发布以后再说。BTW, henry 谢谢你的代码。

-----------------------------------------------------------------
Ver 0.2.6.1
-----------------------------------------------------------------
* Split qq_process_packet.c and qq_send_packet.c to more subtle modules
  . qq_buddy_info.c   : get or modify user detailed information
  . qq_buddy_list.c   : get buddy list and online buddy list
  . qq_buddy_opt.c    : add or remove buddy
  . qq_buddy_status.c : change buddy status
  . qq_keep_alive.c   : keep alive
  . qq_login_logout.c : login and logout
  . qq_cmd.c          : cmd and cmd description
  . qq_im.c           : send and receive im
  . qq_recv_core.c    : core functions for received packets
  . qq_send_core.c    : core functions for sending packets
  . qq_server_ack.c   : ack from server side
  . qq_sys_msg.c      : QQ system messgaes

* Split qq.h accordingly
* Remove qq_misc.c and qq_get_str.c and incorporate them into other modules

-----------------------------------------------------------------
Ver 0.2.6
-----------------------------------------------------------------
* A lot code rewrite
        . Use typedef to hide "struct ... "
        . Change most of the fixed size character array to dynamic allocated
        . Change the name convention
        . Clean up confusing variable type (gchar or guint8)
        . Remove some ambiguious definitions
        . Move most of the variable definitions to the begining of the function

* Add several packet header definitions
        . qq_recv_im_header
        . qq_recv_normal_im_text
        . qq_recv_normal_im_common
        . qq_recv_normal_im_unprocessed

* Fixed bug in converting IP address
        . The return from QQ server is not a guint32, it is data
        . Call read_packet_data(data, cursor, ip, 4) to get the correct value order

* Fixed bug at showing authentication message
        . Remove g_locale_to_utf8, which should not be used

* Fixed bug in 0.2.5 that logout packet is sent only once
  . Send four times in this version
  
* Fixed bug of crash if user add himself in the buddy list
  . QQ server will send QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS before
    the QQ_CMD_LOGIN reply packet. This results in empty qd->session_key
  . Add GQueue member to store packets before login

* Fixed bug that buddy icon is not refreshed when self is the buddy
发表于 2004-3-2 09:47:56 | 显示全部楼层

关于缺lib

我遇到过几次,建议把 *-devel 加上,我以前的gaim用rpm的,一会就退出,后来编译发现缺文件用rpm -q 又在,后来装了-devel就ok了。
发表于 2004-3-2 19:28:50 | 显示全部楼层
作者有没有把这个 libqq 发给上游开发者?以后维护就方便了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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