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

file_trans.c文件参考

#include "debug.h"
#include "ft.h"
#include "md5.h"
#include "file_trans.h"
#include "send_file.h"
#include "packet_parse.h"
#include "qq.h"
#include "header_info.h"
#include "im.h"
#include "crypt.h"
#include "proxy.h"

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

浏览该文件的源代码。

数据结构

struct  _qq_file_header

类型定义

typedef _qq_file_header qq_file_header

函数

gchar * hex_dump_to_str (const guint8 *buffer, gint bytes)
guint32 _get_file_key (guint8 seed)
guint32 _gen_file_key ()
guint32 _decrypt_qq_uid (guint32 uid, guint32 key)
guint32 _encrypt_qq_uid (guint32 uid, guint32 key)
void _fill_filename_md5 (const gchar *filename, gchar *md5)
void _fill_file_md5 (const gchar *filename, gint filelen, gchar *md5)
void _qq_get_file_header (guint8 *buf, guint8 **cursor, gint buflen, qq_file_header *fh)
const gchar * qq_get_file_cmd_desc (gint type)
int _qq_xfer_open_file (const gchar *filename, const gchar *method, GaimXfer *xfer)
gint _qq_xfer_read_file (guint8 *buffer, guint index, guint len, GaimXfer *xfer)
gint _qq_xfer_write_file (guint8 *buffer, guint index, guint len, GaimXfer *xfer)
void qq_xfer_close_file (GaimXfer *xfer)
gint _qq_send_file (GaimConnection *gc, guint8 *data, gint len, guint16 packet_type, guint32 to_uid)
gchar * _gen_session_md5 (gint uid, gchar *session_key)
void qq_send_file_ctl_packet (GaimConnection *gc, guint16 packet_type, guint32 to_uid, guint8 hellobyte)
void _qq_send_file_data_packet (GaimConnection *gc, guint16 packet_type, guint8 sub_type, guint32 fragment_index, guint16 seq, guint8 *data, gint len)
void _qq_process_recv_file_ctl_packet (GaimConnection *gc, guint8 *data, guint8 *cursor, gint len, qq_file_header *fh)
void _qq_recv_file_progess (GaimConnection *gc, guint8 *buffer, guint16 len, guint32 index, guint32 offset)
void _qq_send_file_progess (GaimConnection *gc)
void _qq_update_send_progess (GaimConnection *gc, guint32 fragment_index)
void _qq_process_recv_file_data (GaimConnection *gc, guint8 *data, guint8 *cursor, gint len, guint32 to_uid)
void qq_process_recv_file (GaimConnection *gc, guint8 *data, gint len)


类型定义文档

typedef struct _qq_file_header qq_file_header
 

在文件file_trans.c53行定义。


函数文档

guint32 _decrypt_qq_uid guint32  uid,
guint32  key
 

在文件file_trans.c70行定义。

参考自 _qq_get_file_header().

guint32 _encrypt_qq_uid guint32  uid,
guint32  key
 

在文件file_trans.c75行定义。

参考自 _qq_send_file().

void _fill_file_md5 const gchar *  filename,
gint  filelen,
gchar *  md5
 

在文件file_trans.c90行定义。

参考自 _qq_send_file_data_packet().

void _fill_filename_md5 const gchar *  filename,
gchar *  md5
 

在文件file_trans.c80行定义。

参考自 _qq_send_file_data_packet().

guint32 _gen_file_key  ) 
 

在文件file_trans.c62行定义。

参考 _get_file_key().

参考自 _qq_send_file().

函数调用图:

gchar* _gen_session_md5 gint  uid,
gchar *  session_key
 

在文件im.c226行定义。

参考自 _qq_create_packet_file_header()_qq_process_recv_file_ctl_packet()qq_send_file_ctl_packet()qq_send_packet_im().

guint32 _get_file_key guint8  seed  ) 
 

在文件file_trans.c55行定义。

参考自 _gen_file_key()_qq_get_file_header().

void _qq_get_file_header guint8 *  buf,
guint8 **  cursor,
gint  buflen,
qq_file_header fh
 

在文件file_trans.c113行定义。

参考 _decrypt_qq_uid()_get_file_key()_qq_file_header::client_ver_qq_file_header::file_keyread_packet_b()read_packet_dw()read_packet_w()_qq_file_header::receiver_uid_qq_file_header::sender_uid_qq_file_header::tag.

参考自 qq_process_recv_file().

函数调用图:

void _qq_process_recv_file_ctl_packet GaimConnection *  gc,
guint8 *  data,
guint8 *  cursor,
gint  len,
qq_file_header fh
 

在文件file_trans.c520行定义。

参考 _gen_session_md5()_qq_send_file_data_packet()DECRYPThex_dump_to_str()qq_crypt()QQ_FILE_BASIC_INFOQQ_FILE_CMD_FILE_OPQQ_FILE_CMD_NOTIFY_IP_ACKQQ_FILE_CMD_PINGQQ_FILE_CMD_PONGQQ_FILE_CMD_RECEIVER_SAY_HELLOQQ_FILE_CMD_RECEIVER_SAY_HELLO_ACKQQ_FILE_CMD_SENDER_SAY_HELLOQQ_FILE_CMD_SENDER_SAY_HELLO_ACKqq_get_conn_info()qq_get_file_cmd_desc()qq_send_file_ctl_packet()read_packet_b()read_packet_w()_qq_file_header::sender_uid_qq_data::session_key_qq_data::uid_qq_data::xfer.

参考自 qq_process_recv_file().

函数调用图:

void _qq_process_recv_file_data GaimConnection *  gc,
guint8 *  data,
guint8 *  cursor,
gint  len,
guint32  to_uid
 

在文件file_trans.c721行定义。

参考 _qq_recv_file_progess()_qq_send_file_data_packet()_qq_send_file_progess()_qq_update_send_progess()_ft_info::fragment_len_ft_info::fragment_num_ft_info::max_fragment_indexQQ_FILE_BASIC_INFOQQ_FILE_CMD_FILE_OPQQ_FILE_CMD_FILE_OP_ACKQQ_FILE_DATA_INFOQQ_FILE_EOFread_packet_b()read_packet_dw()read_packet_w()_ft_info::window_qq_data::xfer.

参考自 qq_process_recv_file().

函数调用图:

void _qq_recv_file_progess GaimConnection *  gc,
guint8 *  buffer,
guint16  len,
guint32  index,
guint32  offset
 

在文件file_trans.c589行定义。

参考 _qq_xfer_open_file()_qq_xfer_write_file()_ft_info::max_fragment_index_ft_info::window_qq_data::xfer.

参考自 _qq_process_recv_file_data().

函数调用图:

gint _qq_send_file GaimConnection *  gc,
guint8 *  data,
gint  len,
guint16  packet_type,
guint32  to_uid
 

在文件file_trans.c248行定义。

参考 _encrypt_qq_uid()_gen_file_key()_qq_xfer_write()create_packet_b()create_packet_data()create_packet_dw()create_packet_w()_qq_file_header::file_keyMAX_PACKET_SIZEQQ_CLIENT_qq_data::session_key_qq_data::uid_qq_data::xfer.

参考自 _qq_send_file_data_packet()qq_send_file_ctl_packet().

函数调用图:

void _qq_send_file_data_packet GaimConnection *  gc,
guint16  packet_type,
guint8  sub_type,
guint32  fragment_index,
guint16  seq,
guint8 *  data,
gint  len
 

在文件file_trans.c391行定义。

参考 _fill_file_md5()_fill_filename_md5()_qq_send_file()create_packet_b()create_packet_data()create_packet_dw()create_packet_w()_ft_info::fragment_len_ft_info::fragment_numMAX_PACKET_SIZEQQ_FILE_BASIC_INFOQQ_FILE_CMD_FILE_OPQQ_FILE_CMD_FILE_OP_ACKQQ_FILE_DATA_INFOQQ_FILE_DATA_PACKET_TAGQQ_FILE_EOFQQ_FILE_FRAGMENT_MAXLENqq_get_file_cmd_desc()_ft_info::send_seq_ft_info::to_uid_qq_data::xfer.

参考自 _qq_process_recv_file_ctl_packet()_qq_process_recv_file_data()_qq_send_file_progess()_qq_update_send_progess().

函数调用图:

void _qq_send_file_progess GaimConnection *  gc  ) 
 

在文件file_trans.c633行定义。

参考 _qq_send_file_data_packet()_qq_xfer_open_file()_qq_xfer_read_file()_ft_info::fragment_len_ft_info::max_fragment_indexQQ_FILE_CMD_FILE_OPQQ_FILE_DATA_INFO_ft_info::window_qq_data::xfer.

参考自 _qq_process_recv_file_data().

函数调用图:

void _qq_update_send_progess GaimConnection *  gc,
guint32  fragment_index
 

在文件file_trans.c666行定义。

参考 _qq_send_file_data_packet()_qq_xfer_read_file()_ft_info::fragment_len_ft_info::fragment_num_ft_info::max_fragment_indexQQ_FILE_CMD_FILE_OPQQ_FILE_DATA_INFO_ft_info::window_qq_data::xfer.

参考自 _qq_process_recv_file_data().

函数调用图:

int _qq_xfer_open_file const gchar *  filename,
const gchar *  method,
GaimXfer *  xfer
 

在文件file_trans.c213行定义。

参考 _ft_info::dest_fp.

参考自 _qq_recv_file_progess()_qq_send_file_progess().

gint _qq_xfer_read_file guint8 *  buffer,
guint  index,
guint  len,
GaimXfer *  xfer
 

在文件file_trans.c224行定义。

参考 _ft_info::dest_fp.

参考自 _qq_send_file_progess()_qq_update_send_progess().

gint _qq_xfer_write_file guint8 *  buffer,
guint  index,
guint  len,
GaimXfer *  xfer
 

在文件file_trans.c233行定义。

参考 _ft_info::dest_fp.

参考自 _qq_recv_file_progess().

gchar* hex_dump_to_str const guint8 *  buffer,
gint  bytes
 

The QQ2003C protocol plugin

for gaim

Author: Henry Ou <henry@linux.net>

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

在文件utils.c217行定义。

参考自 _my_convert()_qq_menu_any_cmd_send_cb()_qq_packet_process()_qq_process_group_cmd_reply_default()_qq_process_packet_default()_qq_process_recv_file_ctl_packet()_qq_process_recv_normal_im()qq_process_group_cmd_search_group()qq_send_file_ctl_packet().

const gchar* qq_get_file_cmd_desc gint  type  ) 
 

在文件file_trans.c125行定义。

参考 QQ_FILE_BASIC_INFOQQ_FILE_CMD_FILE_OPQQ_FILE_CMD_FILE_OP_ACKQQ_FILE_CMD_INITATIVE_CONNECTQQ_FILE_CMD_NOTIFY_IP_ACKQQ_FILE_CMD_PINGQQ_FILE_CMD_PONGQQ_FILE_CMD_RECEIVER_SAY_HELLOQQ_FILE_CMD_RECEIVER_SAY_HELLO_ACKQQ_FILE_CMD_SENDER_SAY_HELLOQQ_FILE_CMD_SENDER_SAY_HELLO_ACKQQ_FILE_DATA_INFOQQ_FILE_EOF.

参考自 _qq_process_recv_file_ctl_packet()_qq_send_file_data_packet()qq_send_file_ctl_packet().

void qq_process_recv_file GaimConnection *  gc,
guint8 *  data,
gint  len
 

在文件file_trans.c819行定义。

参考 _qq_get_file_header()_qq_process_recv_file_ctl_packet()_qq_process_recv_file_data()QQ_FILE_CONTROL_PACKET_TAGQQ_FILE_DATA_PACKET_TAG_qq_file_header::sender_uid_qq_file_header::tag.

参考自 _qq_xfer_recv_packet()_qq_xfer_send_ack().

函数调用图:

void qq_send_file_ctl_packet GaimConnection *  gc,
guint16  packet_type,
guint32  to_uid,
guint8  hellobyte
 

在文件file_trans.c287行定义。

参考 _gen_session_md5()_qq_send_file()create_packet_b()create_packet_data()create_packet_dw()create_packet_w()ENCRYPT_ft_info::file_session_keyhex_dump_to_str()_qq_data::my_iconqq_crypt()QQ_FILE_CMD_NOTIFY_IP_ACKQQ_FILE_CMD_PINGQQ_FILE_CMD_PONGQQ_FILE_CMD_RECEIVER_SAY_HELLOQQ_FILE_CMD_RECEIVER_SAY_HELLO_ACKQQ_FILE_CMD_SENDER_SAY_HELLOQQ_FILE_CMD_SENDER_SAY_HELLO_ACKQQ_FILE_CONTROL_PACKET_TAGqq_fill_conn_info()qq_get_file_cmd_desc()_ft_info::send_seq_qq_data::send_seq_qq_data::session_key_ft_info::to_uid_qq_data::uid_qq_data::xfer.

参考自 _qq_process_recv_file_ctl_packet()_qq_xfer_send_notify_ip_ack().

函数调用图:

void qq_xfer_close_file GaimXfer *  xfer  ) 
 

在文件file_trans.c240行定义。

参考 _ft_info::dest_fp.

参考自 _qq_xfer_end().


Generated at Mon May 8 15:42:29 2006 for OpenQ by  doxygen 1.4.4