From 2edd25a655c9d0c908edae0b3c752630bde299ed Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 21 Dec 2016 00:47:29 +0100 Subject: go flood --- main.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index cd1d751..45758b0 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,7 @@ import ( const maxLen = 500 func notify(conn *irc.Conn, target string) chan string { - c := make(chan string) + c := make(chan string, 1) go func() { for msg := range c { log.Println("send", msg) @@ -24,7 +24,7 @@ func notify(conn *irc.Conn, target string) chan string { } func kicker(conn *irc.Conn, channel string) chan string { - c := make(chan string) + c := make(chan string, 1) go func() { for nick := range c { if nick != conn.Me().Nick { @@ -50,13 +50,15 @@ func discon(c chan struct{}) irc.HandlerFunc { func privmsg(n, k chan string, room string) irc.HandlerFunc { l := links(n) - return func(conn *irc.Conn, line *irc.Line) { - t := line.Text() - l <- t - if isFlood(t) { + f := func(line *irc.Line) { + if isFlood(line.Text()) { k <- line.Nick } } + return func(conn *irc.Conn, line *irc.Line) { + go f(line) + l <- line.Text() + } } func main() { -- cgit v1.2.3