diff options
author | Timo Sirainen <cras@irssi.org> | 2002-01-20 02:18:37 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2002-01-20 02:18:37 +0000 |
commit | d6abc84ab5e3f7653f657e9b5fb22230a0b8db4d (patch) | |
tree | bc9607feebf8e5fbee02e4480f289c41e5ba949f /src/irc | |
parent | 59e32a18c9fb50058e588693907ad7b02a7b9daf (diff) | |
download | irssi-d6abc84ab5e3f7653f657e9b5fb22230a0b8db4d.zip |
Connection tag variable wasn't deinitialized, so when destroying a DCC
record it might have stopped a wrong timeout/io func (or probably not,
because new source func was allocated soon after, and it'd have the same tag
which would just be free'd twice).
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2324 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc')
-rw-r--r-- | src/irc/dcc/dcc-chat.c | 5 | ||||
-rw-r--r-- | src/irc/dcc/dcc-get.c | 1 | ||||
-rw-r--r-- | src/irc/dcc/dcc-send.c | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/src/irc/dcc/dcc-chat.c b/src/irc/dcc/dcc-chat.c index af0084c8..dd9159c3 100644 --- a/src/irc/dcc/dcc-chat.c +++ b/src/irc/dcc/dcc-chat.c @@ -320,8 +320,9 @@ static void dcc_chat_listen(CHAT_DCC_REC *dcc) /* TODO: add paranoia check - see dcc-files.c */ - g_source_remove(dcc->tagconn); net_disconnect(dcc->handle); + g_source_remove(dcc->tagconn); + dcc->tagconn = -1; dcc->starttime = time(NULL); dcc->handle = handle; @@ -349,6 +350,8 @@ static void sig_chat_connected(CHAT_DCC_REC *dcc) /* connect ok. */ g_source_remove(dcc->tagconn); + dcc->tagconn = -1; + dcc->starttime = time(NULL); dcc->sendbuf = net_sendbuffer_create(dcc->handle, 0); dcc->tagread = g_input_add(dcc->handle, G_INPUT_READ, diff --git a/src/irc/dcc/dcc-get.c b/src/irc/dcc/dcc-get.c index b04cab40..52c93483 100644 --- a/src/irc/dcc/dcc-get.c +++ b/src/irc/dcc/dcc-get.c @@ -180,6 +180,7 @@ static void sig_dccget_connected(GET_DCC_REC *dcc) } g_source_remove(dcc->tagconn); + dcc->tagconn = -1; g_free_not_null(dcc->file); dcc->file = dcc_get_download_path(dcc->arg); diff --git a/src/irc/dcc/dcc-send.c b/src/irc/dcc/dcc-send.c index 9d312e13..7c35cc4d 100644 --- a/src/irc/dcc/dcc-send.c +++ b/src/irc/dcc/dcc-send.c @@ -128,8 +128,9 @@ static void dcc_send_connected(SEND_DCC_REC *dcc) that the host of the nick who we sent the request matches the address who connected us. */ - g_source_remove(dcc->tagconn); net_disconnect(dcc->handle); + g_source_remove(dcc->tagconn); + dcc->tagconn = -1; dcc->starttime = time(NULL); dcc->handle = handle; |