server: add metric for goroutine panics
This is useful to setup an alert when a panic occurs.
downstream: improve SASL error logging
msgstore/znclog: fix error message
err may be nil.
Fixes: 2b2a2fd4798d ("msgstore/znclog: fix panic on malformed input line")
msgstore/znclog: fix panic on malformed input line
If the line is "[01:02:03]" without a trailing space, we trip on
a "slice bounds out of range" panic.
Closes: https://todo.sr.ht/~emersion/soju/214
downstream: fix nick in auth error message
We were always printing "*" here.
Rename Config.Log{Driver,Path} to MsgStore
service: reject params for commands that don't take any
We were already rejecting extraneous params for commands that take
one or more.
Use database.GetNick in network.isHighlight
The network nickname can be empty, and defaults to the global nick
setting.
Panic if isHighlight is called with empty nick
Let's make sure callers never do this. We'd go into an infinite
loop previously.
database/sqlite: fix missing argument in DeleteUser
doc/packaging: add section about binding to privileged ports
contrib/systemd: add AmbientCapabilities=CAP_NET_BIND_SERVICE
soju needs to bind to port 113 for identd.
downstream: pass context to SendMessage
Just like upstream does.
upstream: introduce upstreamConn.forwardMessage
downstream: error out if SASL PLAIN identity is specified
downstream: rename downstreamRegistration.password to pass
This is more descriptive.
Stop setting *user in downstreamConn.register
Set it in downstreamConn.welcome instead. Makes it clearer that it
must not be accessed before welcome is called (because it can only
be accessed from the user goroutine).