# # ChangeLog for trunk in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:18:01 PM Thu, 09 Jul 2020 12:20:23 GMT contact [359] * trunk/user.go (modified) Prevent error handler from falling through in user.run Thu, 09 Jul 2020 10:19:51 GMT contact [358] * trunk/service.go (modified) Add unix as supported upstream URL scheme to service Thu, 09 Jul 2020 09:25:25 GMT contact [357] * trunk/contrib (added) * trunk/contrib/znc-import.go (added) contrib/znc-import: new utility Allows populating the soju database ... Thu, 09 Jul 2020 09:23:51 GMT contact [356] * trunk/db.go (modified) Fix deadlock in DB.Close This method was calling itself, instead of ... Wed, 08 Jul 2020 16:21:52 GMT contact [355] * trunk/upstream.go (modified) Broadcast unhandled messages to downstream connections In case ... Mon, 06 Jul 2020 16:13:40 GMT contact [354] * trunk/downstream.go (modified) Strip network name from nickname when auto-saving network Mon, 06 Jul 2020 15:31:11 GMT contact [353] * trunk/doc/soju.1.scd (modified) * trunk/upstream.go (modified) Add support for upstream Unix socket connections References: ... Mon, 06 Jul 2020 15:18:13 GMT contact [352] * trunk/upstream.go (modified) Parse upstream URLs with net/url This allows us to ignore the path ... Mon, 06 Jul 2020 14:04:56 GMT contact [351] * trunk/upstream.go (modified) Check upstream address with net.SplitHostPort Looking for a colon ... Mon, 06 Jul 2020 09:06:20 GMT contact [350] * trunk/irc.go (modified) * trunk/upstream.go (modified) Sort and split JOIN messages Sort channels so that channels with a ... Mon, 06 Jul 2020 08:59:34 GMT contact [349] * trunk/bridge.go (modified) Make length check clearer in sendNames Thu, 02 Jul 2020 09:05:49 GMT contact [348] * trunk/server.go (modified) Accept "irc" WebSocket subprotocol 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 Tue, 30 Jun 2020 08:28:05 GMT hubert [346] * trunk/bridge.go (modified) * trunk/irc.go (modified) Send compact channel name lists This commit resolves `sendNames`' TODO. Mon, 29 Jun 2020 16:33:23 GMT contact [345] * trunk/server.go (modified) Only read X-Forwarded-* if remote address is loopback Mon, 29 Jun 2020 16:27:43 GMT contact [344] * trunk/server.go (modified) Extract X-Forwarded-* headers for WebSocket connections 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 Mon, 29 Jun 2020 15:52:49 GMT contact [342] * trunk/upstream.go (modified) Handle registration failures References: ... Mon, 29 Jun 2020 08:24:41 GMT contact [341] * trunk/conn.go (modified) Return io.EOF on websocket connection closure Wed, 24 Jun 2020 21:02:46 GMT hubert [340] * trunk/downstream.go (modified) Don't save corrupted NickServ credentials soju saved most NickServ ... Wed, 24 Jun 2020 10:08:35 GMT contact [339] * trunk/service.go (modified) service: list commands in lexicographic order Fri, 12 Jun 2020 12:43:45 GMT delthas [338] * trunk/upstream.go (modified) Fix sending messages from detached channels Currently, a downstream ... Fri, 12 Jun 2020 12:37:43 GMT contact [337] * trunk/README.md (modified) readme: extend copyright notice to all contributors soju now has ... Wed, 10 Jun 2020 21:00:50 GMT contact [336] * trunk/README.md (modified) readme: add link to website Wed, 10 Jun 2020 14:34:45 GMT contact [335] * trunk/service.go (modified) Fix missing appendServiceCommandSetHelp argument Wed, 10 Jun 2020 14:33:13 GMT fox.cpp [334] * trunk/service.go (modified) Do not panic if BouncerServ command without handler is sent Wed, 10 Jun 2020 14:18:15 GMT kl [333] * trunk/service.go (modified) service: Handle zero-value in stringPtrFlag.String ... Wed, 10 Jun 2020 14:15:20 GMT contact [332] * trunk/.build.yml (modified) ci: check scdoc is happy Wed, 10 Jun 2020 14:10:17 GMT kl [331] * trunk/doc/soju.1.scd (modified) docs: Fix manpage syntax Mon, 08 Jun 2020 20:30:09 GMT delthas [330] * trunk/README.md (modified) * trunk/cmd/sojuctl/main.go (modified) sojuctl: Add support for creating admin users This adds a new flag, ... Mon, 08 Jun 2020 20:30:09 GMT delthas [329] * trunk/doc/soju.1.scd (modified) * trunk/server.go (modified) * trunk/service.go (modified) Add support for the user create admin service command This adds ... Mon, 08 Jun 2020 20:30:09 GMT delthas [328] * trunk/service.go (modified) Add support for admin-restricted service commands This is ... Mon, 08 Jun 2020 20:30:09 GMT delthas [327] * trunk/db.go (modified) Add an admin flag to users This is preparatory work for letting ... Mon, 08 Jun 2020 20:30:09 GMT delthas [326] * trunk/cmd/sojuctl/main.go (modified) Fix: Check the stdin scanner for errors when reading the password ... Mon, 08 Jun 2020 20:30:09 GMT delthas [325] * trunk/service.go (modified) Rename handleServiceCreateNetwork to handleServiceNetworkCreate ... Mon, 08 Jun 2020 09:59:03 GMT contact [324] * trunk/cmd/sojuctl/main.go (modified) * trunk/db.go (modified) * trunk/user.go (modified) Introduce User.Created For Network and Channel, the database only ... 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 22:23:25 GMT contact [321] * trunk/doc/soju.1.scd (modified) doc: update URL to sr.ht hub in man page Fri, 05 Jun 2020 22:21:37 GMT contact [320] * trunk/doc/soju.1.scd (modified) doc: add missing change-password service command 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 ... Fri, 05 Jun 2020 09:35:43 GMT fox.cpp [318] * trunk/upstream.go (modified) Fix handling of empty response to SASL challenge Thu, 04 Jun 2020 18:16:23 GMT contact [317] * trunk/README.md (modified) * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) Allow multiple listeners, default to ircs Users can now specify ... Thu, 04 Jun 2020 16:38:04 GMT contact [316] * trunk/server.go (modified) Remove keepAlivePeriod This is a remnant of setKeepAlive. Fixes: ... 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 ... Thu, 04 Jun 2020 14:58:31 GMT contact [314] * trunk/conn.go (modified) Remove setKeepAlive Go sets a default keep-alive interval of 15 ... Thu, 04 Jun 2020 11:04:39 GMT contact [313] * trunk/service.go (modified) * trunk/user.go (modified) Add network update command The user.updateNetwork function is a bit ... Thu, 04 Jun 2020 10:18:51 GMT contact [312] * trunk/conn.go (modified) Close net.Conn in conn.Close Close the connection in conn.Close. ... Wed, 03 Jun 2020 15:28:31 GMT contact [311] * trunk/user.go (modified) Introduce network.isClosed Wed, 03 Jun 2020 15:18:57 GMT contact [310] * trunk/upstream.go (modified) Only send JOIN message if we have channels to join Don't send a ... 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 ...