diff options
author | 2005-01-23 21:17:27 +0000 | |
---|---|---|
committer | 2005-01-23 21:17:27 +0000 | |
commit | ab08209c685f9ca9c3937edeb1f5f707afb1a270 (patch) | |
tree | e85990244914ca8bcec696a10dc7e92f61b2e25e /net-irc | |
parent | libGL.la fix (diff) | |
download | gentoo-2-ab08209c685f9ca9c3937edeb1f5f707afb1a270.tar.gz gentoo-2-ab08209c685f9ca9c3937edeb1f5f707afb1a270.tar.bz2 gentoo-2-ab08209c685f9ca9c3937edeb1f5f707afb1a270.zip |
Added a patch from Adrian <adrian@planetcoding.net> that reduces the on-attach lag by sending all channels in NAMES and TOPIC requests at once. Closes bug #78341.
(Portage version: 2.0.51-r14)
Diffstat (limited to 'net-irc')
-rw-r--r-- | net-irc/dircproxy/ChangeLog | 8 | ||||
-rw-r--r-- | net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild | 3 | ||||
-rw-r--r-- | net-irc/dircproxy/files/1.1.0-less-lag-on-attach.patch | 53 |
3 files changed, 62 insertions, 2 deletions
diff --git a/net-irc/dircproxy/ChangeLog b/net-irc/dircproxy/ChangeLog index 40eb5642384b..9e03a8d1e807 100644 --- a/net-irc/dircproxy/ChangeLog +++ b/net-irc/dircproxy/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-irc/dircproxy # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-irc/dircproxy/ChangeLog,v 1.13 2005/01/09 16:57:54 luckyduck Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-irc/dircproxy/ChangeLog,v 1.14 2005/01/23 21:17:26 swegener Exp $ + + 23 Jan 2005; Sven Wegener <swegener@gentoo.org> + +files/1.1.0-less-lag-on-attach.patch, dircproxy-1.1.0-r1.ebuild: + Added a patch from Adrian <adrian@planetcoding.net> that reduces the + on-attach lag by sending all channels in NAMES and TOPIC requests at once. + Closes bug #78341. 09 Jan 2005; Jan Brinkmann <luckyduck@gentoo.org> dircproxy-1.0.5.ebuild, dircproxy-1.1.0-r1.ebuild: diff --git a/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild b/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild index d7789295c915..5b11b4c1e470 100644 --- a/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild +++ b/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild,v 1.2 2005/01/09 16:57:54 luckyduck Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-irc/dircproxy/dircproxy-1.1.0-r1.ebuild,v 1.3 2005/01/23 21:17:26 swegener Exp $ inherit eutils @@ -20,6 +20,7 @@ src_unpack() { cd ${S} epatch ${FILESDIR}/${PV}-005-numeric.patch + epatch ${FILESDIR}/${PV}-less-lag-on-attach.patch } src_install() { diff --git a/net-irc/dircproxy/files/1.1.0-less-lag-on-attach.patch b/net-irc/dircproxy/files/1.1.0-less-lag-on-attach.patch new file mode 100644 index 000000000000..c6e6248d34d4 --- /dev/null +++ b/net-irc/dircproxy/files/1.1.0-less-lag-on-attach.patch @@ -0,0 +1,53 @@ +--- src/irc_client.c 2005-01-06 02:48:12.964637427 +0100 ++++ src/irc_client.c.lessflood 2005-01-06 02:47:50.433376383 +0100 +@@ -1910,13 +1910,34 @@ + /* Recall channel log files, and get channel topic and members from server */ + if (p->channels) { + struct ircchannel *c; ++ unsigned int cnames_length = 0; ++ char *cnames = 0; ++ ++ c = p->channels; ++ while (c) { ++ if (!c->inactive && !c->unjoined) { ++ cnames_length += strlen(c->name) + 1; // +1 to hold comma ++ } ++ ++ c = c->next; ++ } ++ ++ if(cnames_length) ++ { ++ cnames = (char *)malloc(cnames_length + 1); ++ memset(cnames, 0, cnames_length + 1); ++ } + + c = p->channels; + while (c) { + if (!c->inactive && !c->unjoined) { + ircclient_send_selfcmd(p, "JOIN", ":%s", c->name); +- ircserver_send_command(p, "TOPIC", ":%s", c->name); +- ircserver_send_command(p, "NAMES", ":%s", c->name); ++ if(cnames_length) { ++ if(c == p->channels) // first channel in list ++ sprintf(cnames, "%s", c->name); ++ else ++ sprintf(cnames, "%s,%s", cnames, c->name); ++ } + + if (p->conn_class->chan_log_enabled) { + irclog_autorecall(p, c->name); +@@ -1926,6 +1948,13 @@ + + c = c->next; + } ++ ++ if(cnames_length) ++ { ++ ircserver_send_command(p, "TOPIC", ":%s", cnames); ++ ircserver_send_command(p, "NAMES", ":%s", cnames); ++ free(cnames); ++ } + } + + /* Recall private log file */ |