mirror of
https://github.com/irssi/irssi.git
synced 2026-08-10 12:23:37 +02:00
Rework redirections to deal with multiple concurrent redirects better.
These mostly happen when doing remote whois and the target server is slow. The code uses the source server but will try to do what it can if servers think they need to mask it. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4638 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
fabecae6e6
commit
90b66dbe6c
6 changed files with 80 additions and 39 deletions
|
|
@ -391,7 +391,7 @@ static void sig_server_event(IRC_SERVER_REC *server, const char *line,
|
|||
while (*args == ' ') args++;
|
||||
g_strdown(event);
|
||||
|
||||
signal = server_redirect_peek_signal(server, event, args, &redirected);
|
||||
signal = server_redirect_peek_signal(server, nick, event, args, &redirected);
|
||||
if ((signal != NULL && strncmp(signal, "proxy ", 6) != 0) ||
|
||||
(signal == NULL && redirected)) {
|
||||
/* we want to send this to one client (or proxy itself) only */
|
||||
|
|
@ -401,7 +401,7 @@ static void sig_server_event(IRC_SERVER_REC *server, const char *line,
|
|||
}
|
||||
|
||||
if (signal != NULL) {
|
||||
server_redirect_get_signal(server, event, args);
|
||||
server_redirect_get_signal(server, nick, event, args);
|
||||
if (sscanf(signal+6, "%p", &client) == 1) {
|
||||
/* send it to specific client only */
|
||||
if (g_slist_find(proxy_clients, client) != NULL)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue