mirror of
https://github.com/irssi/irssi.git
synced 2026-08-17 23:52:22 +02:00
a few changes to DCC so that it should be possible to send >4GB files. DCC protocol uses 32bit "n bytes transferred" notifications, so I had to bend the protocol a bit to allow 64bit files by truncating the value to lowest 32bits. I'm not sure how other clients handle those notifications, but irssi uses it only to figure out when the DCC SEND transfer is complete, so it's quite safe to assume that if we've managed to write() all the bytes and we receive the last 32bit of file size, it means the total file size instead of the total - (n+1)*4GB. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3018 dbcabf3a-b0e7-0310-adc4-f8d773084564
25 lines
845 B
C
25 lines
845 B
C
int type;
|
|
int orig_type; /* original DCC type that was sent to us - same as type except GET and SEND are swapped */
|
|
time_t created;
|
|
|
|
IRC_SERVER_REC *server;
|
|
char *servertag; /* for resetting server later if we get disconnected */
|
|
char *mynick; /* my current nick */
|
|
char *nick;
|
|
|
|
CHAT_DCC_REC *chat; /* if the request came through DCC chat */
|
|
char *target; /* who the request was sent to - your nick, channel or NULL if you sent the request */
|
|
char *arg;
|
|
|
|
IPADDR addr; /* address we're connected in */
|
|
char addrstr[MAX_IP_LEN]; /* in readable form */
|
|
int port; /* port we're connected in */
|
|
|
|
GIOChannel *handle; /* socket handle */
|
|
int tagconn, tagread, tagwrite;
|
|
time_t starttime; /* transfer start time */
|
|
uoff_t transfd; /* bytes transferred */
|
|
|
|
unsigned int destroyed:1; /* We're about to destroy this DCC recond */
|
|
|
|
GHashTable *module_data;
|