X-Git-Url: http://www.git.cypherpunks.ru/?p=goircd.git;a=blobdiff_plain;f=goircd.go;h=95b463aef0c00fb0ee439cc1cfbc6e46adbae5b3;hp=a0633ad9065aa1a3f310734d07ae7693f458488b;hb=171c6d6df3afbd6d0895528b2a8a38cb3d25d5f0;hpb=b35f6e7b3c510bea24c0927073720a459055816e diff --git a/goircd.go b/goircd.go index a0633ad..95b463a 100644 --- a/goircd.go +++ b/goircd.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 ( @@ -23,12 +24,9 @@ import ( "io/ioutil" "log" "net" - "os" - "os/signal" "path" "path/filepath" "strings" - "syscall" ) var ( @@ -41,8 +39,7 @@ var ( passwords = flag.String("passwords", "", "Optional path to passwords file") tlsBind = flag.String("tlsbind", "", "TLS address to bind to") - tlsKey = flag.String("tlskey", "", "TLS keyfile") - tlsCert = flag.String("tlscert", "", "TLS certificate") + tlsPEM = flag.String("tlspem", "", "Path to TLS certificat+key PEM file") verbose = flag.Bool("v", false, "Enable verbose logging.") ) @@ -54,7 +51,7 @@ func listenerLoop(sock net.Listener, events chan<- ClientEvent) { log.Println("Error during accepting connection", err) continue } - client := NewClient(*hostname, conn) + client := NewClient(hostname, conn) go client.Processor(events) } } @@ -73,16 +70,15 @@ func Run() { } else { if !path.IsAbs(*logdir) { log.Fatalln("Need absolute path for logdir") - return } go Logger(*logdir, logSink) log.Println(*logdir, "logger initialized") } stateSink := make(chan StateEvent) - daemon := NewDaemon(version, *hostname, *motd, logSink, stateSink) + daemon := NewDaemon(version, hostname, motd, passwords, logSink, stateSink) daemon.Verbose = *verbose - log.Println("goircd "+daemon.version+" is starting") + log.Println("goircd " + daemon.version + " is starting") if *statedir == "" { // Dummy statekeeper go func() { @@ -116,19 +112,6 @@ func Run() { log.Println(*statedir, "statekeeper initialized") } - if *passwords != "" { - daemon.PasswordsRefresh() - hups := make(chan os.Signal) - signal.Notify(hups, syscall.SIGHUP) - go func() { - for { - <-hups - daemon.PasswordsRefresh() - } - }() - } - - if *bind != "" { listener, err := net.Listen("tcp", *bind) if err != nil { @@ -138,9 +121,9 @@ func Run() { go listenerLoop(listener, events) } if *tlsBind != "" { - cert, err := tls.LoadX509KeyPair(*tlsCert, *tlsKey) + cert, err := tls.LoadX509KeyPair(*tlsPEM, *tlsPEM) if err != nil { - log.Fatalf("Could not load TLS keys from %s and %s: %s", *tlsCert, *tlsKey, err) + log.Fatalf("Could not load TLS keys from %s: %s", *tlsPEM, err) } config := tls.Config{Certificates: []tls.Certificate{cert}} listenerTLS, err := tls.Listen("tcp", *tlsBind, &config)