summaryrefslogtreecommitdiff
path: root/src/irc/dcc
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-11-02 01:05:14 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-11-02 01:05:14 +0000
commitf354fe54c71485516b76fdd149891191993f60b5 (patch)
tree1231e8f5e1126c4fa9544a9ce40ce54ace6e05d1 /src/irc/dcc
parent95b94ed83c1372fae4eb14bf8109847bdc65a8d2 (diff)
downloadirssi-f354fe54c71485516b76fdd149891191993f60b5.zip
Moved some stuff from irc to core. Added command_bind_proto() function to
bind protocol-specific commands. Added #define command_bind_irc() for easier access. CMD_IRC_SERVER(server) check should be done at the beginning of each command requiring IRC server as active server, it handles it correctly the cases when it is not. Did some other cleanups as well. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1955 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc/dcc')
-rw-r--r--src/irc/dcc/dcc-autoget.c1
-rw-r--r--src/irc/dcc/dcc-chat.c26
-rw-r--r--src/irc/dcc/dcc-get.c2
-rw-r--r--src/irc/dcc/dcc-send.c5
-rw-r--r--src/irc/dcc/dcc.c2
-rw-r--r--src/irc/dcc/dcc.h1
-rw-r--r--src/irc/dcc/module.h1
7 files changed, 22 insertions, 16 deletions
diff --git a/src/irc/dcc/dcc-autoget.c b/src/irc/dcc/dcc-autoget.c
index 4e1359a6..c80d86d2 100644
--- a/src/irc/dcc/dcc-autoget.c
+++ b/src/irc/dcc/dcc-autoget.c
@@ -22,6 +22,7 @@
#include "signals.h"
#include "masks.h"
#include "settings.h"
+#include "servers.h"
#include "dcc-get.h"
diff --git a/src/irc/dcc/dcc-chat.c b/src/irc/dcc/dcc-chat.c
index 9d921559..9451bb6e 100644
--- a/src/irc/dcc/dcc-chat.c
+++ b/src/irc/dcc/dcc-chat.c
@@ -28,10 +28,10 @@
#include "misc.h"
#include "settings.h"
-#include "masks.h"
-#include "irc.h"
-#include "servers-setup.h"
+#include "irc-servers.h"
#include "irc-queries.h"
+#include "servers-setup.h"
+#include "masks.h"
#include "dcc-chat.h"
@@ -199,7 +199,7 @@ static void cmd_msg(const char *data)
signal_stop();
}
-static void cmd_me(const char *data, IRC_SERVER_REC *server, QUERY_REC *item)
+static void cmd_me(const char *data, SERVER_REC *server, QUERY_REC *item)
{
CHAT_DCC_REC *dcc;
char *str;
@@ -216,7 +216,7 @@ static void cmd_me(const char *data, IRC_SERVER_REC *server, QUERY_REC *item)
signal_stop();
}
-static void cmd_action(const char *data, IRC_SERVER_REC *server)
+static void cmd_action(const char *data, SERVER_REC *server)
{
CHAT_DCC_REC *dcc;
char *target, *text, *str;
@@ -246,15 +246,13 @@ static void cmd_action(const char *data, IRC_SERVER_REC *server)
signal_stop();
}
-static void cmd_ctcp(const char *data, IRC_SERVER_REC *server)
+static void cmd_ctcp(const char *data, SERVER_REC *server)
{
CHAT_DCC_REC *dcc;
char *target, *ctcpcmd, *ctcpdata, *str;
void *free_arg;
g_return_if_fail(data != NULL);
- if (server == NULL || !server->connected)
- cmd_return_error(CMDERR_NOT_CONNECTED);
if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_GETREST,
&target, &ctcpcmd, &ctcpdata))
@@ -425,7 +423,7 @@ static void cmd_dcc_chat(const char *data, IRC_SERVER_REC *server)
}
/* start listening */
- if (server == NULL || !server->connected)
+ if (!IS_IRC_SERVER(server) || !server->connected)
cmd_param_error(CMDERR_NOT_CONNECTED);
handle = dcc_listen(net_sendbuffer_handle(server->handle),
@@ -449,7 +447,7 @@ static void cmd_dcc_chat(const char *data, IRC_SERVER_REC *server)
}
/* SYNTAX: MIRCDCC ON|OFF */
-static void cmd_mircdcc(const char *data, IRC_SERVER_REC *server,
+static void cmd_mircdcc(const char *data, SERVER_REC *server,
QUERY_REC *item)
{
CHAT_DCC_REC *dcc;
@@ -465,7 +463,7 @@ static void cmd_mircdcc(const char *data, IRC_SERVER_REC *server,
/* DCC CLOSE CHAT <nick> - check only from chat_ids in open DCC chats,
the default handler will check from DCC chat requests */
-static void cmd_dcc_close(char *data, IRC_SERVER_REC *server)
+static void cmd_dcc_close(char *data, SERVER_REC *server)
{
GSList *tmp, *next;
char *nick;
@@ -488,8 +486,8 @@ static void cmd_dcc_close(char *data, IRC_SERVER_REC *server)
if (IS_DCC_CHAT(dcc) && dcc->id != NULL &&
g_strcasecmp(dcc->id, nick) == 0) {
found = TRUE;
- if (!dcc_is_connected(dcc))
- dcc_reject(DCC(dcc), server);
+ if (!dcc_is_connected(dcc) && IS_IRC_SERVER(server))
+ dcc_reject(DCC(dcc), IRC_SERVER(server));
else {
/* don't send DCC REJECT after DCC chat
is already open */
@@ -503,7 +501,7 @@ static void cmd_dcc_close(char *data, IRC_SERVER_REC *server)
cmd_params_free(free_arg);
}
-static void cmd_whois(const char *data, IRC_SERVER_REC *server,
+static void cmd_whois(const char *data, SERVER_REC *server,
WI_ITEM_REC *item)
{
CHAT_DCC_REC *dcc;
diff --git a/src/irc/dcc/dcc-get.c b/src/irc/dcc/dcc-get.c
index 27f795dc..4afb59be 100644
--- a/src/irc/dcc/dcc-get.c
+++ b/src/irc/dcc/dcc-get.c
@@ -25,7 +25,9 @@
#include "misc.h"
#include "settings.h"
+#include "irc-servers.h"
#include "servers-setup.h"
+
#include "dcc-get.h"
static int dcc_file_create_mode;
diff --git a/src/irc/dcc/dcc-send.c b/src/irc/dcc/dcc-send.c
index 393ba935..4b5943ad 100644
--- a/src/irc/dcc/dcc-send.c
+++ b/src/irc/dcc/dcc-send.c
@@ -26,6 +26,8 @@
#include "misc.h"
#include "settings.h"
+#include "irc-servers.h"
+
#include "dcc-send.h"
#include "dcc-chat.h"
@@ -189,6 +191,9 @@ static void cmd_dcc_send(const char *data, IRC_SERVER_REC *server,
g_strcasecmp(target, chat->nick) != 0))
chat = NULL;
+ if (!IS_IRC_SERVER(server))
+ server = NULL;
+
if ((server == NULL || !server->connected) && chat == NULL)
cmd_param_error(CMDERR_NOT_CONNECTED);
diff --git a/src/irc/dcc/dcc.c b/src/irc/dcc/dcc.c
index d44c2d62..651e8678 100644
--- a/src/irc/dcc/dcc.c
+++ b/src/irc/dcc/dcc.c
@@ -26,7 +26,7 @@
#include "misc.h"
#include "settings.h"
-#include "irc.h"
+#include "irc-servers.h"
#include "dcc-chat.h"
#include "dcc-get.h"
diff --git a/src/irc/dcc/dcc.h b/src/irc/dcc/dcc.h
index 31c945b1..57a0e2dc 100644
--- a/src/irc/dcc/dcc.h
+++ b/src/irc/dcc/dcc.h
@@ -3,7 +3,6 @@
#include "modules.h"
#include "network.h"
-#include "irc-servers.h"
#define DCC(dcc) ((DCC_REC *) (dcc))
diff --git a/src/irc/dcc/module.h b/src/irc/dcc/module.h
index 2557ed0f..8436945d 100644
--- a/src/irc/dcc/module.h
+++ b/src/irc/dcc/module.h
@@ -1,3 +1,4 @@
#include "common.h"
+#include "irc.h"
#define MODULE_NAME "irc/dcc"