# # ChangeLog for / in code # # Generated by Trac 1.6 # Jun 8, 2025, 10:29:13 AM Thu, 03 Mar 2022 07:33:10 GMT contact [788] * trunk/downstream.go (modified) downstream: panic when registering twice This would be a soju bug. Fri, 25 Feb 2022 20:05:10 GMT contact [787] * trunk/msgstore_fs.go (modified) * trunk/user.go (modified) msgstore_fs: fix direct message targets When fetching messages via ... Fri, 25 Feb 2022 10:32:09 GMT contact [786] * trunk/irc.go (modified) irc: simplify isHighlight Fri, 25 Feb 2022 10:31:41 GMT contact [785] * trunk/irc_test.go (added) irc: add isHighlight tests Wed, 16 Feb 2022 13:45:09 GMT contact [784] * trunk/bridge.go (modified) * trunk/db_sqlite.go (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/msgstore_fs.go (modified) * trunk/upstream.go (modified) Introduce formatServerTime It's too easy to forget to convert to UTC. Sat, 12 Feb 2022 18:07:30 GMT contact [783] * trunk/downstream.go (modified) Ignore READ commands for service Fri, 11 Feb 2022 18:49:21 GMT contact [782] * trunk/doc/ext/read.md (added) * trunk/doc/read.md (deleted) doc: move read spec to ext/ Fri, 11 Feb 2022 18:41:46 GMT delthas [781] * trunk/bridge.go (modified) * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_sqlite.go (modified) * trunk/doc/read.md (added) * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for the wip soju.im/read capability and READ command ... Wed, 09 Feb 2022 15:58:54 GMT delthas [780] * trunk/downstream.go (modified) Fix echo-message for TAGMSG A previous fix (d4b7bb02da1c) only ... Wed, 09 Feb 2022 14:20:32 GMT contact [779] * trunk/upstream.go (modified) Fix flags variable name in RPL_WHOREPLY handler This param doesn't ... Wed, 09 Feb 2022 14:16:54 GMT contact [778] * trunk/irc.go (modified) Refactor generateWHOXReply Isolate the field letter -> value logic ... Tue, 08 Feb 2022 15:38:34 GMT contact [777] * trunk/upstream.go (modified) * trunk/user.go (modified) Add context to upstreamConn.register Tue, 08 Feb 2022 15:37:31 GMT contact [776] * trunk/upstream.go (modified) * trunk/user.go (modified) Add context to upstreamConn.runUntilRegistered Tue, 08 Feb 2022 15:10:19 GMT contact [775] * trunk/Makefile (modified) * trunk/README.md (modified) makefile: switch to BSD/GNU make Let's stop using POSIX make, it's ... Tue, 08 Feb 2022 14:38:41 GMT contact [774] * trunk/db_postgres.go (modified) db_postgres: use enum for sasl_mechanism Ensures only supported ... Mon, 07 Feb 2022 20:39:39 GMT contact [773] * trunk/user.go (modified) Forbid empty and flag-looking network names Mon, 07 Feb 2022 20:33:16 GMT contact [772] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) service: make name arg optional for network commands Makes commands ... Fri, 04 Feb 2022 15:47:34 GMT contact [771] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) service: switch to -network flag for certfp and sasl commands ... Fri, 04 Feb 2022 14:41:40 GMT contact [770] * trunk/service.go (modified) Fix capitalization of handleServiceSASLStatus Fri, 04 Feb 2022 14:03:13 GMT contact [769] * trunk/user.go (modified) Ensure consistent network ordering Right now there is no consistent ... Fri, 04 Feb 2022 13:01:27 GMT contact [768] * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Drop user.forEachNetwork It's a trivial for loop. Wed, 19 Jan 2022 21:38:13 GMT contact [767] * trunk/cmd/soju/main.go (modified) Fix incorrect listen addr in error message The various server ... Wed, 19 Jan 2022 21:35:46 GMT contact [766] * trunk/ident.go (modified) * trunk/server.go (modified) Retry on temporary net.Listener failure Instead of stopping to ... Thu, 13 Jan 2022 15:06:54 GMT theo [765] * trunk/contrib/clients.md (modified) contrib/clients: Add information about emacs irc clients Mon, 10 Jan 2022 09:37:55 GMT contact [764] * trunk/bridge.go (modified) Don't send RPL_NOTOPIC on JOIN As per ... Mon, 03 Jan 2022 20:01:44 GMT chris [763] * trunk/go.mod (modified) bump required go version to 1.15 requires functions added to the ... Fri, 10 Dec 2021 11:28:16 GMT contact [762] * trunk/upstream.go (modified) Add context to upstreamConn.handleCapAck Fri, 10 Dec 2021 09:46:41 GMT contact [761] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Handle upstream multi-line SASL References: ... Thu, 09 Dec 2021 22:21:08 GMT contact [760] * trunk/downstream.go (modified) Add support for downstream multi-line AUTHENTICATE commands Useful ... Thu, 09 Dec 2021 11:12:20 GMT contact [759] * trunk/upstream.go (modified) Block RPL_{CREATIONTIME,TOPICWHOTIME} for detached channels Closes: ... Wed, 08 Dec 2021 17:23:46 GMT contact [758] * trunk/downstream.go (modified) Don't forward duplicate JOIN commands Closes: ... Wed, 08 Dec 2021 17:03:40 GMT contact [757] * trunk/conn.go (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Add context to {conn,upstreamConn}.SendMessage This avoids blocking ... Wed, 08 Dec 2021 14:00:02 GMT contact [756] * trunk/server.go (modified) server: cleanup user in defer If a user goroutine panics, this ... Wed, 08 Dec 2021 13:55:31 GMT contact [755] * trunk/service.go (modified) service: send summary when executing "server notice" Sometimes this ... Tue, 07 Dec 2021 08:42:32 GMT contact [754] * trunk/downstream.go (modified) Use dc.nick instead of "*" for RPL_* messages Makes it clearer what ... Tue, 07 Dec 2021 08:40:02 GMT contact [753] * trunk/downstream.go (modified) Improve error message when downstream doesn't authenticate Mon, 06 Dec 2021 21:33:50 GMT contact [752] * trunk/upstream.go (modified) * trunk/user.go (modified) Use more descriptive errors when aborting pending commands Mon, 06 Dec 2021 18:23:28 GMT contact [751] * trunk/downstream.go (modified) Disallow ',' in nicknames It breaks lists as in `PRIVMSG a,b,c :foo`. Mon, 06 Dec 2021 17:56:00 GMT contact [750] * trunk/downstream.go (modified) Add username to downstreamConn log messages Mon, 06 Dec 2021 17:46:10 GMT contact [749] * trunk/upstream.go (modified) Improve msgStore.Append log message wording Mon, 06 Dec 2021 17:40:37 GMT contact [748] * trunk/conn.go (modified) Downgrade conn log messages to debug Mon, 06 Dec 2021 17:35:49 GMT contact [747] * trunk/cmd/soju/main.go (modified) * trunk/conn.go (modified) * trunk/server.go (modified) Add Logger.Debugf Makes it easy to print debugging messages which ... Mon, 06 Dec 2021 17:27:36 GMT contact [746] * trunk/server.go (modified) Remove Logger.Print Callers can just use Logger.Printf instead. Mon, 06 Dec 2021 17:08:53 GMT contact [745] * trunk/upstream.go (modified) Stop incrementing hopcount in RPL_WHOREPLY It's extra code for ... Mon, 06 Dec 2021 16:58:54 GMT contact [744] * trunk/upstream.go (modified) Read nickname from RPL_WELCOME References: ... Sat, 04 Dec 2021 19:07:23 GMT contact [743] * trunk/upstream.go (modified) Fallback to alt nick If the nickname we want is taken, fallback to ... Sat, 04 Dec 2021 18:29:39 GMT contact [742] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Avoid forwarding MONITOR requests if upstream doesn't support it ... Thu, 02 Dec 2021 22:52:29 GMT contact [741] * trunk/conn.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) Use golang.org/x/time/rate Instead of hand-rolling our own ... Thu, 02 Dec 2021 22:32:12 GMT contact [740] * trunk/user.go (modified) Add context to network.storeClientDeliveryReceipts Thu, 02 Dec 2021 22:27:12 GMT contact [739] * trunk/upstream.go (modified) * trunk/user.go (modified) Add context to upstreamConn.handleMessage Thu, 02 Dec 2021 18:29:44 GMT contact [738] * trunk/upstream.go (modified) * trunk/user.go (modified) Cancel pending commands on downstream disconnect If a client queues ... Thu, 02 Dec 2021 16:58:56 GMT contact [737] * trunk/upstream.go (modified) Mark ACCOUNT_REQUIRED error as permanent connection failure There's ... Thu, 02 Dec 2021 16:33:11 GMT contact [736] * trunk/upstream.go (modified) * trunk/user.go (modified) Don't retry connecting on permanent failure Closes: ... Thu, 02 Dec 2021 11:14:35 GMT contact [735] * trunk/rate.go (added) * trunk/server.go (modified) * trunk/user.go (modified) Add exponential backoff when re-connecting to upstream The first ... Thu, 02 Dec 2021 10:15:51 GMT contact [734] * trunk/server.go (modified) * trunk/user.go (modified) Add soju_upstream_connect_errors_total metric Thu, 02 Dec 2021 10:03:56 GMT contact [733] * trunk/user.go (modified) Fix upstream gauge metric It wasn't decremented on error. While at ... Thu, 02 Dec 2021 09:53:43 GMT contact [732] * trunk/upstream.go (modified) * trunk/user.go (modified) Add context to connectToUpstream Wed, 01 Dec 2021 14:57:54 GMT contact [731] * trunk/user.go (modified) Validate address in user.checkNetwork Wed, 01 Dec 2021 10:03:27 GMT contact [730] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) Add "sasl status" command Tue, 30 Nov 2021 11:02:54 GMT contact [729] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for draft/account-registration proxying This adds ... Tue, 30 Nov 2021 08:26:07 GMT contact [728] * trunk/doc/soju.1.scd (modified) doc/soju.1: add `network create` example Mon, 29 Nov 2021 15:41:52 GMT contact [727] * trunk/downstream.go (modified) downstream: improve unmarshalEntityNetwork error message Closes: ... Mon, 29 Nov 2021 12:14:16 GMT contact [726] * trunk/downstream.go (modified) Return more descriptive auth failure errors Sun, 21 Nov 2021 15:28:38 GMT contact [725] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Remove sasl cap after registration if network doesn't support it ... Sun, 21 Nov 2021 15:10:54 GMT contact [724] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for post-connection-registration upstream SASL auth ... Sun, 21 Nov 2021 10:00:57 GMT contact [723] * trunk/downstream.go (modified) Send RPL_LOGGEDIN with bouncer account in multi-upstream mode Fri, 19 Nov 2021 18:21:48 GMT contact [722] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Use RPL_LOGGEDIN/OUT to mirror upstream status This will allow ... Fri, 19 Nov 2021 17:55:07 GMT contact [721] * trunk/downstream.go (modified) Abort SASL if in-progress while completing registration Implements ... Fri, 19 Nov 2021 10:55:22 GMT contact [720] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add missing account-notify to permanentUpstreamCaps Thu, 18 Nov 2021 20:06:26 GMT tomvig38 [719] * trunk/downstream.go (modified) Add CHATHISTORY LATEST support This patch adds a bit more ... Thu, 18 Nov 2021 20:05:58 GMT contact [718] * trunk/contrib/clients.md (modified) contrib/clients: WeeChat 3.3 enables all IRCv3 caps by default Thu, 18 Nov 2021 08:44:33 GMT contact [717] * trunk/downstream.go (modified) Disallow empty string for nick Thu, 18 Nov 2021 08:40:23 GMT hubert [716] * trunk/downstream.go (modified) Allow AUTHENTICATE before NICK Now that dc.nick is not blank during ... Wed, 17 Nov 2021 17:04:14 GMT contact [715] * trunk/doc/per-user-ip.md (added) doc/per-user-ip: new documentation article Wed, 17 Nov 2021 15:57:41 GMT contact [714] * trunk/go.mod (modified) * trunk/go.sum (modified) Upgrade dependencies Wed, 17 Nov 2021 15:18:52 GMT contact [713] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) Add pprof HTTP server This enables production debugging of the ... Wed, 17 Nov 2021 14:58:19 GMT contact [712] * trunk/cmd/soju/main.go (modified) * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_sqlite.go (modified) Add Prometheus instrumentation for the database Wed, 17 Nov 2021 14:58:19 GMT contact [711] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add message counter metrics Wed, 17 Nov 2021 14:58:19 GMT contact [710] * trunk/server.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Add number of upstream connections to metrics Wed, 17 Nov 2021 14:58:19 GMT contact [709] * trunk/server.go (modified) Add int64 gauge abstraction We want to serve metrics via both ... Wed, 17 Nov 2021 14:58:19 GMT contact [708] * trunk/server.go (modified) Add basic active users and downstreams metrics Wed, 17 Nov 2021 14:58:18 GMT contact [707] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/server.go (modified) Add basic Prometheus metrics exporter This only exports the default ... Wed, 17 Nov 2021 14:27:34 GMT contact [706] * trunk/downstream.go (modified) Update downstream caps/nick/realname before sending MOTD The MOTD ... Wed, 17 Nov 2021 14:07:58 GMT contact [705] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add per-user IP addresses The new upstream-user-ip directive allows ... Wed, 17 Nov 2021 13:54:03 GMT contact [704] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add timeout for downstream connection registration Wed, 17 Nov 2021 12:13:55 GMT contact [703] * trunk/conn.go (modified) * trunk/downstream.go (modified) Introduce conn.NewContext This function wraps a parent context, and ... Wed, 17 Nov 2021 11:38:08 GMT contact [702] * trunk/downstream.go (modified) Lift up context to downstreamConn.handleMessage Wed, 17 Nov 2021 11:33:30 GMT contact [701] * trunk/downstream.go (modified) * trunk/user.go (modified) Add context arg to downstreamConn.welcome() Wed, 17 Nov 2021 11:29:23 GMT contact [700] * trunk/downstream.go (modified) Add context to downstreamConn.handleMessageUnregistered Wed, 17 Nov 2021 11:12:40 GMT contact [699] * trunk/downstream.go (modified) Lower sanityCheckServer timeout to 15s Should still be more than ... Wed, 17 Nov 2021 11:10:56 GMT contact [698] * trunk/downstream.go (modified) Add context arg to sanityCheckServer As a bonus, the timeout now ... Wed, 17 Nov 2021 11:04:24 GMT contact [697] * trunk/server_test.go (modified) Use background context in tests Wed, 17 Nov 2021 10:56:16 GMT contact [696] * trunk/contrib/znc-import.go (modified) contrib/znc-import: use background context Wed, 17 Nov 2021 10:54:28 GMT contact [695] * trunk/cmd/sojuctl/main.go (modified) sojuctl: use background context Wed, 17 Nov 2021 10:41:11 GMT contact [694] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) Add config option to globally disable multi-upstream mode Closes: ... Wed, 17 Nov 2021 10:22:26 GMT contact [693] * trunk/downstream.go (modified) * trunk/user.go (modified) Set isMultiUpstream flag in downstreamConn.welcome() This will make ... Wed, 17 Nov 2021 10:17:09 GMT contact [692] * trunk/downstream.go (modified) * trunk/user.go (modified) Add downstreamConn.isMultiUpstream Mon, 15 Nov 2021 23:38:04 GMT contact [691] * trunk/cmd/soju/main.go (modified) * trunk/conn.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Allow most config options to be reloaded Closes: ... Mon, 15 Nov 2021 22:53:25 GMT contact [690] * trunk/downstream.go (modified) Don't send user in prefix for echo messages This is not very useful ... Mon, 15 Nov 2021 20:40:17 GMT contact [689] * trunk/server.go (modified) Add panic handlers for user and downstream goroutines This only ...