|
@@ -219,6 +219,7 @@ func NewServer(configFilename string, config *Config, logger *Logger) (*Server,
|
219
|
219
|
}
|
220
|
220
|
|
221
|
221
|
// open data store
|
|
222
|
+ server.logger.Log(LogDebug, "startup", "Opening datastore")
|
222
|
223
|
db, err := buntdb.Open(config.Datastore.Path)
|
223
|
224
|
if err != nil {
|
224
|
225
|
return nil, fmt.Errorf("Failed to open datastore: %s", err.Error())
|
|
@@ -241,10 +242,12 @@ func NewServer(configFilename string, config *Config, logger *Logger) (*Server,
|
241
|
242
|
}
|
242
|
243
|
|
243
|
244
|
// load *lines
|
|
245
|
+ server.logger.Log(LogDebug, "startup", "Loading D/Klines")
|
244
|
246
|
server.loadDLines()
|
245
|
247
|
server.loadKLines()
|
246
|
248
|
|
247
|
249
|
// load password manager
|
|
250
|
+ server.logger.Log(LogDebug, "startup", "Loading passwords")
|
248
|
251
|
err = server.store.View(func(tx *buntdb.Tx) error {
|
249
|
252
|
saltString, err := tx.Get(keySalt)
|
250
|
253
|
if err != nil {
|
|
@@ -264,6 +267,7 @@ func NewServer(configFilename string, config *Config, logger *Logger) (*Server,
|
264
|
267
|
return nil, fmt.Errorf("Could not load salt: %s", err.Error())
|
265
|
268
|
}
|
266
|
269
|
|
|
270
|
+ server.logger.Log(LogDebug, "startup", "Loading MOTD")
|
267
|
271
|
if config.Server.MOTD != "" {
|
268
|
272
|
file, err := os.Open(config.Server.MOTD)
|
269
|
273
|
if err == nil {
|
|
@@ -378,7 +382,7 @@ func (server *Server) Shutdown() {
|
378
|
382
|
server.clients.ByNickMutex.RUnlock()
|
379
|
383
|
|
380
|
384
|
if err := server.store.Close(); err != nil {
|
381
|
|
- server.logger.Log(LogError, "shutdown", "db", fmt.Sprintln("Server.Shutdown store.Close: error:", err))
|
|
385
|
+ server.logger.Log(LogError, "shutdown", fmt.Sprintln("Could not close datastore:", err))
|
382
|
386
|
}
|
383
|
387
|
}
|
384
|
388
|
|
|
@@ -395,10 +399,10 @@ func (server *Server) Run() {
|
395
|
399
|
done = true
|
396
|
400
|
|
397
|
401
|
case <-server.rehashSignal:
|
398
|
|
- // eventually we expect to use HUP to reload config
|
|
402
|
+ server.logger.Log(LogInfo, "rehash", "Rehashing due to SIGHUP")
|
399
|
403
|
err := server.rehash()
|
400
|
404
|
if err != nil {
|
401
|
|
- server.logger.Log(LogError, "rehash", "server", fmt.Sprintln("Failed to rehash:", err.Error()))
|
|
405
|
+ server.logger.Log(LogError, "rehash", fmt.Sprintln("Failed to rehash:", err.Error()))
|
402
|
406
|
}
|
403
|
407
|
|
404
|
408
|
case conn := <-server.newConns:
|
|
@@ -450,6 +454,8 @@ func (server *Server) Run() {
|
450
|
454
|
continue
|
451
|
455
|
}
|
452
|
456
|
|
|
457
|
+ server.logger.Log(LogDebug, "localconnect-ip", fmt.Sprintf("Client connecting from %v", ipaddr))
|
|
458
|
+
|
453
|
459
|
go NewClient(server, conn.Conn, conn.IsTLS)
|
454
|
460
|
continue
|
455
|
461
|
}
|
|
@@ -497,7 +503,7 @@ func (server *Server) createListener(addr string, tlsMap map[string]*tls.Config)
|
497
|
503
|
server.listeners[addr] = li
|
498
|
504
|
|
499
|
505
|
// start listening
|
500
|
|
- server.logger.Log(LogInfo, "listeners", "listener", fmt.Sprintf("listening on %s using %s.", addr, tlsString))
|
|
506
|
+ server.logger.Log(LogInfo, "listeners", fmt.Sprintf("listening on %s using %s.", addr, tlsString))
|
501
|
507
|
|
502
|
508
|
// setup accept goroutine
|
503
|
509
|
go func() {
|
|
@@ -549,7 +555,7 @@ func (server *Server) createListener(addr string, tlsMap map[string]*tls.Config)
|
549
|
555
|
server.listenerUpdateMutex.Unlock()
|
550
|
556
|
|
551
|
557
|
// print notice
|
552
|
|
- server.logger.Log(LogInfo, "listeners", "listener", fmt.Sprintf("updated listener %s using %s.", addr, tlsString))
|
|
558
|
+ server.logger.Log(LogInfo, "listeners", fmt.Sprintf("updated listener %s using %s.", addr, tlsString))
|
553
|
559
|
}
|
554
|
560
|
default:
|
555
|
561
|
// no events waiting for us, fall-through and continue
|
|
@@ -596,7 +602,7 @@ func (server *Server) wslisten(addr string, tlsMap map[string]*TLSListenConfig)
|
596
|
602
|
if listenTLS {
|
597
|
603
|
tlsString = "TLS"
|
598
|
604
|
}
|
599
|
|
- server.logger.Log(LogInfo, "listeners", "listener", fmt.Sprintf("websocket listening on %s using %s.", addr, tlsString))
|
|
605
|
+ server.logger.Log(LogInfo, "listeners", fmt.Sprintf("websocket listening on %s using %s.", addr, tlsString))
|
600
|
606
|
|
601
|
607
|
if listenTLS {
|
602
|
608
|
err = http.ListenAndServeTLS(addr, config.Cert, config.Key, nil)
|
|
@@ -604,7 +610,7 @@ func (server *Server) wslisten(addr string, tlsMap map[string]*TLSListenConfig)
|
604
|
610
|
err = http.ListenAndServe(addr, nil)
|
605
|
611
|
}
|
606
|
612
|
if err != nil {
|
607
|
|
- server.logger.Log(LogError, "listeners", "listener", fmt.Sprintf("listenAndServe error [%s]: %s", tlsString, err))
|
|
613
|
+ server.logger.Log(LogError, "listeners", fmt.Sprintf("listenAndServe error [%s]: %s", tlsString, err))
|
608
|
614
|
}
|
609
|
615
|
}()
|
610
|
616
|
}
|
|
@@ -651,6 +657,8 @@ func (server *Server) tryRegister(c *Client) {
|
651
|
657
|
c.RplISupport()
|
652
|
658
|
server.MOTD(c)
|
653
|
659
|
c.Send(nil, c.nickMaskString, RPL_UMODEIS, c.nick, c.ModeString())
|
|
660
|
+
|
|
661
|
+ server.logger.Log(LogDebug, "localconnect", fmt.Sprintf("Client registered [%s]", c.nick))
|
654
|
662
|
}
|
655
|
663
|
|
656
|
664
|
// MOTD serves the Message of the Day.
|
|
@@ -1399,11 +1407,13 @@ func (server *Server) rehash() error {
|
1399
|
1407
|
|
1400
|
1408
|
// REHASH
|
1401
|
1409
|
func rehashHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
|
1410
|
+ server.logger.Log(LogInfo, "rehash", fmt.Sprintf("REHASH command used by %s", client.nick))
|
1402
|
1411
|
err := server.rehash()
|
1403
|
1412
|
|
1404
|
1413
|
if err == nil {
|
1405
|
1414
|
client.Send(nil, server.name, RPL_REHASHING, client.nick, "ircd.yaml", "Rehashing")
|
1406
|
1415
|
} else {
|
|
1416
|
+ server.logger.Log(LogError, "rehash", fmt.Sprintln("Failed to rehash:", err.Error()))
|
1407
|
1417
|
client.Send(nil, server.name, ERR_UNKNOWNERROR, client.nick, "REHASH", err.Error())
|
1408
|
1418
|
}
|
1409
|
1419
|
return false
|