# HG changeset patch # User Daniel Atallah # Date 1195442189 0 # Node ID fd87b254d3f3525aba25d6ae5649fa6724cf8d79 # Parent 948e5c7a558fff25419b570cde83ce98bc5e7816 Fix #3983 by canceling the file transfer when connecting to the remote host fails. diff -r 948e5c7a558f -r fd87b254d3f3 libpurple/ft.c --- a/libpurple/ft.c Mon Nov 19 03:10:41 2007 +0000 +++ b/libpurple/ft.c Mon Nov 19 03:16:29 2007 +0000 @@ -998,6 +998,11 @@ { PurpleXfer *xfer = (PurpleXfer *)data; + if (source < 0) { + purple_xfer_cancel_local(xfer); + return; + } + xfer->fd = source; begin_transfer(xfer, PURPLE_INPUT_READ); diff -r 948e5c7a558f -r fd87b254d3f3 libpurple/protocols/irc/dcc_send.c --- a/libpurple/protocols/irc/dcc_send.c Mon Nov 19 03:10:41 2007 +0000 +++ b/libpurple/protocols/irc/dcc_send.c Mon Nov 19 03:16:29 2007 +0000 @@ -40,9 +40,7 @@ { struct irc_xfer_rx_data *xd = xfer->data; - if (xd->ip != NULL) - g_free(xd->ip); - + g_free(xd->ip); g_free(xd); } @@ -123,8 +121,8 @@ } else { xd->ip = g_strdup(token[i]); } - purple_debug(PURPLE_DEBUG_INFO, "irc", "Receiving file from %s\n", - xd->ip); + purple_debug(PURPLE_DEBUG_INFO, "irc", "Receiving file (%s) from %s\n", + filename->str, xd->ip); purple_xfer_set_size(xfer, token[i+2] ? atoi(token[i+2]) : 0); purple_xfer_set_init_fnc(xfer, irc_dccsend_recv_init); @@ -166,8 +164,7 @@ if (xd->fd != -1) close(xd->fd); - if (xd->rxqueue) - g_free(xd->rxqueue); + g_free(xd->rxqueue); g_free(xd); }