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

send_file.c文件参考

#include <network.h>
#include "send_file.h"
#include "debug.h"
#include "notify.h"
#include "im.h"
#include "packet_parse.h"
#include "crypt.h"
#include "header_info.h"
#include "send_core.h"
#include "utils.h"
#include "file_trans.h"
#include "qq.h"

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

浏览该文件的源代码。

枚举

enum  {
  QQ_FILE_TRANS_REQ = 0x0035, QQ_FILE_TRANS_ACC_UDP = 0x0037, QQ_FILE_TRANS_ACC_TCP = 0x0003, QQ_FILE_TRANS_DENY_UDP = 0x0039,
  QQ_FILE_TRANS_DENY_TCP = 0x0005, QQ_FILE_TRANS_NOTIFY = 0x003b, QQ_FILE_TRANS_NOTIFY_ACK = 0x003c, QQ_FILE_TRANS_CANCEL = 0x0049,
  QQ_FILE_TRANS_PASV = 0x003f
}

函数

int _qq_in_same_lan (ft_info *info)
int _qq_xfer_init_udp_channel (ft_info *info)
ssize_t _qq_xfer_udp_recv (char *buf, size_t len, GaimXfer *xfer)
ssize_t _qq_xfer_udp_send (const char *buf, size_t len, GaimXfer *xfer)
ssize_t _qq_xfer_write (const char *buf, size_t len, GaimXfer *xfer)
void _qq_xfer_recv_packet (gpointer data, gint source, GaimInputCondition condition)
void _qq_xfer_send_start (GaimXfer *xfer)
void _qq_xfer_send_ack (GaimXfer *xfer, const char *buffer, size_t len)
void _qq_xfer_recv_start (GaimXfer *xfer)
void _qq_xfer_end (GaimXfer *xfer)
void qq_show_conn_info (ft_info *info)
void qq_get_conn_info (guint8 *data, guint8 **cursor, gint data_len, ft_info *info)
gint qq_fill_conn_info (guint8 *raw_data, guint8 **cursor, ft_info *info)
gchar * _gen_session_md5 (gint uid, gchar *session_key)
gint _qq_create_packet_file_header (guint8 *raw_data, guint8 **cursor, guint32 to_uid, guint16 message_type, qq_data *qd, gboolean seq_ack)
void _qq_xfer_init_socket (GaimXfer *xfer)
void _qq_send_packet_file_request (GaimConnection *gc, guint32 to_uid, gchar *filename, gint filesize)
void _qq_send_packet_file_accept (GaimConnection *gc, guint32 to_uid)
void _qq_send_packet_file_notifyip (GaimConnection *gc, guint32 to_uid)
void _qq_send_packet_file_reject (GaimConnection *gc, guint32 to_uid)
void _qq_send_packet_file_cancel (GaimConnection *gc, guint32 to_uid)
void _qq_xfer_init (GaimXfer *xfer)
void _qq_xfer_cancel (GaimXfer *xfer)
void _qq_xfer_recv_init (GaimXfer *xfer)
void qq_process_recv_file_reject (guint8 *data, guint8 **cursor, gint data_len, guint32 sender_uid, GaimConnection *gc)
void qq_process_recv_file_cancel (guint8 *data, guint8 **cursor, gint data_len, guint32 sender_uid, GaimConnection *gc)
void qq_process_recv_file_accept (guint8 *data, guint8 **cursor, gint data_len, guint32 sender_uid, GaimConnection *gc)
void qq_process_recv_file_request (guint8 *data, guint8 **cursor, gint data_len, guint32 sender_uid, GaimConnection *gc)
void _qq_xfer_send_notify_ip_ack (gpointer data, gint source, GaimInputCondition cond)
void qq_process_recv_file_notify (guint8 *data, guint8 **cursor, gint data_len, guint32 sender_uid, GaimConnection *gc)
void qq_send_file (GaimConnection *gc, const char *who, const char *file)
void qq_send_packet_request_key (GaimConnection *gc, guint8 key)
void qq_process_recv_request_key (GaimConnection *gc)


枚举类型文档

anonymous enum
 

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

枚举值:
QQ_FILE_TRANS_REQ 
QQ_FILE_TRANS_ACC_UDP 
QQ_FILE_TRANS_ACC_TCP 
QQ_FILE_TRANS_DENY_UDP 
QQ_FILE_TRANS_DENY_TCP 
QQ_FILE_TRANS_NOTIFY 
QQ_FILE_TRANS_NOTIFY_ACK 
QQ_FILE_TRANS_CANCEL 
QQ_FILE_TRANS_PASV 

在文件send_file.c42行定义。


函数文档

gchar* _gen_session_md5 gint  uid,
gchar *  session_key
 

在文件im.c226行定义。

参考 create_packet_data()create_packet_dw()QQ_KEY_LENGTH.

函数调用图:

gint _qq_create_packet_file_header guint8 *  raw_data,
guint8 **  cursor,
guint32  to_uid,
guint16  message_type,
qq_data qd,
gboolean  seq_ack
 

在文件send_file.c280行定义。

参考 _gen_session_md5()create_packet_b()create_packet_data()create_packet_dw()create_packet_w()infoQQ_CLIENT_ft_info::send_seq.

参考自 _qq_send_packet_file_accept()_qq_send_packet_file_cancel()_qq_send_packet_file_notifyip()_qq_send_packet_file_reject()_qq_send_packet_file_request().

函数调用图:

int _qq_in_same_lan ft_info info  ) 
 

在文件send_file.c55行定义。

参考 _ft_info::local_internet_ip_ft_info::remote_internet_ip.

参考自 _qq_xfer_init_socket()_qq_xfer_init_udp_channel()_qq_xfer_udp_send().

void _qq_send_packet_file_accept GaimConnection *  gc,
guint32  to_uid
 

在文件send_file.c496行定义。

参考 _qq_create_packet_file_header()_qq_xfer_init_socket()info_ft_info::local_minor_port_ft_info::local_real_ipQQ_CMD_SEND_IMQQ_FILE_TRANS_ACC_UDPqq_fill_conn_info()qq_send_cmd()_qq_data::xfer.

参考自 _qq_xfer_recv_init().

函数调用图:

void _qq_send_packet_file_cancel GaimConnection *  gc,
guint32  to_uid
 

在文件send_file.c603行定义。

参考 _qq_create_packet_file_header()QQ_CMD_SEND_IMQQ_FILE_TRANS_CANCELqq_send_cmd().

参考自 _qq_xfer_cancel().

函数调用图:

void _qq_send_packet_file_notifyip GaimConnection *  gc,
guint32  to_uid
 

在文件send_file.c536行定义。

参考 _qq_create_packet_file_header()_qq_xfer_recv_packet()info_ft_info::major_fdQQ_CMD_SEND_IMQQ_FILE_TRANS_NOTIFYqq_fill_conn_info()qq_send_cmd()_ft_info::recv_fd_qq_data::xfer.

参考自 qq_process_recv_file_accept().

函数调用图:

void _qq_send_packet_file_reject GaimConnection *  gc,
guint32  to_uid
 

在文件send_file.c572行定义。

参考 _qq_create_packet_file_header()QQ_CMD_SEND_IMQQ_FILE_TRANS_DENY_UDPqq_send_cmd().

参考自 _qq_xfer_cancel().

函数调用图:

void _qq_send_packet_file_request GaimConnection *  gc,
guint32  to_uid,
gchar *  filename,
gint  filesize
 

在文件send_file.c439行定义。

参考 _qq_create_packet_file_header()_ft_info::conn_methodcreate_packet_b()create_packet_data()info_ft_info::local_internet_ip_ft_info::local_internet_port_ft_info::local_real_ip_qq_data::my_ip_qq_data::my_portQQ_CMD_SEND_IMQQ_FILE_TRANS_REQqq_fill_conn_info()qq_send_cmd()_qq_data::send_seq_ft_info::send_seq_ft_info::to_uid_qq_data::xfer.

参考自 _qq_xfer_init().

函数调用图:

void _qq_xfer_cancel GaimXfer *  xfer  ) 
 

在文件send_file.c661行定义。

参考 _qq_send_packet_file_cancel()_qq_send_packet_file_reject()gaim_name_to_uid().

参考自 qq_process_recv_file_request()qq_send_file().

函数调用图:

void _qq_xfer_end GaimXfer *  xfer  ) 
 

在文件send_file.c199行定义。

参考 _ft_info::dest_fpinfo_ft_info::major_fd_ft_info::minor_fdqq_xfer_close_file().

参考自 qq_process_recv_file_request().

函数调用图:

void _qq_xfer_init GaimXfer *  xfer  ) 
 

在文件send_file.c634行定义。

参考 _qq_send_packet_file_request()gaim_name_to_uid().

参考自 qq_send_file().

函数调用图:

void _qq_xfer_init_socket GaimXfer *  xfer  ) 
 

在文件send_file.c382行定义。

参考 _qq_in_same_lan()info.

参考自 _qq_send_packet_file_accept()qq_process_recv_file_accept().

函数调用图:

int _qq_xfer_init_udp_channel ft_info info  ) 
 

在文件send_file.c63行定义。

参考 _qq_in_same_lan()_ft_info::remote_internet_ip_ft_info::remote_major_port_ft_info::remote_minor_port_ft_info::remote_real_ip.

参考自 qq_process_recv_file_accept()qq_process_recv_file_notify().

函数调用图:

void _qq_xfer_recv_init GaimXfer *  xfer  ) 
 

在文件send_file.c696行定义。

参考 _qq_send_packet_file_accept()gaim_name_to_uid()info.

参考自 qq_process_recv_file_request().

函数调用图:

void _qq_xfer_recv_packet gpointer  data,
gint  source,
GaimInputCondition  condition
 

在文件send_file.c148行定义。

参考 _qq_xfer_udp_recv()infoqq_process_recv_file()_ft_info::recv_fd.

参考自 _qq_send_packet_file_notifyip()_qq_xfer_send_notify_ip_ack().

函数调用图:

void _qq_xfer_recv_start GaimXfer *  xfer  ) 
 

在文件send_file.c194行定义。

void _qq_xfer_send_ack GaimXfer *  xfer,
const char *  buffer,
size_t  len
 

在文件send_file.c182行定义。

参考 qq_process_recv_file().

函数调用图:

void _qq_xfer_send_notify_ip_ack gpointer  data,
gint  source,
GaimInputCondition  cond
 

在文件send_file.c861行定义。

参考 _qq_xfer_recv_packet()infoQQ_FILE_CMD_NOTIFY_IP_ACKqq_send_file_ctl_packet()_ft_info::recv_fd_ft_info::to_uid.

参考自 qq_process_recv_file_notify().

函数调用图:

void _qq_xfer_send_start GaimXfer *  xfer  ) 
 

在文件send_file.c170行定义。

参考 info.

ssize_t _qq_xfer_udp_recv char *  buf,
size_t  len,
GaimXfer *  xfer
 

在文件send_file.c80行定义。

参考 info_ft_info::recv_fd.

参考自 _qq_xfer_recv_packet().

ssize_t _qq_xfer_udp_send const char *  buf,
size_t  len,
GaimXfer *  xfer
 

在文件send_file.c104行定义。

参考 _qq_in_same_lan()info.

参考自 _qq_xfer_write().

函数调用图:

ssize_t _qq_xfer_write const char *  buf,
size_t  len,
GaimXfer *  xfer
 

在文件send_file.c142行定义。

参考 _qq_xfer_udp_send().

参考自 _qq_send_file()qq_process_recv_file_request()qq_send_file().

函数调用图:

gint qq_fill_conn_info guint8 *  raw_data,
guint8 **  cursor,
ft_info info
 

在文件send_file.c255行定义。

参考 _ft_info::conn_methodcreate_packet_b()create_packet_dw()create_packet_w()_ft_info::local_internet_ip_ft_info::local_internet_port_ft_info::local_major_port_ft_info::local_minor_port_ft_info::local_real_ip.

参考自 _qq_send_packet_file_accept()_qq_send_packet_file_notifyip()_qq_send_packet_file_request()qq_send_file_ctl_packet().

函数调用图:

void qq_get_conn_info guint8 *  data,
guint8 **  cursor,
gint  data_len,
ft_info info
 

在文件send_file.c242行定义。

参考 _ft_info::conn_method_ft_info::file_session_keyqq_show_conn_info()read_packet_b()read_packet_data()read_packet_dw()read_packet_w()_ft_info::remote_internet_ip_ft_info::remote_internet_port_ft_info::remote_major_port_ft_info::remote_minor_port_ft_info::remote_real_ip.

参考自 _qq_process_recv_file_ctl_packet()qq_process_recv_file_accept()qq_process_recv_file_notify()qq_process_recv_file_request().

函数调用图:

void qq_process_recv_file_accept guint8 *  data,
guint8 **  cursor,
gint  data_len,
guint32  sender_uid,
GaimConnection *  gc
 

在文件send_file.c775行定义。

参考 _qq_send_packet_file_notifyip()_qq_xfer_init_socket()_qq_xfer_init_udp_channel()infoqq_get_conn_info()_qq_data::xfer.

参考自 _qq_process_recv_normal_im().

函数调用图:

void qq_process_recv_file_cancel guint8 *  data,
guint8 **  cursor,
gint  data_len,
guint32  sender_uid,
GaimConnection *  gc
 

在文件send_file.c744行定义。

参考 _qq_data::xfer.

参考自 _qq_process_recv_normal_im().

void qq_process_recv_file_notify guint8 *  data,
guint8 **  cursor,
gint  data_len,
guint32  sender_uid,
GaimConnection *  gc
 

在文件send_file.c877行定义。

参考 _qq_xfer_init_udp_channel()_qq_xfer_send_notify_ip_ack()infoqq_get_conn_info()read_packet_w()_ft_info::send_seq_ft_info::sender_fd_qq_data::xfer.

参考自 _qq_process_recv_normal_im().

函数调用图:

void qq_process_recv_file_reject guint8 *  data,
guint8 **  cursor,
gint  data_len,
guint32  sender_uid,
GaimConnection *  gc
 

在文件send_file.c713行定义。

参考 _qq_data::xfer.

参考自 _qq_process_recv_normal_im().

void qq_process_recv_file_request guint8 *  data,
guint8 **  cursor,
gint  data_len,
guint32  sender_uid,
GaimConnection *  gc
 

在文件send_file.c805行定义。

参考 _qq_xfer_cancel()_qq_xfer_end()_qq_xfer_recv_init()_qq_xfer_write()info_ft_info::local_internet_ip_ft_info::local_internet_port_ft_info::local_real_ip_qq_data::my_ip_qq_data::my_portqq_get_conn_info()read_packet_w()_ft_info::send_seq_ft_info::to_uiduid_to_gaim_name()_qq_data::xfer.

参考自 _qq_process_recv_normal_im().

函数调用图:

void qq_process_recv_request_key GaimConnection *  gc  ) 
 

在文件send_file.c929行定义。

void qq_send_file GaimConnection *  gc,
const char *  who,
const char *  file
 

在文件send_file.c906行定义。

参考 _qq_xfer_cancel()_qq_xfer_init()_qq_xfer_write()_qq_data::xfer.

参考自 _qq_menu_send_file().

函数调用图:

void qq_send_packet_request_key GaimConnection *  gc,
guint8  key
 

在文件send_file.c924行定义。

参考 QQ_CMD_REQUEST_KEYqq_send_cmd().

函数调用图:

void qq_show_conn_info ft_info info  ) 
 

在文件send_file.c225行定义。

参考 gen_ip_str()_ft_info::remote_internet_ip_ft_info::remote_internet_port_ft_info::remote_major_port_ft_info::remote_minor_port_ft_info::remote_real_ip.

参考自 qq_get_conn_info().

函数调用图:


Generated at Mon May 8 15:46:09 2006 for OpenQ by  doxygen 1.4.4