soju v0.7.0 This is a smaller release, it contains small new features and bug fixes. - The new draft/pre-away extension allows short-lived and background clients (e.g. chathistorysync and Goguma's background worker) to not toggle the auto-away status. - The new draft/no-implicit-names extension allows clients with low bandwidth to connect faster (e.g. Goguma with 3G). - The contrib/migrate-db script is now a lot faster. - SASL ANONYMOUS is now supported to log out from an upstream network. - STATUSMSG messages are now properly routed. Full commit history below. Antonio Mika (1): Update user.go to not broadcast a push notification when generated from us Calvin Lee (4): fix empty CHATHISTORY TARGETS database: batch msg inserts contrib/migrate-db: use explicit src/dest network Fix saving `+draft/react` is msgstores Eric Mertens (7): Fix capability associated with account message-tag Don't drop RPL_LISTSTART - passthrough to downstream ERR_NOSUCHSERVER unqueues WHOIS Pass MODE and TOPIC through for unjoined channels Add support for STATUSMSG Forward complete MODE message to upstream when changing modes Only log unhandled messages in debug mode Simon Ser (62): downstream: set CLIENTTAGDENY=* when upstream is missing message-tags upstream: add forwardMsgByID upstream: forward ERR_NOSUCHNICK upstream: don't print "unhandled message" for registration errors downstream: return channel in cached WHO reply gitignore: add doc/sojuctl.1 user: fix dup upstream connections due to race user: unconditonally stop network in updateNetwork() downstream: return FAIL on unknown BOUNCER command before registration downstream: take irc.Message in handleCap Improve Server.Handle readability downstream: inline authenticate function user: fix upstream connections closed after 1 minute downstream: fix connection registration Stop setting *user in downstreamConn.register downstream: rename downstreamRegistration.password to pass downstream: add support for ANONYMOUS SASL auth downstream: error out if SASL PLAIN identity is specified upstream: introduce upstreamConn.forwardMessage downstream: pass context to SendMessage contrib/systemd: add AmbientCapabilities=CAP_NET_BIND_SERVICE doc/packaging: add section about binding to privileged ports database/sqlite: fix missing argument in DeleteUser Panic if isHighlight is called with empty nick Use database.GetNick in network.isHighlight service: reject params for commands that don't take any Rename Config.Log{Driver,Path} to MsgStore Add CHATHISTORY test downstream: fix nick in auth error message msgstore/znclog: fix panic on malformed input line msgstore/znclog: fix error message downstream: improve SASL error logging Upgrade dependencies server: add metric for goroutine panics Introduce soju.im/pre-away Replace soju.im/pre-away with draft/pre-away service: add a way to reset a network certfp Upgrade dependencies doc: expand on message store specificities doc: clarify that client suffixes are not required for chathistory doc: remove mention of dropped multi-upstream mode contrib/clients: drop mention of single-upstream mode Use * instead of nick in some numeric replies server: drop TODO about configurable vars Use downstreamConn.upstreamForCommand when handling user MODE Remove remnant comments about multi-upstream mode Don't send bouncer-networks updates for removed networks build: cleanup all man pages build: improve readability of Go -ldflags service: convert network certfp to lower-case doc: add openssl command to fetch server fingerprint go fmt database: add NewNetwork database: fix default value for Network.AutoAway database: add NewUser cmd/sojudb: use User.SetPassword contrib/znc-import: leave password empty by default database: drop unnecessary comment Upgrade dependencies upstream: use unspecified AWAY reason if possible conn: drop ErrClosed workaround for WebSocket Add support for draft/no-implicit-names delthas (1): Fix SEARCH queries with special characters on SQLite sentriz (1): database: use postgresQueryTimeout for PostgresDB StoreMessages