Bug 179720 - [PATCH] irc/bip: add patch which helps avoid flooding issues
Summary: [PATCH] irc/bip: add patch which helps avoid flooding issues
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Steve Wills
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-19 15:50 UTC by Steve Wills
Modified: 2014-02-02 17:10 UTC (History)
1 user (show)

See Also:


Attachments
bip-0.8.8_2.patch (3.10 KB, patch)
2013-06-19 15:50 UTC, Steve Wills
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Wills freebsd_committer freebsd_triage 2013-06-19 15:50:00 UTC
- Add a patch which helps avoid flooding issues. This patch is from upstream bug database, see:

  https://projects.duckcorp.org/issues/191

Port maintainer (sylvio@FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.99_7 (mode: change, diff: SVN)
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-06-19 15:50:07 UTC
Responsible Changed
From-To: freebsd-ports-bugs->sylvio

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Steve Wills freebsd_committer freebsd_triage 2013-12-31 21:18:21 UTC
Responsible Changed
From-To: sylvio->swills

I'll take it.
Comment 3 dfilter service freebsd_committer freebsd_triage 2014-02-02 17:02:49 UTC
Author: swills
Date: Sun Feb  2 17:02:36 2014
New Revision: 342339
URL: http://svnweb.freebsd.org/changeset/ports/342339
QAT: https://qat.redports.org/buildarchive/r342339/

Log:
  - Add a patch which helps avoid flooding issues
  
  PR:		ports/179720
  Submitted by:	myself
  Obtained from:	https://projects.duckcorp.org/issues/191

Added:
  head/irc/bip/files/patch-bip-191   (contents, props changed)
Modified:
  head/irc/bip/Makefile

Modified: head/irc/bip/Makefile
==============================================================================
--- head/irc/bip/Makefile	Sun Feb  2 16:54:09 2014	(r342338)
+++ head/irc/bip/Makefile	Sun Feb  2 17:02:36 2014	(r342339)
@@ -3,7 +3,7 @@
 
 PORTNAME=	bip
 PORTVERSION=	0.8.8
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	irc
 MASTER_SITES=	https://projects.duckcorp.org/attachments/download/39/
 

Added: head/irc/bip/files/patch-bip-191
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/irc/bip/files/patch-bip-191	Sun Feb  2 17:02:36 2014	(r342339)
@@ -0,0 +1,66 @@
+From 284c7a8020b664ecc6cb1f326af55325a46f7d3a Mon Sep 17 00:00:00 2001
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: Mon, 12 Sep 2011 23:25:09 +0000
+Subject: [PATCH] Throttle almost everything (except PING, PONG, and certain QUIT messages) sent to the IRCd.
+
+Fixes being killed for Excess Flooding on freenode by using the existing
+fakelag mechanism. The existing fakelag works great but was just not hooked
+into earlier.
+---
+ src/connection.c |   14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/src/connection.c b/src/connection.c
+index c793e18..e226f92 100644
+--- a/src/connection.c
++++ b/src/connection.c
+@@ -23,6 +23,7 @@ static SSL_CTX *sslctx = NULL;
+ static int ssl_cx_idx;
+ static BIO *errbio = NULL;
+ extern char *conf_ssl_certfile;
++static int cn_want_write(connection_t *cn);
+ static int SSLize(connection_t *cn, int *nc);
+ static SSL_CTX *SSL_init_context(void);
+ /* SSH like trust management */
+@@ -326,6 +327,11 @@ static int real_write_all(connection_t *cn)
+ 	return 0;
+ }
+ 
++/*
++ * May only be used when writing to the client or when sending
++ * timing-sensitive data to the server (PONG, PING for lagtest, QUIT)
++ * because fakelag is not enforced.
++ */
+ void write_line_fast(connection_t *cn, char *line)
+ {
+ 	int r;
+@@ -353,13 +359,15 @@ void write_line_fast(connection_t *cn, char *line)
+ void write_lines(connection_t *cn, list_t *lines)
+ {
+ 	list_append(cn->outgoing, lines);
+-	real_write_all(cn);
++	if (cn_want_write(cn))
++		real_write_all(cn);
+ }
+ 
+ void write_line(connection_t *cn, char *line)
+ {
+ 	list_add_last(cn->outgoing, bip_strdup(line));
+-	real_write_all(cn);
++	if (cn_want_write(cn))
++		real_write_all(cn);
+ }
+ 
+ list_t *read_lines(connection_t *cn, int *error)
+@@ -718,7 +726,7 @@ static int check_event_write(fd_set *fds, connection_t *cn, int *nc)
+ /* token generation interval: 1200ms */
+ #define TOKEN_INTERVAL 1200
+ 
+-int cn_want_write(connection_t *cn)
++static int cn_want_write(connection_t *cn)
+ {
+ 	if (cn->anti_flood) {
+ 		struct timeval tv;
+-- 
+1.7.3.4
+
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 4 Steve Wills freebsd_committer freebsd_triage 2014-02-02 17:04:34 UTC
State Changed
From-To: open->closed

Committed. Thanks!