# # ChangeLog for trunk in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:17:17 PM 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 ... Fri, 10 Apr 2020 08:16:25 GMT admin [252] * trunk/service.go (modified) * trunk/user.go (modified) Allow users to change password in client Added a BouncerServ ... Fri, 10 Apr 2020 08:09:02 GMT admin [251] * trunk/cmd/sojuctl/main.go (modified) * trunk/db.go (modified) Add ability to change password Wed, 08 Apr 2020 08:19:33 GMT contact [250] * trunk/logger.go (modified) Parse timestamp from message tags in messageLogger.Append Tue, 07 Apr 2020 20:30:54 GMT contact [249] * trunk/downstream.go (modified) Document downstreamConn.{,un}marshalEntity 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 19:50:12 GMT contact [247] * trunk/logger.go (modified) Extract logic to build log filepath into a function This will get ... 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 ... Tue, 07 Apr 2020 12:46:31 GMT contact [243] * trunk/ring.go (modified) Remove Ring.consumers We don't need to keep track of consumers anymore. 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 ... Tue, 07 Apr 2020 12:42:13 GMT contact [241] * trunk/ring.go (modified) * trunk/user.go (modified) Remove Ring.Close This is unused. 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 17:11:26 GMT contact [237] * trunk/user.go (modified) Remove network.lock network.conn is now only accessed from the user ... 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:49:39 GMT contact [235] * trunk/logger.go (modified) * trunk/upstream.go (modified) Log TOPIC messages See [1]. [1]: ... Mon, 06 Apr 2020 16:45:30 GMT contact [234] * trunk/logger.go (modified) Fix NOTICE log formatting ZNC uses hyphens instead of angle ... 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:33:26 GMT contact [232] * trunk/ring.go (modified) Remove RingConsumer.Close This is now unused. 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:18:50 GMT contact [229] * trunk/ring.go (modified) Remove locks from ring buffer Everything is now accessed from the ... 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:24:57 GMT contact [225] * trunk/logger.go (modified) Use Network.GetName for logs path Sun, 05 Apr 2020 13:20:13 GMT contact [224] * trunk/service.go (modified) Only print addr if necessary in network status service command Sun, 05 Apr 2020 13:15:42 GMT contact [223] * trunk/user.go (modified) Use Network.GetName in network status NOTICE messages 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 ... 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:34:30 GMT delthas [220] * trunk/service.go (modified) Fill all fields of the service user prefix On some IRC clients, ... Sat, 04 Apr 2020 15:34:12 GMT delthas [219] * trunk/service.go (modified) Send the last error for disconnected networks in network status ... 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:25:53 GMT contact [214] * trunk/doc/soju.1.scd (modified) doc: document auto-away feature 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:38:09 GMT contact [208] * trunk/.gitignore (modified) * trunk/doc/soju.1.scd (modified) doc: document "network delete" 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: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 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 Wed, 01 Apr 2020 13:40:20 GMT contact [202] * trunk/db.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Add "network delete" service command And add all the infrastructure ... Wed, 01 Apr 2020 13:04:32 GMT contact [201] * trunk/user.go (modified) Make user.getNetwork handle Network.Name Wed, 01 Apr 2020 12:58:14 GMT contact [200] * trunk/config/config.go (modified) config: use shlex This simplifies parsing and allows quoting words. ... Wed, 01 Apr 2020 10:21:31 GMT contact [199] * trunk/user.go (modified) Set network.conn in user goroutine One step closed to removing that ... 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 Wed, 01 Apr 2020 10:05:25 GMT contact [196] * trunk/user.go (modified) Add eventUpstreamConnected This is used in the next commit. 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:50:31 GMT contact [194] * trunk/downstream.go (modified) Add downstream support for server-time 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 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:41:14 GMT contact [189] * trunk/README.md (modified) readme: advise connecting with "/" This matches ... Tue, 31 Mar 2020 16:16:54 GMT contact [188] * trunk/downstream.go (modified) Consume ring messages outside of writer goroutine This fixes ... 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 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 [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 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 21:24:12 GMT contact [172] * trunk/server.go (modified) Get rid of Server.downstreamConns This is unused right now. Let's ... 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 18:49:55 GMT contact [170] * trunk/doc/architecture.md (added) doc: add basic architecture document Fri, 27 Mar 2020 18:23:41 GMT contact [169] * trunk/Makefile (modified) * trunk/doc (added) * trunk/doc/soju.1.scd (added) * trunk/soju.1.scd (deleted) Move man page to doc/ 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:28:13 GMT delthas [161] * trunk/upstream.go (modified) Fix capitalization of 'id' Following the Go project source code ... 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: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: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 ...