# # ChangeLog for trunk/upstream.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 6:53:11 PM 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. 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 14:20:32 GMT contact [779] * trunk/upstream.go (modified) Fix flags variable name in RPL_WHOREPLY handler This param doesn't ... 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 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 11:12:20 GMT contact [759] * trunk/upstream.go (modified) Block RPL_{CREATIONTIME,TOPICWHOTIME} for detached channels 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 ... 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 17:46:10 GMT contact [749] * trunk/upstream.go (modified) Improve msgStore.Append log message wording 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: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 09:53:43 GMT contact [732] * trunk/upstream.go (modified) * trunk/user.go (modified) Add context to connectToUpstream 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 ... 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 ... 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 10:55:22 GMT contact [720] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add missing account-notify to permanentUpstreamCaps 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: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 ... Mon, 15 Nov 2021 13:38:19 GMT delthas [685] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for draft/extended-monitor References: ... Mon, 15 Nov 2021 13:34:04 GMT contact [684] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for MONITOR Add support for MONITOR in single-upstream ... Tue, 09 Nov 2021 21:09:17 GMT contact [682] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add a queue for WHO commands This has the following upsides: - We ... Tue, 09 Nov 2021 20:32:26 GMT contact [681] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Remove support for mixed multi-upstream LIST Multi-upstream ... Sun, 07 Nov 2021 17:33:59 GMT contact [674] * trunk/db.go (modified) * trunk/upstream.go (modified) Fix upstream USER command when both username and nick are empty Wed, 03 Nov 2021 15:37:01 GMT contact [666] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) * trunk/msgstore_memory.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) msgstore: take Network as arg instead of network The message stores ... Tue, 02 Nov 2021 22:33:17 GMT contact [664] * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_sqlite.go (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Make Network.Nick optional Make Network.Nick optional, default to ... Tue, 02 Nov 2021 17:25:43 GMT contact [660] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add support for WHOX This adds support for WHOX, without bothering ... Fri, 29 Oct 2021 14:03:04 GMT contact [655] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Get rid of io.EOF errors in logs Closes: ... Mon, 18 Oct 2021 17:15:15 GMT contact [652] * trunk/cmd/sojuctl/main.go (modified) * trunk/contrib/znc-import.go (modified) * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_sqlite.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/server_test.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add context args to Database interface This is a mecanical change, ... Sun, 17 Oct 2021 19:54:18 GMT contact [649] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Unify away-notify and account-notify handling Sun, 17 Oct 2021 19:54:18 GMT contact [648] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for account-notify Fri, 25 Jun 2021 18:33:13 GMT contact [568] * trunk/db.go (modified) * trunk/db_sqlite.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add per-user realname setting This allows users to set a default ... Wed, 23 Jun 2021 17:23:09 GMT contact [563] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Allow admins to broadcast message to all bouncer users Typically ... Wed, 23 Jun 2021 09:45:14 GMT contact [561] * trunk/upstream.go (modified) Forward LUSERS and STATS messages after initial registration Mon, 14 Jun 2021 19:44:38 GMT contact [559] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for account-tag Thu, 10 Jun 2021 09:17:00 GMT greg [553] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Forward user mode changes in single-upstream mode References: ... Wed, 09 Jun 2021 19:29:36 GMT greg [552] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Forward MOTD messages downstream The first MOTD upon connection is ... Tue, 25 May 2021 18:24:45 GMT contact [540] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for IRCv3 setname References: ... Sun, 23 May 2021 10:32:27 GMT hubert [526] * trunk/upstream.go (modified) Don't forward label tags We don't want to have the label tag when ... Tue, 20 Apr 2021 14:17:28 GMT hubert [505] * trunk/upstream.go (modified) Drop TAGMSG in detached channels - Do not relay TAGMSG as notices, ... Tue, 13 Apr 2021 18:16:37 GMT contact [502] * trunk/upstream.go (modified) Add user prefix to upstream logger Tue, 13 Apr 2021 17:11:05 GMT contact [499] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Relay detached channel backlog as BouncerServ NOTICE if necessary ... Tue, 13 Apr 2021 16:54:58 GMT contact [498] * trunk/irc.go (modified) * trunk/upstream.go (modified) Move isHighlight to irc.go Wed, 31 Mar 2021 16:04:13 GMT contact [489] * trunk/db.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Save delivery receipts in DB This avoids loosing history on restart ... Tue, 30 Mar 2021 10:44:56 GMT contact [487] * trunk/upstream.go (modified) * trunk/user.go (modified) Rename user.clients to clientNames This doesn't contain anything ... Tue, 30 Mar 2021 10:28:45 GMT contact [486] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Make NickServ detection casemapping-aware Mon, 29 Mar 2021 15:49:50 GMT contact [485] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce deliveredStore This hides the double-map complexity ... Mon, 29 Mar 2021 14:58:56 GMT contact [483] * trunk/upstream.go (modified) * trunk/user.go (modified) Move network.clients to user No need to have this list per-network. Mon, 29 Mar 2021 14:55:57 GMT contact [482] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Simplify network.offlineClients Replace it with a list of all ... Fri, 26 Mar 2021 10:21:14 GMT contact [480] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce deliveredClientMap Adds more semantics to ... Wed, 24 Mar 2021 17:15:52 GMT hubert [478] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Implement casemapping TL;DR: supports for casemapping, now logs are ... Tue, 16 Mar 2021 17:25:21 GMT contact [469] * trunk/upstream.go (modified) Don't update downstream caps in upstream RPL_WELCOME handler Prior ... Tue, 16 Mar 2021 08:54:29 GMT contact [468] * trunk/upstream.go (modified) Don't store history for NickServ Closes: ... Mon, 15 Mar 2021 22:41:37 GMT contact [463] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Passthrough some ISUPPORT tokens Mon, 15 Mar 2021 22:11:42 GMT contact [462] * trunk/upstream.go (modified) Properly handle all ISUPPORT negations Mon, 15 Mar 2021 22:08:19 GMT contact [461] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Use upstream ISUPPORT map for NETWORK Mon, 15 Mar 2021 22:06:36 GMT contact [460] * trunk/upstream.go (modified) Maintain state for upstream ISUPPORT Mon, 15 Mar 2021 21:54:32 GMT contact [459] * trunk/upstream.go (modified) Simplify if block in ISUPPORT handler Mon, 15 Mar 2021 21:53:46 GMT contact [458] * trunk/upstream.go (modified) Extract ISUPPORT CHANMODES/PREFIX to separate functions Tue, 09 Mar 2021 17:55:34 GMT contact [457] * trunk/db.go (modified) * trunk/upstream.go (modified) Add Network.{URL,GetUsername,GetRealname} Just a bunch of helpers ... Wed, 24 Feb 2021 18:41:12 GMT contact [455] * trunk/cmd/soju/main.go (modified) * trunk/upstream.go (modified) Add irc to ALPN protocols The new ALPN token has been approved [1]. ... Thu, 18 Feb 2021 08:40:51 GMT hubert [454] * trunk/upstream.go (modified) if true return true else return false Trivial improvement Wed, 10 Feb 2021 10:31:34 GMT contact [451] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Rename network.history to network.delivered "History" is ... Sun, 31 Jan 2021 21:18:51 GMT hubert [448] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Request invite-notify to upstreams ... and do not forward INVITEs ... Fri, 22 Jan 2021 11:00:38 GMT contact [447] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Forward ISUPPORT NETWORK token Sun, 10 Jan 2021 21:48:08 GMT hubert [443] * trunk/upstream.go (modified) Don't forward batch tags We don't want to have the batch tag when ... Mon, 14 Dec 2020 19:54:02 GMT delthas [435] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add customizable auto-detaching, auto-reattaching, relaying. This ... Tue, 24 Nov 2020 13:13:24 GMT contact [428] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Implement delivery receipts via PING messages This patch implements ... Sun, 25 Oct 2020 16:47:38 GMT contact [423] * trunk/downstream.go (modified) * trunk/logger.go (deleted) * trunk/msgstore.go (added) * trunk/upstream.go (modified) * trunk/user.go (modified) Add message store abstraction Introduce a messageStore type, which ... Thu, 10 Sep 2020 22:10:58 GMT delthas [419] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for the extended-join capability This simple ... Fri, 28 Aug 2020 11:35:55 GMT contact [414] * trunk/upstream.go (modified) Don't update history when msgID is empty in appendLog Log files ... Thu, 20 Aug 2020 18:05:01 GMT contact [409] * trunk/downstream.go (modified) * trunk/ring.go (deleted) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Nuke in-memory ring buffer Instead, always read chat history from ... Thu, 20 Aug 2020 18:05:01 GMT contact [407] * trunk/logger.go (modified) * trunk/upstream.go (modified) Introduce internal message IDs For now, these can be used as ... Thu, 20 Aug 2020 15:38:57 GMT contact [406] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Replace networkHistory.offlineClients with clients Keep the ring ... Thu, 20 Aug 2020 09:12:54 GMT hubert [405] * trunk/bridge.go (modified) * trunk/upstream.go (modified) Forward RPL_TOPICWHOTIME to downstreams Thu, 20 Aug 2020 07:15:47 GMT hubert [403] * trunk/upstream.go (modified) Fix marshalling of channel name in RPL_CREATIONTIME Thu, 20 Aug 2020 07:13:56 GMT contact [402] * trunk/conn.go (modified) * trunk/upstream.go (modified) go fmt Wed, 19 Aug 2020 21:35:12 GMT contact [399] * trunk/upstream.go (modified) * trunk/user.go (modified) Improve registration error messages - Don't print the raw IRC ... Wed, 19 Aug 2020 17:42:33 GMT contact [398] * trunk/conn.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Implement rate limiting for upstream messages Allow up to 10 ... Wed, 19 Aug 2020 09:50:19 GMT contact [396] * trunk/upstream.go (modified) Strip message tags in error message The time tag was causing the ... Thu, 13 Aug 2020 13:31:07 GMT contact [390] * trunk/upstream.go (modified) Handle upstream ERROR messages Thu, 13 Aug 2020 13:31:03 GMT contact [389] * trunk/upstream.go (modified) Handle ERR_NOPERMFORHOST and ERR_YOUREBANNEDCREEP Tue, 11 Aug 2020 08:24:54 GMT contact [381] * trunk/upstream.go (modified) Don't perform TLS handshake in connectToUpstream This defers TLS ... Wed, 22 Jul 2020 13:44:19 GMT contact [369] * trunk/doc/soju.1.scd (modified) * trunk/upstream.go (modified) Change unix:// to irc+unix:// When Unix socket support will be ... Wed, 08 Jul 2020 16:21:52 GMT contact [355] * trunk/upstream.go (modified) Broadcast unhandled messages to downstream connections In case ... Mon, 06 Jul 2020 15:31:11 GMT contact [353] * trunk/doc/soju.1.scd (modified) * trunk/upstream.go (modified) Add support for upstream Unix socket connections References: ... Mon, 06 Jul 2020 15:18:13 GMT contact [352] * trunk/upstream.go (modified) Parse upstream URLs with net/url This allows us to ignore the path ... Mon, 06 Jul 2020 14:04:56 GMT contact [351] * trunk/upstream.go (modified) Check upstream address with net.SplitHostPort Looking for a colon ... Mon, 06 Jul 2020 09:06:20 GMT contact [350] * trunk/irc.go (modified) * trunk/upstream.go (modified) Sort and split JOIN messages Sort channels so that channels with a ... Mon, 29 Jun 2020 16:09:48 GMT contact [343] * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Reply to WHO BouncerServ Closes: https://todo.sr.ht/~emersion/soju/75 Mon, 29 Jun 2020 15:52:49 GMT contact [342] * trunk/upstream.go (modified) Handle registration failures References: ... Fri, 12 Jun 2020 12:43:45 GMT delthas [338] * trunk/upstream.go (modified) Fix sending messages from detached channels Currently, a downstream ...