# # ChangeLog for / in code # # Generated by Trac 1.6 # Jun 8, 2025, 7:05:09 PM Tue, 13 Apr 2021 16:15:30 GMT contact [497] * trunk/db.go (modified) * trunk/user.go (modified) Store last internal msg ID in DB when detaching References: ... Tue, 13 Apr 2021 15:50:03 GMT contact [496] * trunk/downstream.go (modified) Skip backlog logic in downstreamConn.welcome on chathistory Tue, 13 Apr 2021 15:49:37 GMT contact [495] * trunk/downstream.go (modified) * trunk/user.go (modified) Take msg ID in sendTargetBacklog Tue, 13 Apr 2021 11:08:48 GMT contact [494] * trunk/user.go (modified) Panic on unknown user event type This should never happen. Complain ... Tue, 13 Apr 2021 11:04:23 GMT contact [493] * trunk/user.go (modified) Introduce per-user logger Adds the username to log lines. Tue, 13 Apr 2021 10:48:46 GMT hubert [492] * trunk/irc.go (modified) Make casemapping work over bytes instead of runes Fixes a panic in ... Wed, 31 Mar 2021 17:02:40 GMT contact [491] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) cmd/soju: allow specifying -listen multiple times Closes: ... Wed, 31 Mar 2021 16:18:16 GMT contact [490] * trunk/go.mod (modified) * trunk/go.sum (modified) Update dependencies Wed, 31 Mar 2021 16:04:13 GMT contact [489] * trunk/db.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Save delivery receipts in DB This avoids loosing history on restart ... Wed, 31 Mar 2021 15:57:24 GMT contact [488] * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) * trunk/msgstore_memory.go (modified) Use BARE for internal message IDs This allows to have shorter and ... Tue, 30 Mar 2021 10:44:56 GMT contact [487] * trunk/upstream.go (modified) * trunk/user.go (modified) Rename user.clients to clientNames This doesn't contain anything ... Tue, 30 Mar 2021 10:28:45 GMT contact [486] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Make NickServ detection casemapping-aware Mon, 29 Mar 2021 15:49:50 GMT contact [485] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce deliveredStore This hides the double-map complexity ... Mon, 29 Mar 2021 15:07:39 GMT contact [484] * trunk/downstream.go (modified) Ensure targets are case-mapped before being passed to messageStore ... Mon, 29 Mar 2021 14:58:56 GMT contact [483] * trunk/upstream.go (modified) * trunk/user.go (modified) Move network.clients to user No need to have this list per-network. Mon, 29 Mar 2021 14:55:57 GMT contact [482] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Simplify network.offlineClients Replace it with a list of all ... Fri, 26 Mar 2021 14:31:54 GMT contact [481] * trunk/contrib/casemap-logs.sh (added) contrib/casemap-logs.sh: new utility script Previous soju versions ... Fri, 26 Mar 2021 10:21:14 GMT contact [480] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Introduce deliveredClientMap Adds more semantics to ... Fri, 26 Mar 2021 09:39:52 GMT hubert [479] * trunk/downstream.go (modified) Fix CHATHISTORY target not being casemapped Wed, 24 Mar 2021 17:15:52 GMT hubert [478] * trunk/bridge.go (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Implement casemapping TL;DR: supports for casemapping, now logs are ... Wed, 24 Mar 2021 17:04:44 GMT delthas [477] * trunk/cmd/soju/main.go (modified) Increase downstream TCP keepalive interval to 1 hour The rationale ... Fri, 19 Mar 2021 08:27:19 GMT contact [476] * trunk/cmd/soju/main.go (modified) Fix panic on GetCertificate Fixes the following panic: panic: ... Thu, 18 Mar 2021 13:07:03 GMT contact [475] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) Reload TLS certs on SIGHUP References: ... Thu, 18 Mar 2021 12:28:46 GMT contact [474] * trunk/server.go (modified) Stop reading X-Forwarded-Port X-Forwarded-Port contains the ... Thu, 18 Mar 2021 12:21:38 GMT contact [473] * trunk/server.go (modified) Fix Forwarded HTTP header handling "for" contains the port, if any. ... Thu, 18 Mar 2021 11:08:25 GMT contact [472] * trunk/server.go (modified) Add support for the Forwarded HTTP header This is the standard ... Thu, 18 Mar 2021 11:02:36 GMT contact [471] * trunk/server.go (modified) Drop "irc" WebSocket subprotocol The subprotocol hasn't been ... Thu, 18 Mar 2021 10:33:30 GMT contact [470] * trunk/cmd/soju/main.go (modified) Don't add "irc" in ALPN list for WebSocket servers This is ... Tue, 16 Mar 2021 17:25:21 GMT contact [469] * trunk/upstream.go (modified) Don't update downstream caps in upstream RPL_WELCOME handler Prior ... Tue, 16 Mar 2021 08:54:29 GMT contact [468] * trunk/upstream.go (modified) Don't store history for NickServ Closes: ... Tue, 16 Mar 2021 08:41:07 GMT contact [467] * trunk/user.go (modified) Send NOTICE to downstream when upstream is disconnected Closes: ... Tue, 16 Mar 2021 08:27:40 GMT contact [466] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) Add Unix socket listener Closes: https://todo.sr.ht/~emersion/soju/51 Tue, 16 Mar 2021 08:19:12 GMT contact [465] * trunk/conn.go (modified) Correctly set WebSocket read/write deadline The methods didn't have ... Tue, 16 Mar 2021 08:13:46 GMT contact [464] * trunk/downstream.go (modified) Improve ERR_NOSUCHCHANNEL error messages References: ... Mon, 15 Mar 2021 22:41:37 GMT contact [463] * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/upstream.go (modified) Passthrough some ISUPPORT tokens Mon, 15 Mar 2021 22:11:42 GMT contact [462] * trunk/upstream.go (modified) Properly handle all ISUPPORT negations Mon, 15 Mar 2021 22:08:19 GMT contact [461] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Use upstream ISUPPORT map for NETWORK Mon, 15 Mar 2021 22:06:36 GMT contact [460] * trunk/upstream.go (modified) Maintain state for upstream ISUPPORT Mon, 15 Mar 2021 21:54:32 GMT contact [459] * trunk/upstream.go (modified) Simplify if block in ISUPPORT handler Mon, 15 Mar 2021 21:53:46 GMT contact [458] * trunk/upstream.go (modified) Extract ISUPPORT CHANMODES/PREFIX to separate functions Tue, 09 Mar 2021 17:55:34 GMT contact [457] * trunk/db.go (modified) * trunk/upstream.go (modified) Add Network.{URL,GetUsername,GetRealname} Just a bunch of helpers ... Fri, 05 Mar 2021 08:53:59 GMT hubert [456] * trunk/downstream.go (modified) Send correct CHATHISTORY error messages Wed, 24 Feb 2021 18:41:12 GMT contact [455] * trunk/cmd/soju/main.go (modified) * trunk/upstream.go (modified) Add irc to ALPN protocols The new ALPN token has been approved [1]. ... Thu, 18 Feb 2021 08:40:51 GMT hubert [454] * trunk/upstream.go (modified) if true return true else return false Trivial improvement Wed, 10 Feb 2021 12:50:10 GMT contact [453] * trunk/user.go (modified) Use sendTargetBacklog when re-attaching a channel No need to ... Wed, 10 Feb 2021 12:48:41 GMT contact [452] * trunk/downstream.go (modified) Introduce downstreamConn.sendTargetBacklog Wed, 10 Feb 2021 10:31:34 GMT contact [451] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Rename network.history to network.delivered "History" is ... Wed, 10 Feb 2021 09:23:51 GMT contact [450] * trunk/downstream.go (modified) * trunk/user.go (modified) Rename sendNetworkHistory to sendNetworkBacklog "History" is a ... Tue, 09 Feb 2021 16:34:46 GMT contact [449] * trunk/cmd/soju/main.go (modified) * trunk/server.go (modified) Add support for graceful shutdown Closes: ... Sun, 31 Jan 2021 21:18:51 GMT hubert [448] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Request invite-notify to upstreams ... and do not forward INVITEs ... Fri, 22 Jan 2021 11:00:38 GMT contact [447] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Forward ISUPPORT NETWORK token Fri, 22 Jan 2021 10:55:06 GMT contact [446] * trunk/downstream.go (modified) Send RPL_ISUPPORT CHATHISTORY token Tue, 19 Jan 2021 18:20:04 GMT contact [445] * trunk/go.mod (modified) * trunk/go.sum (modified) Update dependencies In particular, go-irc v3.1.4 should fix empty ... Sun, 10 Jan 2021 21:48:58 GMT contact [444] * trunk/msgstore_memory.go (modified) go fmt Sun, 10 Jan 2021 21:48:08 GMT hubert [443] * trunk/upstream.go (modified) Don't forward batch tags We don't want to have the batch tag when ... Mon, 04 Jan 2021 16:18:30 GMT contact [442] * trunk/msgstore_memory.go (added) * trunk/user.go (modified) Add in-memory message store Uses an in-memory ring buffer. ... Mon, 04 Jan 2021 16:17:35 GMT contact [441] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) Make chat history operations optional in messageStore Some stores ... Mon, 04 Jan 2021 15:26:30 GMT contact [440] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) Add store-agnostic message ID format Allow to query the network ID ... Mon, 04 Jan 2021 13:24:00 GMT contact [439] * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (added) * trunk/user.go (modified) Turn messageStore into an interface This allows for other ... Fri, 25 Dec 2020 12:37:15 GMT hubert [438] * trunk/downstream.go (modified) Improve dc.authenticate()'s error messages Fri, 25 Dec 2020 12:35:20 GMT hubert [437] * trunk/downstream.go (modified) * trunk/user.go (modified) Advertise all caps, CAP DEL them on registration ... so that the ... Mon, 14 Dec 2020 19:54:02 GMT delthas [436] * trunk/doc/soju.1.scd (modified) * trunk/service.go (modified) service: Introduce `channel update` This adds the `channel update` ... Mon, 14 Dec 2020 19:54:02 GMT delthas [435] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add customizable auto-detaching, auto-reattaching, relaying. This ... Mon, 14 Dec 2020 19:54:02 GMT delthas [434] * trunk/db.go (modified) Introduce Channel.{RelayDetached,ReattachOn,DetachAfter,DetachOn} ... Mon, 30 Nov 2020 10:39:41 GMT contact [433] * trunk/.editorconfig (added) Add .editorconfig Thu, 26 Nov 2020 18:27:08 GMT coder.kalyan [432] * trunk/cmd/sojuctl/main.go (modified) sojuctl: change-password: check if user exists When changing the ... Tue, 24 Nov 2020 13:25:19 GMT hubert [431] * trunk/downstream.go (modified) Uphold echo-message even with BouncerServ Fixes ... Tue, 24 Nov 2020 13:22:39 GMT contact [430] * trunk/downstream.go (modified) Fix nickname in ERR_ERRONEOUSNICKNAME Tue, 24 Nov 2020 13:22:18 GMT hubert [429] * trunk/downstream.go (modified) Prevent downstreams from changing their nick to service's This ... Tue, 24 Nov 2020 13:13:24 GMT contact [428] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Implement delivery receipts via PING messages This patch implements ... Fri, 20 Nov 2020 10:37:43 GMT hubert [427] * trunk/downstream.go (modified) Don't send TAGMSG to upstreams that don't support it TAGMSG are (in ... Sun, 25 Oct 2020 17:22:12 GMT contact [426] * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) Don't accept any IP as a proxy by default It's too easy to setup a ... Sun, 25 Oct 2020 17:15:54 GMT contact [425] * trunk/go.mod (modified) * trunk/go.sum (modified) Upgrade dependencies Sun, 25 Oct 2020 17:10:50 GMT contact [424] * trunk/config/config.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) Switch to go-scfg We don't use child directives yet, but likely ... Sun, 25 Oct 2020 16:47:38 GMT contact [423] * trunk/downstream.go (modified) * trunk/logger.go (deleted) * trunk/msgstore.go (added) * trunk/upstream.go (modified) * trunk/user.go (modified) Add message store abstraction Introduce a messageStore type, which ... Sat, 24 Oct 2020 13:47:53 GMT contact [422] * trunk/db.go (modified) Switch to sql.NullString Not really better than what we had before, ... Sat, 24 Oct 2020 13:14:23 GMT contact [421] * trunk/contrib/znc-import.go (modified) * trunk/db.go (modified) * trunk/downstream.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Switch DB API to user IDs This commit changes the Network schema to ... Sat, 24 Oct 2020 12:52:55 GMT contact [420] * trunk/db.go (modified) Add id column to User table We used rowid before, but an explicit ... Thu, 10 Sep 2020 22:10:58 GMT delthas [419] * trunk/downstream.go (modified) * trunk/upstream.go (modified) Add support for the extended-join capability This simple ... Mon, 07 Sep 2020 19:28:24 GMT contact [418] * trunk/cmd/soju/main.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) Add support for the PROXY protocol IPs whitelisted in ... Mon, 07 Sep 2020 18:58:49 GMT contact [417] * trunk/cmd/soju/main.go (modified) Set Server.AcceptProxyIPs Mon, 07 Sep 2020 09:40:18 GMT hubert [416] * trunk/db.go (modified) * trunk/user.go (modified) Make DB.DeleteChannel take the channel ID ... to allow the caller ... Wed, 02 Sep 2020 15:09:32 GMT hubert [415] * trunk/conn.go (modified) Make sure that WebSocket messages are valid UTF-8 ... by replacing ... Fri, 28 Aug 2020 11:35:55 GMT contact [414] * trunk/upstream.go (modified) Don't update history when msgID is empty in appendLog Log files ... Wed, 26 Aug 2020 13:28:10 GMT contact [413] * trunk/downstream.go (modified) Fix panic in downstreamConn.sendNetworkHistory This panic happens ... Wed, 26 Aug 2020 13:18:57 GMT contact [412] * trunk/downstream.go (modified) Fix downstream PING argument handling The PONG message should have ... Tue, 25 Aug 2020 09:49:22 GMT contact [411] * trunk/downstream.go (modified) Allow '/' in nickname This allows to specify a network name in the ... Mon, 24 Aug 2020 17:05:56 GMT contact [410] * trunk/go.mod (modified) * trunk/go.sum (modified) Update dependencies Thu, 20 Aug 2020 18:05:01 GMT contact [409] * trunk/downstream.go (modified) * trunk/ring.go (deleted) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Nuke in-memory ring buffer Instead, always read chat history from ... Thu, 20 Aug 2020 18:05:01 GMT contact [408] * trunk/logger.go (modified) Introduce loadHistoryLatestID This loads latest messages from logs ... Thu, 20 Aug 2020 18:05:01 GMT contact [407] * trunk/logger.go (modified) * trunk/upstream.go (modified) Introduce internal message IDs For now, these can be used as ... Thu, 20 Aug 2020 15:38:57 GMT contact [406] * trunk/downstream.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Replace networkHistory.offlineClients with clients Keep the ring ... Thu, 20 Aug 2020 09:12:54 GMT hubert [405] * trunk/bridge.go (modified) * trunk/upstream.go (modified) Forward RPL_TOPICWHOTIME to downstreams Thu, 20 Aug 2020 08:00:58 GMT hubert [404] * trunk/downstream.go (modified) Reject downstream NICK with illegal characters This should avoid ... Thu, 20 Aug 2020 07:15:47 GMT hubert [403] * trunk/upstream.go (modified) Fix marshalling of channel name in RPL_CREATIONTIME Thu, 20 Aug 2020 07:13:56 GMT contact [402] * trunk/conn.go (modified) * trunk/upstream.go (modified) go fmt Thu, 20 Aug 2020 07:13:38 GMT hubert [401] * trunk/downstream.go (modified) More explicit error message on INVITE with the wrong network Wed, 19 Aug 2020 21:57:25 GMT hubert [400] * trunk/downstream.go (modified) More explicit error message on KICK with the wrong network Wed, 19 Aug 2020 21:35:12 GMT contact [399] * trunk/upstream.go (modified) * trunk/user.go (modified) Improve registration error messages - Don't print the raw IRC ... Wed, 19 Aug 2020 17:42:33 GMT contact [398] * trunk/conn.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Implement rate limiting for upstream messages Allow up to 10 ...