mirror of
https://github.com/irssi/irssi.git
synced 2026-08-11 04:43:34 +02:00
Moved rewritten server redirection code from core to irc. This new code
should be able to do the redirecting a lot more error-proof. Changed lag-checking to use PINGs instead of NOTIFYs. This breaks scripts using redirection. Hopefully this doesn't break too much things in irssi :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1980 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
712f3b383d
commit
850cf993eb
28 changed files with 908 additions and 786 deletions
|
|
@ -46,47 +46,6 @@ void
|
|||
server_disconnect(server)
|
||||
Irssi::Server server
|
||||
|
||||
void
|
||||
server_redirect_init(server, command, last, ...)
|
||||
Irssi::Server server
|
||||
char *command
|
||||
int last
|
||||
PREINIT:
|
||||
STRLEN n_a;
|
||||
GSList *list;
|
||||
int n;
|
||||
CODE:
|
||||
list = NULL;
|
||||
for (n = 3; n < items; n++) {
|
||||
list = g_slist_append(list, SvPV(ST(n), n_a));
|
||||
}
|
||||
server_redirect_initv(server, command, last, list);
|
||||
|
||||
int
|
||||
server_redirect_single_event(server, arg, last, group, event, signal, argpos)
|
||||
Irssi::Server server
|
||||
char *arg
|
||||
int last
|
||||
int group
|
||||
char *event
|
||||
char *signal
|
||||
int argpos
|
||||
|
||||
void
|
||||
server_redirect_event(server, arg, last, ...)
|
||||
Irssi::Server server
|
||||
char *arg
|
||||
int last
|
||||
PREINIT:
|
||||
STRLEN n_a;
|
||||
int n, group;
|
||||
CODE:
|
||||
group = 0;
|
||||
for (n = 3; n+3 <= items; n += 3, last--) {
|
||||
group = server_redirect_single_event(server, arg, last > 0, group,
|
||||
(char *) SvPV(ST(n), n_a), (char *) SvPV(ST(n+1), n_a), (int) SvIV(ST(n+2)));
|
||||
}
|
||||
|
||||
int
|
||||
isnickflag(server, flag)
|
||||
Irssi::Server server
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
#include "chatnets.h"
|
||||
#include "servers.h"
|
||||
#include "servers-reconnect.h"
|
||||
#include "servers-redirect.h"
|
||||
#include "servers-setup.h"
|
||||
#include "channels.h"
|
||||
#include "queries.h"
|
||||
|
|
|
|||
|
|
@ -35,6 +35,44 @@ ctcp_send_reply(server, data)
|
|||
Irssi::Irc::Server server
|
||||
char *data
|
||||
|
||||
MODULE = Irssi::Irc::Server PACKAGE = Irssi::Irc::Server PREFIX = server_
|
||||
|
||||
void
|
||||
server_redirect_register(command, remote, timeout, ...)
|
||||
char *command
|
||||
int remote
|
||||
int timeout
|
||||
PREINIT:
|
||||
STRLEN n_a;
|
||||
GSList *start, *stop, **list;
|
||||
int n;
|
||||
CODE:
|
||||
start = stop = NULL; list = &start;
|
||||
for (n = 3; n < items; n++) {
|
||||
if (ST(n) == &PL_sv_undef) list = &stop;
|
||||
if (SvPOK(ST(n)))
|
||||
*list = g_slist_append(*list, SvPV(ST(n), n_a));
|
||||
}
|
||||
server_redirect_register_list(command, remote, timeout, start, stop);
|
||||
|
||||
void
|
||||
server_redirect_event(server, command, arg, remote, failure_signal, ...)
|
||||
Irssi::Irc::Server server
|
||||
char *command
|
||||
char *arg
|
||||
int remote
|
||||
char *failure_signal
|
||||
PREINIT:
|
||||
STRLEN n_a;
|
||||
GSList *list;
|
||||
int n;
|
||||
CODE:
|
||||
list = NULL;
|
||||
for (n = 5; n < items; n++) {
|
||||
list = g_slist_append(list, SvPV(ST(n), n_a));
|
||||
}
|
||||
server_redirect_event_list(server, command, arg, remote, failure_signal, list);
|
||||
|
||||
MODULE = Irssi::Irc::Server PACKAGE = Irssi::Irc::Connect PREFIX = irc_server_
|
||||
|
||||
Irssi::Irc::Server
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "modes.h"
|
||||
#include "mode-lists.h"
|
||||
#include "netsplit.h"
|
||||
#include "servers-redirect.h"
|
||||
|
||||
#include "dcc/dcc.h"
|
||||
#include "dcc/dcc-file.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue