|
@@ -81,7 +81,7 @@ type Server struct {
|
81
|
81
|
rehashMutex sync.Mutex // tier 4
|
82
|
82
|
rehashSignal chan os.Signal
|
83
|
83
|
pprofServer *http.Server
|
84
|
|
- signals chan os.Signal
|
|
84
|
+ exitSignals chan os.Signal
|
85
|
85
|
snomasks SnoManager
|
86
|
86
|
store *buntdb.DB
|
87
|
87
|
historyDB mysql.MySQL
|
|
@@ -100,7 +100,7 @@ func NewServer(config *Config, logger *logger.Manager) (*Server, error) {
|
100
|
100
|
listeners: make(map[string]IRCListener),
|
101
|
101
|
logger: logger,
|
102
|
102
|
rehashSignal: make(chan os.Signal, 1),
|
103
|
|
- signals: make(chan os.Signal, len(ServerExitSignals)),
|
|
103
|
+ exitSignals: make(chan os.Signal, len(ServerExitSignals)),
|
104
|
104
|
defcon: 5,
|
105
|
105
|
}
|
106
|
106
|
|
|
@@ -115,7 +115,7 @@ func NewServer(config *Config, logger *logger.Manager) (*Server, error) {
|
115
|
115
|
}
|
116
|
116
|
|
117
|
117
|
// Attempt to clean up when receiving these signals.
|
118
|
|
- signal.Notify(server.signals, ServerExitSignals...)
|
|
118
|
+ signal.Notify(server.exitSignals, ServerExitSignals...)
|
119
|
119
|
signal.Notify(server.rehashSignal, syscall.SIGHUP)
|
120
|
120
|
|
121
|
121
|
time.AfterFunc(alwaysOnExpirationPollPeriod, server.handleAlwaysOnExpirations)
|
|
@@ -126,6 +126,7 @@ func NewServer(config *Config, logger *logger.Manager) (*Server, error) {
|
126
|
126
|
// Shutdown shuts down the server.
|
127
|
127
|
func (server *Server) Shutdown() {
|
128
|
128
|
sdnotify.Stopping()
|
|
129
|
+ server.logger.Info("server", "Stopping server")
|
129
|
130
|
|
130
|
131
|
//TODO(dan): Make sure we disallow new nicks
|
131
|
132
|
for _, client := range server.clients.AllClients() {
|
|
@@ -140,19 +141,17 @@ func (server *Server) Shutdown() {
|
140
|
141
|
}
|
141
|
142
|
|
142
|
143
|
server.historyDB.Close()
|
|
144
|
+ server.logger.Info("server", fmt.Sprintf("%s exiting", Ver))
|
143
|
145
|
}
|
144
|
146
|
|
145
|
147
|
// Run starts the server.
|
146
|
148
|
func (server *Server) Run() {
|
147
|
|
- // defer closing db/store
|
148
|
|
- defer server.store.Close()
|
|
149
|
+ defer server.Shutdown()
|
149
|
150
|
|
150
|
151
|
for {
|
151
|
152
|
select {
|
152
|
|
- case <-server.signals:
|
153
|
|
- server.Shutdown()
|
|
153
|
+ case <-server.exitSignals:
|
154
|
154
|
return
|
155
|
|
-
|
156
|
155
|
case <-server.rehashSignal:
|
157
|
156
|
server.logger.Info("server", "Rehashing due to SIGHUP")
|
158
|
157
|
go server.rehash()
|
|
@@ -714,14 +713,16 @@ func (server *Server) applyConfig(config *Config) (err error) {
|
714
|
713
|
server.logger.Info("server", "Proxied IPs will be accepted from", strings.Join(config.Server.ProxyAllowedFrom, ", "))
|
715
|
714
|
}
|
716
|
715
|
|
|
716
|
+ // we are now ready to receive connections:
|
717
|
717
|
err = server.setupListeners(config)
|
718
|
|
- // send other config warnings
|
719
|
|
- if config.Accounts.RequireSasl.Enabled && config.Accounts.Registration.Enabled {
|
720
|
|
- server.logger.Warning("server", "Warning: although require-sasl is enabled, users can still register accounts. If your server is not intended to be public, you must set accounts.registration.enabled to false.")
|
721
|
|
- }
|
722
|
718
|
|
723
|
|
- // we are now open for business
|
724
|
|
- sdnotify.Ready()
|
|
719
|
+ if err == nil {
|
|
720
|
+ // we are now open for business
|
|
721
|
+ if initial {
|
|
722
|
+ server.logger.Info("server", "Server running")
|
|
723
|
+ }
|
|
724
|
+ sdnotify.Ready()
|
|
725
|
+ }
|
725
|
726
|
|
726
|
727
|
if !initial {
|
727
|
728
|
// push new info to all of our clients
|
|
@@ -736,6 +737,11 @@ func (server *Server) applyConfig(config *Config) (err error) {
|
736
|
737
|
}
|
737
|
738
|
}
|
738
|
739
|
|
|
740
|
+ // send other config warnings
|
|
741
|
+ if config.Accounts.RequireSasl.Enabled && config.Accounts.Registration.Enabled {
|
|
742
|
+ server.logger.Warning("server", "Warning: although require-sasl is enabled, users can still register accounts. If your server is not intended to be public, you must set accounts.registration.enabled to false.")
|
|
743
|
+ }
|
|
744
|
+
|
739
|
745
|
return err
|
740
|
746
|
}
|
741
|
747
|
|