# # ChangeLog for trunk/upstream.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 6:37:46 PM 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 ... Sun, 07 Jun 2020 12:13:46 GMT contact [323] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/conn.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add support for WebSocket connections WebSocket connections allow ... Fri, 05 Jun 2020 09:35:43 GMT fox.cpp [318] * trunk/upstream.go (modified) Fix handling of empty response to SASL challenge Thu, 04 Jun 2020 15:27:57 GMT contact [315] * trunk/conn.go (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Introduce ircConn This interface will allow a conn to be backed by ... Wed, 03 Jun 2020 15:18:57 GMT contact [310] * trunk/upstream.go (modified) Only send JOIN message if we have channels to join Don't send a ... Tue, 02 Jun 2020 09:24:22 GMT fox.cpp [307] * trunk/db.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Implement upstream SASL EXTERNAL support Closes: ... Thu, 28 May 2020 14:26:28 GMT ecs [305] * trunk/upstream.go (modified) Join all channels with a single JOIN message Wed, 27 May 2020 21:51:44 GMT delthas [304] * trunk/upstream.go (modified) Fix parsing upstream RPL_INVITING messages Previously, we did not ... Wed, 27 May 2020 21:48:08 GMT delthas [303] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add support for TAGMSG and client message tags Previously we ... Wed, 27 May 2020 21:47:49 GMT delthas [302] * trunk/upstream.go (modified) Forward all labeled errors and unknown messages to their downstream ... Wed, 27 May 2020 21:45:13 GMT delthas [300] * trunk/upstream.go (modified) Add support for upstream ban, invite, and exception lists This does ... Wed, 27 May 2020 21:42:38 GMT delthas [296] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Update downstream nicks in single-server mode and after NICK ... Thu, 21 May 2020 20:38:07 GMT delthas [295] * trunk/upstream.go (modified) Fix sending CAP END twice when SASL is not used When SASL is not ... Thu, 21 May 2020 20:37:37 GMT delthas [294] * trunk/upstream.go (modified) Fix a null access due to assigning nil to the member memberships map ... Thu, 21 May 2020 20:36:54 GMT delthas [293] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Fix parsing MODE messages by updating channel memberships ... Mon, 11 May 2020 10:25:49 GMT delthas [292] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add support for multiple user channel memberships User channel ... Fri, 01 May 2020 17:51:22 GMT contact [288] * trunk/upstream.go (modified) Improve highlight matching Detect word boundaries instead of just ... Fri, 01 May 2020 17:05:20 GMT contact [287] * trunk/upstream.go (modified) Send service NOTICE on highlight in detached channel Fri, 01 May 2020 16:12:47 GMT contact [286] * trunk/upstream.go (modified) Unify upstream NOTICE and PRIVMSG handling Fri, 01 May 2020 13:18:14 GMT contact [284] * trunk/db.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for detached channels Channels can now be detached by ... Thu, 30 Apr 2020 14:10:39 GMT contact [282] * trunk/upstream.go (modified) Introduce permanentUpstreamCaps Thu, 30 Apr 2020 13:27:41 GMT contact [281] * trunk/upstream.go (modified) Add upstream cap-notify support Wed, 29 Apr 2020 17:45:37 GMT contact [278] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add upstreamConn.caps Instead of adding one field per capability, ... Wed, 29 Apr 2020 17:40:31 GMT contact [277] * trunk/upstream.go (modified) Rename upstreamConn.caps to supportedCaps For consistency with ... Wed, 29 Apr 2020 17:34:44 GMT contact [276] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add support for away-notify This makes use of cap-notify to ... Wed, 29 Apr 2020 13:32:22 GMT contact [274] * trunk/upstream.go (modified) Don't use forEachDownstreamByID when forwarding RPL_AWAY We should ... Wed, 29 Apr 2020 13:00:17 GMT contact [273] * trunk/upstream.go (modified) Check upstream NOTICE prefix is non-nil Wed, 29 Apr 2020 12:53:48 GMT contact [272] * trunk/upstream.go (modified) Forward RPL_AWAY messages Tue, 28 Apr 2020 09:41:13 GMT delthas [270] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Add support for the irc+insecure address scheme Some servers do not ... Tue, 28 Apr 2020 09:41:13 GMT delthas [269] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Add support for IRC address schemes This is preparatory work for ... Thu, 23 Apr 2020 14:36:20 GMT contact [267] * trunk/db.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add network.channels, remove DB.GetChannel Store the list of ... Thu, 16 Apr 2020 15:38:47 GMT delthas [263] * trunk/db.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) Add support for custom network on-connect commands Some servers use ... Thu, 16 Apr 2020 15:23:35 GMT contact [261] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Support sending history when upstream is disconnected Previously, ... Thu, 16 Apr 2020 15:19:00 GMT contact [260] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Make downstreamConn.marshal{Entity,UserPrefix} take a network This ... Thu, 16 Apr 2020 14:57:33 GMT contact [259] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Kill downstreamConn.marshal{Nick,Channel} We can just use ... Fri, 10 Apr 2020 17:22:47 GMT contact [253] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Per-entity ring buffers Instead of having one ring buffer per ... Tue, 07 Apr 2020 19:54:24 GMT contact [248] * trunk/logger.go (modified) * trunk/upstream.go (modified) Make newMessageLogger take a *network instead of an *upstreamConn ... Tue, 07 Apr 2020 17:57:36 GMT contact [246] * trunk/upstream.go (modified) Remove outdated comment Locks are gone for good. Tue, 07 Apr 2020 17:45:29 GMT contact [245] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Centralize logged messages marshaling This allows messages added to ... Tue, 07 Apr 2020 13:02:44 GMT contact [244] * trunk/upstream.go (modified) Fix upstream NICK handling - uc.nicl was compared to ... Mon, 06 Apr 2020 20:05:49 GMT contact [240] * trunk/upstream.go (modified) Fix server-time tags timezone We need to use UTC time. Mon, 06 Apr 2020 19:42:55 GMT contact [239] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Make upstreamConn.produce log messages Mon, 06 Apr 2020 19:34:45 GMT contact [238] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add origin argument to upstreamConn.produce Mon, 06 Apr 2020 16:49:39 GMT contact [235] * trunk/logger.go (modified) * trunk/upstream.go (modified) Log TOPIC messages See [1]. [1]: ... Mon, 06 Apr 2020 16:31:48 GMT contact [231] * trunk/downstream.go (modified) * trunk/ring.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Remove downstreamConn.ringConsumers We no longer need long-lived ... Mon, 06 Apr 2020 16:05:36 GMT contact [227] * trunk/doc/architecture.md (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Remove per-network ring buffer goroutines Just dispatch from the ... Mon, 06 Apr 2020 15:28:49 GMT contact [226] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Introduce upstreamConn.produce The logic in this function is about ... Sat, 04 Apr 2020 15:34:37 GMT delthas [221] * trunk/upstream.go (modified) Remove unused entityLog struct Since the logging refactoring in ... Sat, 04 Apr 2020 15:33:09 GMT delthas [218] * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Send one NOTICE on new upstream disconnect/connect errors In order ... Fri, 03 Apr 2020 19:00:19 GMT contact [217] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add NOTICE messages to ring buffer References: ... Fri, 03 Apr 2020 18:48:23 GMT contact [216] * trunk/downstream.go (modified) * trunk/logger.go (modified) * trunk/upstream.go (modified) Add time tag to all messages Fri, 03 Apr 2020 16:59:17 GMT contact [215] * trunk/downstream.go (modified) * trunk/logger.go (added) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce messageLogger This centralizes formatting related to ... Fri, 03 Apr 2020 15:01:25 GMT contact [212] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Use conn.ReadMessage instead of irc.Conn.ReadMessage Fri, 03 Apr 2020 14:35:08 GMT contact [210] * trunk/conn.go (added) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Introduce conn for common connection logic This centralizes the ... Fri, 03 Apr 2020 14:15:25 GMT contact [209] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Fix writer goroutine races Any SendMessage call after Close could ... Wed, 01 Apr 2020 14:41:17 GMT contact [206] * trunk/server.go (modified) * trunk/upstream.go (modified) Set connect timeout References: https://todo.sr.ht/~emersion/soju/26 Wed, 01 Apr 2020 14:27:53 GMT contact [205] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Set write deadlines References: https://todo.sr.ht/~emersion/soju/26 Wed, 01 Apr 2020 10:16:32 GMT contact [198] * trunk/upstream.go (modified) * trunk/user.go (modified) Auto away Closes: https://todo.sr.ht/~emersion/soju/13 Wed, 01 Apr 2020 10:14:36 GMT contact [197] * trunk/upstream.go (modified) * trunk/user.go (modified) Only set network.conn when registered Tue, 31 Mar 2020 20:21:49 GMT contact [195] * trunk/upstream.go (modified) Fix log dir permission We need the permission to list files in the dir. Tue, 31 Mar 2020 17:45:04 GMT contact [193] * trunk/irc.go (modified) * trunk/upstream.go (modified) Request server-time cap If the server didn't populate the time tag, ... Tue, 31 Mar 2020 17:41:12 GMT contact [192] * trunk/upstream.go (modified) Avoid directly forwarding NOTICE messages This would forward tags ... Tue, 31 Mar 2020 15:30:45 GMT contact [187] * trunk/upstream.go (modified) Rename AppendLog to appendLog This function is only safe to call ... Sat, 28 Mar 2020 19:00:56 GMT contact [186] * trunk/upstream.go (modified) Fix missing upstreamConn.closed initialization Fixes: b33e5f29abbe ... Sat, 28 Mar 2020 00:03:00 GMT contact [181] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) s/List/LIST/ when referring to the command Fri, 27 Mar 2020 23:54:42 GMT contact [180] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Document functions safe to call from any goroutine Fri, 27 Mar 2020 23:51:58 GMT contact [179] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce eventUpstreamDisconnected This allows us to perform ... Fri, 27 Mar 2020 23:07:20 GMT delthas [178] * 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) Add support for bouncer logs Add bouncer logs, in a ... Fri, 27 Mar 2020 23:07:20 GMT delthas [177] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add LIST support This commit adds support for downstream LIST ... Fri, 27 Mar 2020 23:07:20 GMT delthas [176] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Make upstream.SendMessageLabeled use an uint64 id This commit is ... Fri, 27 Mar 2020 22:08:35 GMT contact [175] * trunk/upstream.go (modified) * trunk/user.go (modified) Fix race condition in upstreamConn.Close upstreamConn.closed was a ... Fri, 27 Mar 2020 21:53:21 GMT delthas [174] * trunk/upstream.go (modified) Fix parsing wrong empty element in RPL_WHOISCHANNELS channel list ... Fri, 27 Mar 2020 20:12:16 GMT delthas [171] * trunk/upstream.go (modified) Marshal NOTICE user prefixes and channels NOTICE messages can be ... Fri, 27 Mar 2020 15:33:19 GMT contact [165] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce a user.events channel This allows to easily add new ... Thu, 26 Mar 2020 21:43:48 GMT delthas [163] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add downstream INVITE support