X-Git-Url: http://www.git.cypherpunks.ru/?p=goircd.git;a=blobdiff_plain;f=events.go;h=bc659a6c9eeb0e8302d6e55abecb492245622707;hp=30444dad06d0d18aeacc07bd7551fcb390c8756e;hb=186ec4b4bd91f9fd101b2f62d30c0f2bd4ed50ce;hpb=cfeaaad88f71bf1b0846251b7f448bf41bde26d9 diff --git a/events.go b/events.go index 30444da..bc659a6 100644 --- a/events.go +++ b/events.go @@ -1,6 +1,6 @@ /* goircd -- minimalistic simple Internet Relay Chat (IRC) server -Copyright (C) 2014 Sergey Matveev +Copyright (C) 2014-2015 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ + package main import ( @@ -65,9 +66,12 @@ func Logger(logdir string, events <-chan LogEvent) { mode := os.O_CREATE | os.O_WRONLY | os.O_APPEND perm := os.FileMode(0660) var format string + var logfile string + var fd *os.File + var err error for event := range events { - logfile := path.Join(logdir, event.where) - fd, err := os.OpenFile(logfile, mode, perm) + logfile = path.Join(logdir, event.where + ".log") + fd, err = os.OpenFile(logfile, mode, perm) if err != nil { log.Println("Can not open logfile", logfile, err) continue @@ -95,10 +99,13 @@ type StateEvent struct { // Room states shows that either topic or key has been changed // Each room's state is written to separate file in statedir func StateKeeper(statedir string, events <-chan StateEvent) { + var fn string + var data string + var err error for event := range events { - fn := path.Join(statedir, event.where) - data := event.topic + "\n" + event.key + "\n" - err := ioutil.WriteFile(fn, []byte(data), os.FileMode(0660)) + fn = path.Join(statedir, event.where) + data = event.topic + "\n" + event.key + "\n" + err = ioutil.WriteFile(fn, []byte(data), os.FileMode(0660)) if err != nil { log.Printf("Can not write statefile %s: %v", fn, err) }