# # ChangeLog for trunk in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:17:09 PM Wed, 03 Jun 2020 14:18:56 GMT contact [309] * trunk/user.go (modified) Unexport network.Stop An exported function makes it look like it ... Wed, 03 Jun 2020 13:51:56 GMT admin [308] * trunk/cmd/sojuctl/main.go (modified) Allow to read password when stdin is not a tty. 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]: ... 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: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: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: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: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 ... 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:58:29 GMT contact [290] * trunk/README.md (modified) readme: add CI badge 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 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 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 ... Fri, 01 May 2020 08:49:58 GMT delthas [283] * trunk/user.go (modified) Fix joining only one saved channel per network This fixes a serious ... 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 Thu, 30 Apr 2020 08:35:02 GMT contact [280] * trunk/conn.go (modified) Use a lock to protect conn.{closed,outgoing} Unfortunately, I don't ... 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: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 17:34:38 GMT contact [275] * trunk/downstream.go (modified) Add downstream support for cap-notify 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 14:27:53 GMT contact [271] * trunk/service.go (modified) Abbreviate net status service reply Don't print the nickname if ... 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 ... 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, 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 ... Fri, 17 Apr 2020 16:29:49 GMT contact [266] * trunk/doc/architecture.md (modified) doc/architecture: ring buffers are now per-channel Thu, 16 Apr 2020 16:55:21 GMT contact [265] * trunk/README.md (modified) readme: fix ref to manpage Thu, 16 Apr 2020 16:54:47 GMT contact [264] * trunk/doc/soju.1.scd (modified) doc: describe more default settings 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: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 20:45:02 GMT contact [255] * trunk/README.md (modified) * trunk/db.go (modified) * trunk/schema.sql (deleted) Set up DB migration infrastructure The database is now initialized ... Fri, 10 Apr 2020 20:37:14 GMT contact [254] * trunk/doc/soju.1.scd (modified) doc: fix SQL driver name in manpage 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 ...