summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-21 00:47:29 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-21 00:47:29 +0100
commit2edd25a655c9d0c908edae0b3c752630bde299ed (patch)
treeb311e851ef31a342f7b1ac1c05dae54291cfcb96
parent75bec51affee1f01d107e68b38180c9d5d5edae0 (diff)
go flood
-rw-r--r--main.go14
1 files 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() {