From 80a76f65f675cf0b27ebde99d87f35a5e04e9b5d Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sat, 30 Sep 2006 06:52:52 +0000 Subject: [PATCH] Fixed crash for DCC receiver when resuming a file (bug #17885), fixed DCC error for sender when receiver cancels DCC (bug #17852) --- ChangeLog | 4 +++- src/irc/irc-dcc.c | 7 ++++--- weechat/ChangeLog | 4 +++- weechat/src/irc/irc-dcc.c | 7 ++++--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b2c4278c..5084e43b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2006-09-23 +ChangeLog - 2006-09-30 Version 0.2.1 (under dev!): + * fixed crash for DCC receiver when resuming a file (bug #17885) + * fixed DCC error for sender when receiver cancels DCC (bug #17852) * fixed random crash with /upgrade command (error when loading buffers) * fixed buffer search by server/channel: now if only channel is specified, a channel of another server can be found diff --git a/src/irc/irc-dcc.c b/src/irc/irc-dcc.c index dc9f3f843..6a7e225c9 100644 --- a/src/irc/irc-dcc.c +++ b/src/irc/irc-dcc.c @@ -1421,7 +1421,7 @@ dcc_file_send_child (t_irc_dcc *ptr_dcc) if ((num_read < 1) && ((num_read != -1) || (errno != EAGAIN))) { - dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_READ_LOCAL); + dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_SEND_BLOCK); return; } if (num_read == 4) @@ -1462,7 +1462,7 @@ dcc_file_send_child (t_irc_dcc *ptr_dcc) usleep (1000); else { - dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_READ_LOCAL); + dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_SEND_BLOCK); return; } } @@ -1830,7 +1830,8 @@ dcc_handle () } if (ptr_dcc->type == DCC_FILE_RECV) { - dcc_file_child_read (ptr_dcc); + if (ptr_dcc->child_read != -1) + dcc_file_child_read (ptr_dcc); } } diff --git a/weechat/ChangeLog b/weechat/ChangeLog index 6b2c4278c..5084e43b5 100644 --- a/weechat/ChangeLog +++ b/weechat/ChangeLog @@ -1,10 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2006-09-23 +ChangeLog - 2006-09-30 Version 0.2.1 (under dev!): + * fixed crash for DCC receiver when resuming a file (bug #17885) + * fixed DCC error for sender when receiver cancels DCC (bug #17852) * fixed random crash with /upgrade command (error when loading buffers) * fixed buffer search by server/channel: now if only channel is specified, a channel of another server can be found diff --git a/weechat/src/irc/irc-dcc.c b/weechat/src/irc/irc-dcc.c index dc9f3f843..6a7e225c9 100644 --- a/weechat/src/irc/irc-dcc.c +++ b/weechat/src/irc/irc-dcc.c @@ -1421,7 +1421,7 @@ dcc_file_send_child (t_irc_dcc *ptr_dcc) if ((num_read < 1) && ((num_read != -1) || (errno != EAGAIN))) { - dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_READ_LOCAL); + dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_SEND_BLOCK); return; } if (num_read == 4) @@ -1462,7 +1462,7 @@ dcc_file_send_child (t_irc_dcc *ptr_dcc) usleep (1000); else { - dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_READ_LOCAL); + dcc_file_write_pipe (ptr_dcc, DCC_FAILED, DCC_ERROR_SEND_BLOCK); return; } } @@ -1830,7 +1830,8 @@ dcc_handle () } if (ptr_dcc->type == DCC_FILE_RECV) { - dcc_file_child_read (ptr_dcc); + if (ptr_dcc->child_read != -1) + dcc_file_child_read (ptr_dcc); } }