# # ChangeLog for trunk/downstream.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:01:42 PM Tue, 13 Apr 2021 15:50:03 GMT contact [496] * trunk/downstream.go (modified) Skip backlog logic in downstreamConn.welcome on chathistory Tue, 13 Apr 2021 15:49:37 GMT contact [495] * trunk/downstream.go (modified) * trunk/user.go (modified) Take msg ID in sendTargetBacklog Wed, 31 Mar 2021 15:57:24 GMT contact [488] * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) * trunk/msgstore_memory.go (modified) Use BARE for internal message IDs This allows to have shorter and ... 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 15:07:39 GMT contact [484] * trunk/downstream.go (modified) Ensure targets are case-mapped before being passed to messageStore ... 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 ... Fri, 26 Mar 2021 09:39:52 GMT hubert [479] * trunk/downstream.go (modified) Fix CHATHISTORY target not being casemapped 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 08:13:46 GMT contact [464] * trunk/downstream.go (modified) Improve ERR_NOSUCHCHANNEL error messages References: ... 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:08:19 GMT contact [461] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Use upstream ISUPPORT map for NETWORK Fri, 05 Mar 2021 08:53:59 GMT hubert [456] * trunk/downstream.go (modified) Send correct CHATHISTORY error messages Wed, 10 Feb 2021 12:48:41 GMT contact [452] * trunk/downstream.go (modified) Introduce downstreamConn.sendTargetBacklog 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 ... Wed, 10 Feb 2021 09:23:51 GMT contact [450] * trunk/downstream.go (modified) * trunk/user.go (modified) Rename sendNetworkHistory to sendNetworkBacklog "History" is a ... 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 Fri, 22 Jan 2021 10:55:06 GMT contact [446] * trunk/downstream.go (modified) Send RPL_ISUPPORT CHATHISTORY token Mon, 04 Jan 2021 16:17:35 GMT contact [441] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) Make chat history operations optional in messageStore Some stores ... Mon, 04 Jan 2021 15:26:30 GMT contact [440] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) Add store-agnostic message ID format Allow to query the network ID ... Fri, 25 Dec 2020 12:37:15 GMT hubert [438] * trunk/downstream.go (modified) Improve dc.authenticate()'s error messages Fri, 25 Dec 2020 12:35:20 GMT hubert [437] * trunk/downstream.go (modified) * trunk/user.go (modified) Advertise all caps, CAP DEL them on registration ... so that the ... 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:25:19 GMT hubert [431] * trunk/downstream.go (modified) Uphold echo-message even with BouncerServ Fixes ... Tue, 24 Nov 2020 13:22:39 GMT contact [430] * trunk/downstream.go (modified) Fix nickname in ERR_ERRONEOUSNICKNAME Tue, 24 Nov 2020 13:22:18 GMT hubert [429] * trunk/downstream.go (modified) Prevent downstreams from changing their nick to service's 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 ... Fri, 20 Nov 2020 10:37:43 GMT hubert [427] * trunk/downstream.go (modified) Don't send TAGMSG to upstreams that don't support it TAGMSG are (in ... 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 ... Sat, 24 Oct 2020 13:14:23 GMT contact [421] * trunk/contrib/znc-import.go (modified) * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Switch DB API to user IDs This commit changes the Network schema to ... 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 ... Wed, 26 Aug 2020 13:28:10 GMT contact [413] * trunk/downstream.go (modified) Fix panic in downstreamConn.sendNetworkHistory This panic happens ... Wed, 26 Aug 2020 13:18:57 GMT contact [412] * trunk/downstream.go (modified) Fix downstream PING argument handling The PONG message should have ... Tue, 25 Aug 2020 09:49:22 GMT contact [411] * trunk/downstream.go (modified) Allow '/' in nickname This allows to specify a network name in the ... 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 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 08:00:58 GMT hubert [404] * trunk/downstream.go (modified) Reject downstream NICK with illegal characters This should avoid ... Thu, 20 Aug 2020 07:13:38 GMT hubert [401] * trunk/downstream.go (modified) More explicit error message on INVITE with the wrong network Wed, 19 Aug 2020 21:57:25 GMT hubert [400] * trunk/downstream.go (modified) More explicit error message on KICK with the wrong network 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 ... Tue, 11 Aug 2020 13:58:50 GMT contact [387] * trunk/downstream.go (modified) * trunk/logger.go (modified) Extract history loading into functions These will get re-used for ... Wed, 22 Jul 2020 10:16:01 GMT contact [362] * trunk/downstream.go (modified) * trunk/logger.go (modified) go fmt Wed, 15 Jul 2020 15:47:57 GMT contact [360] * trunk/downstream.go (modified) * trunk/logger.go (modified) Implement CHATHISTORY AFTER References: ... Mon, 06 Jul 2020 16:13:40 GMT contact [354] * trunk/downstream.go (modified) Strip network name from nickname when auto-saving network Wed, 01 Jul 2020 15:02:37 GMT contact [347] * trunk/conn.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) Add RemoteAddr to ircConn interface 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 Wed, 24 Jun 2020 21:02:46 GMT hubert [340] * trunk/downstream.go (modified) Don't save corrupted NickServ credentials soju saved most NickServ ... 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 ... Sat, 06 Jun 2020 10:52:22 GMT contact [322] * trunk/downstream.go (modified) Fail auth on empty password in DB Fri, 05 Jun 2020 21:50:31 GMT delthas [319] * trunk/downstream.go (modified) * trunk/logger.go (modified) * trunk/server.go (modified) Add support for downstream CHATHISTORY This adds support for the ... 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 ... 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: ... Mon, 01 Jun 2020 16:57:20 GMT hubert.hirtz [306] * trunk/downstream.go (modified) Send the full user mask in RPL_LOGGEDIN As per the spec [1]: ... 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:46:31 GMT delthas [301] * trunk/downstream.go (modified) Send a label with all messages sent from downstream This is ... Wed, 27 May 2020 21:44:38 GMT delthas [299] * trunk/downstream.go (modified) Add support for downstream WHOIS nick/network nick/network Many IRC ... Wed, 27 May 2020 21:43:46 GMT delthas [298] * trunk/downstream.go (modified) Add support for downstream LIST to a single upstream Sometimes, ... Wed, 27 May 2020 21:43:04 GMT delthas [297] * trunk/downstream.go (modified) Add support for downstream NICK to a single upstream Users often ... 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: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 ... Tue, 05 May 2020 14:52:50 GMT contact [291] * trunk/downstream.go (modified) Add time tag to echo messages Closes: ... Fri, 01 May 2020 19:56:40 GMT delthas [289] * trunk/downstream.go (modified) Fix not properly marshaling self in single-server mode In ... Fri, 01 May 2020 15:39:53 GMT contact [285] * trunk/downstream.go (modified) Don't clear channel key on JOIN Closes: ... 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 08:25:16 GMT contact [279] * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Remove network.upstream This is an artifact from when we used ... 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: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 17:34:38 GMT contact [275] * trunk/downstream.go (modified) Add downstream support for cap-notify Fri, 24 Apr 2020 16:26:44 GMT delthas [268] * trunk/downstream.go (modified) Unmarshal nicks in texts of PRIVMSG and NOTICE from downstreams ... Thu, 16 Apr 2020 15:25:39 GMT contact [262] * trunk/downstream.go (modified) Fix typo 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 ... Thu, 16 Apr 2020 14:54:13 GMT contact [258] * trunk/downstream.go (modified) Disallow marshalling for anotehr network Thu, 16 Apr 2020 14:33:56 GMT contact [257] * trunk/downstream.go (modified) Unify downstreamConn.marshal{Entity,Nick,Channel} We don't actually ... Wed, 15 Apr 2020 09:29:15 GMT contact [256] * trunk/downstream.go (modified) Add support for downstream batch & chathistory 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 20:30:54 GMT contact [249] * trunk/downstream.go (modified) Document downstreamConn.{,un}marshalEntity 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 12:45:08 GMT contact [242] * trunk/downstream.go (modified) * trunk/ring.go (modified) Make Ring.NewConsumer seq argument mandatory There's no point in ... 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 17:08:43 GMT contact [236] * trunk/downstream.go (modified) Remove downstreamConn.ourMessages We can just do the filtering when ... Mon, 06 Apr 2020 16:34:33 GMT contact [233] * trunk/downstream.go (modified) Simplify ring consumer loop No need to use Peek here. 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:23:39 GMT contact [230] * trunk/downstream.go (modified) Remove downstreamConn.lock Everything is now accessed from the user ... Mon, 06 Apr 2020 16:13:46 GMT contact [228] * trunk/downstream.go (modified) * trunk/ring.go (modified) * trunk/user.go (modified) Remove channel from ring buffer consumers This is unused. 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 ... Sun, 05 Apr 2020 13:04:52 GMT contact [222] * trunk/downstream.go (modified) * trunk/user.go (modified) Add network.{createUpdate,delete}Channel These are about to get ... 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:15:12 GMT contact [213] * trunk/downstream.go (modified) Log self-messages too Closes: https://todo.sr.ht/~emersion/soju/44 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:55:49 GMT contact [211] * trunk/downstream.go (modified) Add support for downstream echo-message extension 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 ...