# # ChangeLog for trunk/downstream.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:03:51 PM 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 ... 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 15:34:22 GMT contact [207] * trunk/db.go (modified) * trunk/downstream.go (modified) Fix SQL error logged on JOIN Closes: ... 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 14:02:31 GMT contact [204] * trunk/downstream.go (modified) * trunk/user.go (modified) Simplify ring consumer goroutine Since network.history is now only ... Wed, 01 Apr 2020 13:48:56 GMT contact [203] * trunk/downstream.go (modified) * trunk/ring.go (modified) * trunk/user.go (modified) Stop ring consumers when deleting network Tue, 31 Mar 2020 17:50:31 GMT contact [194] * trunk/downstream.go (modified) Add downstream support for server-time Tue, 31 Mar 2020 17:39:06 GMT contact [191] * trunk/downstream.go (modified) Expose message-tags capability downstream Strip tags if the client ... Tue, 31 Mar 2020 17:02:02 GMT contact [190] * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) Make "@" and "/" indicate client name and network, respectively ... Tue, 31 Mar 2020 16:16:54 GMT contact [188] * trunk/downstream.go (modified) Consume ring messages outside of writer goroutine This fixes ... Sat, 28 Mar 2020 16:36:09 GMT contact [185] * trunk/downstream.go (modified) Use clientName to decide whether or not history should be sent ... Sat, 28 Mar 2020 16:28:28 GMT contact [184] * trunk/downstream.go (modified) Remove downstreamConn.username Replace it with ... Sat, 28 Mar 2020 16:25:48 GMT contact [183] * trunk/downstream.go (modified) Add downstreamConn.clientName Sat, 28 Mar 2020 09:40:33 GMT contact [182] * trunk/downstream.go (modified) Update password on NickServ SET PASSWORD message 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 [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 21:38:38 GMT contact [173] * trunk/db.go (modified) * trunk/downstream.go (modified) Stop accessing user data in downstreamConn.authenticate This ... Fri, 27 Mar 2020 18:17:58 GMT contact [168] * trunk/downstream.go (modified) * trunk/user.go (modified) Nuke user.lock Split user.register into two functions, one to make ... Fri, 27 Mar 2020 16:55:03 GMT contact [167] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add eventDownstreamDisconnected This should remove the need for ... Fri, 27 Mar 2020 16:21:05 GMT contact [166] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add eventDownstreamConnected In a later commit, we'll be able to ... 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 ... Fri, 27 Mar 2020 08:40:51 GMT delthas [164] * trunk/downstream.go (modified) Add downstream NOTICE support 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:27:46 GMT delthas [160] * trunk/bridge.go (modified) * trunk/downstream.go (modified) Add downstream TOPIC support 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 23:12:53 GMT delthas [158] * trunk/downstream.go (modified) Simplify error handling for downstream JOIN/PART ... 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:17:46 GMT delthas [154] * trunk/downstream.go (modified) * trunk/server.go (modified) Add a server-unique id to each downstream Adding a simple uint64 id ... 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 10:32:44 GMT contact [145] * trunk/downstream.go (modified) Handle downstream JOIN/PART with multiple channel names Closes: ... Wed, 25 Mar 2020 10:28:25 GMT contact [144] * trunk/downstream.go (modified) * trunk/user.go (modified) Consume ring buffer for networks added on-the-fly 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:48:00 GMT delthas [141] * trunk/downstream.go (modified) Add user hostname to downstream user prefix 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 ... Mon, 23 Mar 2020 15:05:00 GMT contact [137] * trunk/downstream.go (modified) * trunk/user.go (modified) Add user.{add,remove}Downstream Sat, 21 Mar 2020 09:24:38 GMT contact [136] * trunk/downstream.go (modified) * trunk/user.go (modified) Add network.upstream helper Sat, 21 Mar 2020 07:44:03 GMT contact [135] * trunk/downstream.go (modified) Fix typo Sat, 21 Mar 2020 07:41:14 GMT contact [134] * trunk/downstream.go (modified) Fix empty SASL challenge message We were sending an empty string. ... Fri, 20 Mar 2020 21:53:05 GMT contact [132] * trunk/bridge.go (modified) * trunk/downstream.go (modified) Avoid sending JOIN twice for the same channel 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:42:17 GMT contact [130] * trunk/README.md (modified) * trunk/downstream.go (modified) Fix deadlocks in single-upstream mode 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 ... Thu, 19 Mar 2020 13:44:49 GMT contact [124] * trunk/downstream.go (modified) Fix history name dc.username contains the raw account username, not ... Thu, 19 Mar 2020 00:14:44 GMT delthas [120] * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Add create-network bouncer service command Wed, 18 Mar 2020 23:06:48 GMT delthas [119] * trunk/downstream.go (modified) * trunk/user.go (modified) Add suffixing for multi-upstream connections 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 Tue, 17 Mar 2020 15:17:39 GMT contact [114] * trunk/downstream.go (modified) Fix typo Tue, 17 Mar 2020 15:15:54 GMT contact [113] * trunk/downstream.go (modified) Fix echo PRIVMSG messages Mon, 16 Mar 2020 15:16:27 GMT contact [112] * trunk/downstream.go (modified) Add downstream SASL support Mon, 16 Mar 2020 14:12:46 GMT contact [111] * trunk/downstream.go (modified) Allow CAP command when registered Mon, 16 Mar 2020 14:10:16 GMT contact [110] * trunk/downstream.go (modified) Log downstream messages before registration 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 14:05:24 GMT contact [108] * trunk/downstream.go (modified) * trunk/irc.go (modified) Add CAP support for downstream connections Mon, 16 Mar 2020 13:32:38 GMT contact [107] * trunk/downstream.go (modified) Don't reply to PING when client is unregistered Mon, 16 Mar 2020 13:30:49 GMT contact [106] * trunk/downstream.go (modified) Make downstreamConn.runUntilegistered exit with an error on EOF Mon, 16 Mar 2020 13:28:45 GMT contact [105] * trunk/downstream.go (modified) Echo downstream PRIVMSGs to other downstream connections Mon, 16 Mar 2020 13:05:48 GMT contact [104] * trunk/downstream.go (modified) Rename consumption to ringMessage 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 Mon, 16 Mar 2020 08:32:18 GMT contact [100] * trunk/README.md (modified) * trunk/downstream.go (modified) Strip client & network name from username 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 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 Thu, 12 Mar 2020 20:28:09 GMT contact [91] * trunk/README.md (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) Auto-save IRC networks Thu, 12 Mar 2020 18:17:06 GMT contact [90] * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) Store NICK changes in the DB Thu, 12 Mar 2020 17:33:03 GMT contact [89] * trunk/db.go (modified) * trunk/downstream.go (modified) Update DB on JOIN and PART Thu, 12 Mar 2020 17:21:41 GMT contact [88] * trunk/downstream.go (modified) Fix nil dereference when network is specified in username