# # ChangeLog for trunk/upstream.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 6:33:28 PM 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 Thu, 26 Mar 2020 21:33:44 GMT delthas [162] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add upstream RPL_CREATIONTIME support Thu, 26 Mar 2020 21:28:13 GMT delthas [161] * trunk/upstream.go (modified) Fix capitalization of 'id' Following the Go project source code ... Wed, 25 Mar 2020 23:15:26 GMT delthas [159] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add KICK support Downstream and upstream message handling are ... Wed, 25 Mar 2020 22:21:26 GMT delthas [157] * trunk/upstream.go (modified) Fix wrong handling of members parameter of RPL_NAMREPLY Some ... Wed, 25 Mar 2020 22:21:14 GMT delthas [156] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Route NAMES, WHO, WHOIS replies to the requesting downstream Using ... Wed, 25 Mar 2020 22:20:56 GMT delthas [155] * trunk/irc.go (modified) * trunk/upstream.go (modified) Add upstream labeled-response capability support Wed, 25 Mar 2020 22:16:53 GMT delthas [153] * trunk/irc.go (modified) * trunk/upstream.go (modified) Add upstream batch capability support Wed, 25 Mar 2020 22:15:48 GMT delthas [152] * trunk/upstream.go (modified) Add upstream message-tags capability support Wed, 25 Mar 2020 10:54:08 GMT contact [146] * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for channel keys Wed, 25 Mar 2020 09:53:08 GMT contact [143] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Move upstreamConn.ring to network This handles upstream ... Wed, 25 Mar 2020 08:51:22 GMT delthas [142] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add downstream self WHO and WHOIS support Wed, 25 Mar 2020 08:47:26 GMT delthas [140] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add downstream NAMES support NAMES reply for channels currently ... Wed, 25 Mar 2020 08:40:08 GMT delthas [139] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add MODE arguments support - Add RPL_ISUPPORT support with ... Fri, 20 Mar 2020 21:48:17 GMT contact [131] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Move upstreamConn.history to network Fri, 20 Mar 2020 09:11:27 GMT delthas [129] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Fix MODE downstream support - Fix replies without client as first ... Fri, 20 Mar 2020 09:11:27 GMT delthas [128] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add WHOIS support Thu, 19 Mar 2020 23:29:03 GMT delthas [127] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add WHO support Thu, 19 Mar 2020 13:51:45 GMT contact [125] * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Remove some IRCv3 constants go-irc v3.1.2 adds some missing IRCv3 ... Wed, 18 Mar 2020 11:23:08 GMT contact [117] * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/service.go (added) * trunk/upstream.go (modified) Add basic infrastructure for bouncer service Wed, 18 Mar 2020 09:26:25 GMT delthas [115] * trunk/upstream.go (modified) Add upstream INVITE support Mon, 16 Mar 2020 14:08:56 GMT contact [109] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Protect upstreamConn.history with a lock Mon, 16 Mar 2020 11:44:59 GMT contact [103] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Per-user dispatcher goroutine This allows message handlers to read ... Mon, 16 Mar 2020 10:26:54 GMT contact [102] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Rename messages channels to outgoing Fri, 13 Mar 2020 17:13:03 GMT contact [98] * trunk/README.md (modified) * trunk/bridge.go (modified) * trunk/cmd/jounce/main.go (deleted) * trunk/cmd/jouncectl/main.go (deleted) * trunk/cmd/soju (added) * trunk/cmd/soju/main.go (added) * trunk/cmd/sojuctl (added) * trunk/cmd/sojuctl/main.go (added) * trunk/config/config.go (modified) * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/irc.go (modified) * trunk/ring.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Rename project to soju Fri, 13 Mar 2020 15:39:49 GMT contact [97] * trunk/upstream.go (modified) Forward NOTICE messages coming from upstream connections Fri, 13 Mar 2020 15:18:53 GMT contact [96] * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Update dependencies go-irc v3.1.1 contains a breaking change. ... Fri, 13 Mar 2020 14:12:44 GMT contact [95] * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/irc.go (modified) * trunk/schema.sql (modified) * trunk/upstream.go (modified) Add support for SASL authentication We now store SASL credentials ... Fri, 13 Mar 2020 11:06:02 GMT contact [93] * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/schema.sql (modified) * trunk/upstream.go (modified) Add support for upstream PASS command Fri, 13 Mar 2020 10:26:43 GMT contact [92] * trunk/upstream.go (modified) Add upstream CAP LS support Fri, 06 Mar 2020 17:51:11 GMT contact [83] * trunk/upstream.go (modified) Pass-through QUIT messages Fri, 06 Mar 2020 17:43:56 GMT contact [82] * trunk/upstream.go (modified) Pass-through NICK messages for other users Wed, 04 Mar 2020 18:23:24 GMT contact [79] * trunk/db.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) go fmt Wed, 04 Mar 2020 17:22:58 GMT contact [77] * trunk/cmd/jounce/main.go (modified) * trunk/config/config.go (modified) * trunk/db.go (added) * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/schema.sql (added) * trunk/server.go (modified) * trunk/upstream.go (modified) Add SQLite database Closes: https://todo.sr.ht/~emersion/jounce/9 Wed, 04 Mar 2020 14:45:14 GMT contact [74] * trunk/upstream.go (modified) Fix TOPIC parsing, broadcast to downstream clients Wed, 04 Mar 2020 14:44:13 GMT contact [73] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Allow clients to specify an upstream name in their username Tue, 03 Mar 2020 14:33:21 GMT contact [72] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Remove upstream prefix for outgoing MODE and PRIVMSG We shouldn't ... Wed, 19 Feb 2020 17:25:19 GMT contact [69] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add functions to translate between upstream and downstream names Tue, 18 Feb 2020 19:40:32 GMT contact [68] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Fix PING handlers, again Tue, 18 Feb 2020 16:26:17 GMT contact [67] * trunk/server.go (modified) * trunk/upstream.go (modified) Enable TCP keep-alive on all connections Tue, 18 Feb 2020 16:07:58 GMT contact [66] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Properly handle PING messages Tue, 18 Feb 2020 15:31:18 GMT contact [64] * trunk/cmd/jounce/main.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add a -debug flag Mon, 17 Feb 2020 15:17:31 GMT contact [60] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add upstreamConn.SendMessage Allows us to change upstreamConn ... Mon, 17 Feb 2020 14:46:29 GMT contact [57] * trunk/downstream.go (modified) * trunk/ring.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Fix issues related to Ring - RingConsumer is now used directly in ... Mon, 17 Feb 2020 11:36:42 GMT contact [55] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Abbreviate {upstream,downstream}Conn with uc and dc This makes it ... Mon, 17 Feb 2020 11:27:48 GMT contact [54] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/upstream.go (modified) Don't write to downstreamConn.messages directly Use a helper ... Fri, 07 Feb 2020 15:43:54 GMT contact [50] * trunk/downstream.go (modified) * trunk/ring.go (added) * trunk/server.go (modified) * trunk/upstream.go (modified) Add an in-memory ring buffer References: ... Fri, 07 Feb 2020 12:08:27 GMT contact [46] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Handle downstream MODE messages Fri, 07 Feb 2020 11:42:24 GMT contact [45] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Close connection from writer goroutine Connections were being ... Fri, 07 Feb 2020 11:37:44 GMT contact [44] * trunk/server.go (modified) * trunk/upstream.go (modified) Add upstreamConn.register Fri, 07 Feb 2020 11:36:02 GMT contact [43] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Add parseMessageParams helper Fri, 07 Feb 2020 11:19:42 GMT contact [42] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Allow changing nickname