summaryrefslogtreecommitdiff
path: root/src/irc/dcc/dcc-queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/irc/dcc/dcc-queue.c')
-rw-r--r--src/irc/dcc/dcc-queue.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/irc/dcc/dcc-queue.c b/src/irc/dcc/dcc-queue.c
index 677bc07b..9f982ed9 100644
--- a/src/irc/dcc/dcc-queue.c
+++ b/src/irc/dcc/dcc-queue.c
@@ -122,6 +122,31 @@ void dcc_queue_add(int queue, int mode, const char *nick, const char *fname,
rec->servertag = g_strdup(servertag);
rec->nick = g_strdup(nick);
rec->file = g_strdup(fname);
+ rec->passive = FALSE;
+
+ qlist = (GSList **) &g_ptr_array_index(queuelist, queue);
+ if (mode == DCC_QUEUE_PREPEND)
+ *qlist = g_slist_insert(*qlist, rec, 1);
+ else
+ *qlist = g_slist_append(*qlist, rec);
+}
+
+/* Same as above but adds a passive DCC to the queue */
+void dcc_queue_add_passive(int queue, int mode, const char *nick,
+ const char *fname, const char *servertag,
+ CHAT_DCC_REC *chat)
+{
+ DCC_QUEUE_REC *rec;
+ GSList **qlist;
+
+ g_assert(queue >= 0 && queue < queuelist->len);
+
+ rec = g_new0(DCC_QUEUE_REC, 1);
+ rec->chat = chat;
+ rec->servertag = g_strdup(servertag);
+ rec->nick = g_strdup(nick);
+ rec->file = g_strdup(fname);
+ rec->passive = TRUE;
qlist = (GSList **) &g_ptr_array_index(queuelist, queue);
if (mode == DCC_QUEUE_PREPEND)