首页 | 数据结构 | 文件列表 | 数据字段 | 全局定义

im.c文件参考

#include "conversation.h"
#include "debug.h"
#include "internal.h"
#include "md5.h"
#include "notify.h"
#include "server.h"
#include "util.h"
#include "utils.h"
#include "packet_parse.h"
#include "buddy_info.h"
#include "buddy_list.h"
#include "buddy_opt.h"
#include "char_conv.h"
#include "crypt.h"
#include "group_im.h"
#include "header_info.h"
#include "im.h"
#include "send_core.h"
#include "qq.h"
#include "send_file.h"

im.c包含/依赖关系图:

浏览该文件的源代码。

数据结构

struct  _qq_recv_normal_im_common
struct  _qq_recv_normal_im_text
struct  _qq_recv_normal_im_unprocessed
struct  _qq_recv_im_header

宏定义

#define QQ_SEND_IM_REPLY_OK   0x00
#define DEFAULT_FONT_NAME_LEN   4
#define QQ_SEND_IM_AFTER_MSG_HEADER_LEN   8
#define DEFAULT_FONT_NAME   "\0xcb\0xce\0xcc\0xe5"

类型定义

typedef _qq_recv_im_header qq_recv_im_header
typedef _qq_recv_normal_im_text qq_recv_normal_im_text
typedef _qq_recv_normal_im_common qq_recv_normal_im_common
typedef _qq_recv_normal_im_unprocessed qq_recv_normal_im_unprocessed

枚举

enum  {
  QQ_NORMAL_IM_TEXT = 0x000b, QQ_NORMAL_IM_FILE_REQUEST = 0x0035, QQ_NORMAL_IM_FILE_APPROVE_UDP = 0x0037, QQ_NORMAL_IM_FILE_APPROVE_TCP = 0x0003,
  QQ_NORMAL_IM_FILE_REJECT_UDP = 0x0039, QQ_NORMAL_IM_FILE_REJECT_TCP = 0x0005, QQ_NORMAL_IM_FILE_NOTIFY = 0x003b, QQ_NORMAL_IM_FILE_CANCEL = 0x0049,
  QQ_NORMAL_IM_FILE_PASV = 0x003f
}
enum  { QQ_RECV_SYS_IM_KICK_OUT = 0x01 }

函数

void _qq_show_packet (gchar *desc, gchar *buf, gint len)
guint8 * qq_get_send_im_tail (const gchar *font_color, const gchar *font_size, const gchar *font_name, gboolean is_bold, gboolean is_italic, gboolean is_underline, guint tail_len)
const gchar * qq_get_recv_im_type_str (gint type)
gchar * _gen_session_md5 (gint uid, gchar *session_key)
void _qq_send_packet_recv_im_ack (GaimConnection *gc, guint16 seq, guint8 *data)
gint _qq_normal_im_common_read (guint8 *data, guint8 **cursor, gint len, qq_recv_normal_im_common *common)
void _qq_process_recv_normal_im_text (guint8 *data, guint8 **cursor, gint len, qq_recv_normal_im_common *common, GaimConnection *gc)
void _qq_process_recv_normal_im (guint8 *data, guint8 **cursor, gint len, GaimConnection *gc)
void _qq_process_recv_sys_im (guint8 *data, guint8 **cursor, gint data_len, GaimConnection *gc)
void qq_send_packet_im (GaimConnection *gc, guint32 to_uid, gchar *msg, gint type)
void qq_process_send_im_reply (guint8 *buf, gint buf_len, GaimConnection *gc)
void qq_process_recv_im (guint8 *buf, gint buf_len, guint16 seq, GaimConnection *gc)


宏定义文档

#define DEFAULT_FONT_NAME   "\0xcb\0xce\0xcc\0xe5"
 

在文件im.c130行定义。

#define DEFAULT_FONT_NAME_LEN   4
 

在文件im.c48行定义。

参考自 qq_get_send_im_tail()qq_send_packet_im().

#define QQ_SEND_IM_AFTER_MSG_HEADER_LEN   8
 

在文件im.c129行定义。

参考自 qq_get_send_im_tail()qq_send_packet_im().

#define QQ_SEND_IM_REPLY_OK   0x00
 

The QQ2003C protocol plugin

for gaim

Copyright (C) 2004 Puzzlebird

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

在文件im.c47行定义。

参考自 qq_process_send_im_reply().


类型定义文档

typedef struct _qq_recv_im_header qq_recv_im_header
 

在文件im.c83行定义。

typedef struct _qq_recv_normal_im_common qq_recv_normal_im_common
 

在文件im.c85行定义。

typedef struct _qq_recv_normal_im_text qq_recv_normal_im_text
 

在文件im.c84行定义。

typedef struct _qq_recv_normal_im_unprocessed qq_recv_normal_im_unprocessed
 

在文件im.c86行定义。


枚举类型文档

anonymous enum
 

枚举值:
QQ_NORMAL_IM_TEXT 
QQ_NORMAL_IM_FILE_REQUEST 
QQ_NORMAL_IM_FILE_APPROVE_UDP 
QQ_NORMAL_IM_FILE_APPROVE_TCP 
QQ_NORMAL_IM_FILE_REJECT_UDP 
QQ_NORMAL_IM_FILE_REJECT_TCP 
QQ_NORMAL_IM_FILE_NOTIFY 
QQ_NORMAL_IM_FILE_CANCEL 
QQ_NORMAL_IM_FILE_PASV 

在文件im.c53行定义。

anonymous enum
 

枚举值:
QQ_RECV_SYS_IM_KICK_OUT 

在文件im.c66行定义。


函数文档

gchar* _gen_session_md5 gint  uid,
gchar *  session_key
 

在文件im.c226行定义。

参考 create_packet_data()create_packet_dw()QQ_KEY_LENGTH.

函数调用图:

gint _qq_normal_im_common_read guint8 *  data,
guint8 **  cursor,
gint  len,
qq_recv_normal_im_common common
 

在文件im.c254行定义。

参考 _qq_recv_normal_im_common::normal_im_typeQQ_KEY_LENGTHread_packet_dw()read_packet_w()_qq_recv_normal_im_common::receiver_uid_qq_recv_normal_im_common::sender_uid_qq_recv_normal_im_common::sender_ver_qq_recv_normal_im_common::session_md5.

参考自 _qq_process_recv_normal_im().

函数调用图:

void _qq_process_recv_normal_im guint8 *  data,
guint8 **  cursor,
gint  len,
GaimConnection *  gc
 

在文件im.c356行定义。

参考 _qq_normal_im_common_read()_qq_process_recv_normal_im_text()_qq_recv_normal_im_unprocessed::commonhex_dump_to_str()_qq_recv_normal_im_unprocessed::length_qq_recv_normal_im_common::normal_im_typeqq_get_source_str()QQ_NORMAL_IM_FILE_APPROVE_UDPQQ_NORMAL_IM_FILE_CANCELQQ_NORMAL_IM_FILE_NOTIFYQQ_NORMAL_IM_FILE_REJECT_UDPQQ_NORMAL_IM_FILE_REQUESTQQ_NORMAL_IM_TEXTqq_process_recv_file_accept()qq_process_recv_file_cancel()qq_process_recv_file_notify()qq_process_recv_file_reject()qq_process_recv_file_request()_qq_recv_normal_im_common::receiver_uid_qq_recv_normal_im_common::sender_uid_qq_recv_normal_im_common::sender_ver_qq_recv_normal_im_common::session_md5_qq_recv_normal_im_unprocessed::unknown.

参考自 qq_process_recv_im().

函数调用图:

void _qq_process_recv_normal_im_text guint8 *  data,
guint8 **  cursor,
gint  len,
qq_recv_normal_im_common common,
GaimConnection *  gc
 

在文件im.c282行定义。

参考 _qq_show_packet()_qq_recv_normal_im_text::common_qq_recv_normal_im_text::font_attr_qq_recv_normal_im_text::font_attr_len_qq_recv_normal_im_text::is_there_font_attr_qq_recv_normal_im_text::msg_qq_recv_normal_im_text::msg_seq_qq_recv_normal_im_text::msg_typeqq_add_buddy_by_recv_packet()QQ_CHARSET_DEFAULTqq_encode_to_gaim()QQ_IM_AUTO_REPLYqq_smiley_to_gaim()qq_to_utf8()read_packet_b()read_packet_data()read_packet_dw()read_packet_w()_qq_recv_normal_im_text::send_time_qq_recv_normal_im_text::sender_iconuid_to_gaim_name()_qq_recv_normal_im_text::unknown1_qq_recv_normal_im_text::unknown2_qq_recv_normal_im_text::unknown3.

参考自 _qq_process_recv_normal_im().

函数调用图:

void _qq_process_recv_sys_im guint8 *  data,
guint8 **  cursor,
gint  data_len,
GaimConnection *  gc
 

在文件im.c475行定义。

参考 QQ_CHARSET_DEFAULTQQ_RECV_SYS_IM_KICK_OUTqq_to_utf8()split_data().

参考自 qq_process_recv_im().

函数调用图:

void _qq_send_packet_recv_im_ack GaimConnection *  gc,
guint16  seq,
guint8 *  data
 

在文件im.c247行定义。

参考 QQ_CMD_RECV_IMqq_send_cmd().

参考自 qq_process_recv_im().

函数调用图:

void _qq_show_packet gchar *  desc,
gchar *  buf,
gint  len
 

The QQ2003C protocol plugin

for gaim

Copyright (C) 2004 Puzzlebird Henry Ou <henry@linux.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

在文件qq_proxy.c62行定义。

const gchar* qq_get_recv_im_type_str gint  type  ) 
 

在文件im.c192行定义。

参考 QQ_RECV_IM_ADD_TO_GROUPQQ_RECV_IM_APPLY_ADD_TO_GROUPQQ_RECV_IM_APPROVE_APPLY_ADD_TO_GROUPQQ_RECV_IM_CREATE_GROUPQQ_RECV_IM_DEL_FROM_GROUPQQ_RECV_IM_GROUP_IMQQ_RECV_IM_REJCT_APPLY_ADD_TO_GROUPQQ_RECV_IM_SYS_NOTIFICATIONQQ_RECV_IM_TEMP_GROUP_IMQQ_RECV_IM_TO_BUDDYQQ_RECV_IM_TO_UNKNOWNQQ_RECV_IM_UNKNOWN_GROUP_IM.

参考自 qq_process_recv_im().

guint8* qq_get_send_im_tail const gchar *  font_color,
const gchar *  font_size,
const gchar *  font_name,
gboolean  is_bold,
gboolean  is_italic,
gboolean  is_underline,
guint  tail_len
 

在文件im.c132行定义。

参考 _qq_show_packet()DEFAULT_FONT_NAME_LENQQ_SEND_IM_AFTER_MSG_HEADER_LEN.

参考自 qq_send_packet_group_im()qq_send_packet_im().

函数调用图:

void qq_process_recv_im guint8 *  buf,
gint  buf_len,
guint16  seq,
GaimConnection *  gc
 

在文件im.c659行定义。

参考 _qq_process_recv_normal_im()_qq_process_recv_sys_im()_qq_send_packet_recv_im_ack()DECRYPT_qq_recv_im_header::im_typeqq_crypt()qq_get_recv_im_type_str()qq_process_recv_group_im()qq_process_recv_group_im_apply_join()qq_process_recv_group_im_been_added()qq_process_recv_group_im_been_approved()qq_process_recv_group_im_been_rejected()qq_process_recv_group_im_been_removed()QQ_RECV_IM_ADD_TO_GROUPQQ_RECV_IM_APPLY_ADD_TO_GROUPQQ_RECV_IM_APPROVE_APPLY_ADD_TO_GROUPQQ_RECV_IM_DEL_FROM_GROUPQQ_RECV_IM_GROUP_IMQQ_RECV_IM_REJCT_APPLY_ADD_TO_GROUPQQ_RECV_IM_SYS_NOTIFICATIONQQ_RECV_IM_TEMP_GROUP_IMQQ_RECV_IM_TO_BUDDYQQ_RECV_IM_TO_UNKNOWNQQ_RECV_IM_UNKNOWN_GROUP_IMread_packet_data()read_packet_dw()read_packet_w()_qq_recv_im_header::receiver_uid_qq_recv_im_header::sender_ip_qq_recv_im_header::sender_port_qq_recv_im_header::sender_uid_qq_recv_im_header::server_im_seq_qq_data::session_key_qq_data::uid.

参考自 _qq_packet_process().

函数调用图:

void qq_process_send_im_reply guint8 *  buf,
gint  buf_len,
GaimConnection *  gc
 

在文件im.c631行定义。

参考 DECRYPTqq_crypt()QQ_SEND_IM_REPLY_OKread_packet_b()_qq_data::session_key.

参考自 _qq_packet_process().

函数调用图:

void qq_send_packet_im GaimConnection *  gc,
guint32  to_uid,
gchar *  msg,
gint  type
 

在文件im.c502行定义。

参考 _gen_session_md5()_qq_show_packet()create_packet_b()create_packet_data()create_packet_dw()create_packet_w()DEFAULT_FONT_NAME_LEN_qq_data::my_iconQQ_CLIENTQQ_CMD_SEND_IMqq_get_send_im_tail()QQ_NORMAL_IM_TEXTqq_send_cmd()QQ_SEND_IM_AFTER_MSG_HEADER_LENQQ_SEND_IM_BEFORE_MSG_LEN_qq_data::send_seq_qq_data::session_key_qq_data::uid.

参考自 _qq_send_im().

函数调用图:


Generated at Mon May 8 15:44:14 2006 for OpenQ by  doxygen 1.4.4