# # ChangeLog for trunk/server.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 8:36:17 PM Wed, 13 Oct 2021 08:58:34 GMT contact [636] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/irc.go (modified) * trunk/server.go (modified) Add bouncer MOTD Closes: https://todo.sr.ht/~emersion/soju/137 Thu, 07 Oct 2021 18:43:10 GMT contact [612] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add max-user-networks config option Tue, 05 Oct 2021 17:13:53 GMT contact [605] * trunk/doc/soju.1.scd (modified) * trunk/server.go (modified) * trunk/service.go (modified) Add "server status" command Right now, it prints the number of ... Tue, 05 Oct 2021 12:02:59 GMT contact [601] * trunk/server.go (modified) Use isErrClosed in Server.Serve Tue, 05 Oct 2021 09:53:38 GMT contact [599] * trunk/server.go (modified) Close DB on shutdown Tue, 28 Sep 2021 19:25:06 GMT contact [597] * trunk/server.go (modified) Add support for IRCv3 WebSocket text subprotocol Technically we ... Wed, 23 Jun 2021 17:23:09 GMT contact [563] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Allow admins to broadcast message to all bouncer users Typically ... Tue, 25 May 2021 14:35:39 GMT sir [531] * trunk/cmd/soju/main.go (modified) * trunk/cmd/sojuctl/main.go (modified) * trunk/contrib/znc-import.go (modified) * trunk/db.go (modified) * trunk/db_sqlite.go (added) * trunk/server.go (modified) db: refactor into interface This refactors the SQLite-specific bits ... 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 ... 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: ... 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 ... 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 ... Tue, 11 Aug 2020 08:59:06 GMT contact [385] * trunk/cmd/soju/main.go (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add an ident server Closes: https://todo.sr.ht/~emersion/soju/69 Mon, 10 Aug 2020 13:03:38 GMT contact [378] * trunk/server.go (modified) Remove user from Server map when stopped Wed, 22 Jul 2020 15:03:01 GMT contact [370] * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/server.go (modified) Add accept-proxy-ip config directive This allows to set the list of ... 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 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, 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 ... 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 ... 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 ... Thu, 04 Jun 2020 16:38:04 GMT contact [316] * trunk/server.go (modified) Remove keepAlivePeriod This is a remnant of setKeepAlive. Fixes: ... 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 ... 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 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 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 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 ... 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 ... 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:18:41 GMT contact [101] * trunk/server.go (modified) * trunk/user.go (added) Split user logic into its own file 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 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 Wed, 04 Mar 2020 18:23:24 GMT contact [79] * trunk/db.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) go fmt Wed, 04 Mar 2020 17:22:58 GMT contact [77] * trunk/cmd/jounce/main.go (modified) * trunk/config/config.go (modified) * trunk/db.go (added) * trunk/downstream.go (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/schema.sql (added) * trunk/server.go (modified) * trunk/upstream.go (modified) Add SQLite database Closes: https://todo.sr.ht/~emersion/jounce/9 Wed, 04 Mar 2020 15:00:19 GMT contact [75] * trunk/downstream.go (modified) * trunk/server.go (modified) Remove unused user.getChannel, move getUpstream to user Wed, 04 Mar 2020 14:44:13 GMT contact [73] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Allow clients to specify an upstream name in their username Tue, 03 Mar 2020 14:26:19 GMT contact [71] * trunk/server.go (modified) Retry connecting to upstream servers Rate-limit retries in case ... Tue, 18 Feb 2020 16:26:17 GMT contact [67] * trunk/server.go (modified) * trunk/upstream.go (modified) Enable TCP keep-alive on all connections Tue, 18 Feb 2020 15:54:06 GMT contact [65] * trunk/server.go (modified) Don't leave connections half-opened Tue, 18 Feb 2020 15:31:18 GMT contact [64] * trunk/cmd/jounce/main.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add a -debug flag Mon, 17 Feb 2020 14:46:29 GMT contact [57] * trunk/downstream.go (modified) * trunk/ring.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Fix issues related to Ring - RingConsumer is now used directly in ... Fri, 07 Feb 2020 15:43:54 GMT contact [50] * trunk/downstream.go (modified) * trunk/ring.go (added) * trunk/server.go (modified) * trunk/upstream.go (modified) Add an in-memory ring buffer References: ... Fri, 07 Feb 2020 12:36:32 GMT contact [49] * trunk/downstream.go (modified) * trunk/server.go (modified) Handle downstream PART messages Fri, 07 Feb 2020 12:08:27 GMT contact [46] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Handle downstream MODE messages Fri, 07 Feb 2020 11:37:44 GMT contact [44] * trunk/server.go (modified) * trunk/upstream.go (modified) Add upstreamConn.register Fri, 07 Feb 2020 11:02:19 GMT contact [41] * trunk/server.go (modified) Skip unregistered and closed upstream connections Fri, 07 Feb 2020 10:56:36 GMT contact [40] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add user.forEachDownstream Fri, 07 Feb 2020 10:46:44 GMT contact [39] * trunk/downstream.go (modified) * trunk/server.go (modified) Add user.forEachUpstream Fri, 07 Feb 2020 10:39:56 GMT contact [38] * trunk/downstream.go (modified) * trunk/server.go (modified) Add Server.getUser Fri, 07 Feb 2020 10:36:42 GMT contact [37] * trunk/cmd/jounce/main.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Per-user connections Thu, 06 Feb 2020 21:25:32 GMT contact [29] * trunk/server.go (modified) Keep track of upstream connections in a list Thu, 06 Feb 2020 20:30:44 GMT contact [24] * trunk/server.go (modified) Remove downstream conn from list on disconnect Thu, 06 Feb 2020 20:20:22 GMT contact [23] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Allow Server to have access to upstreamConn Thu, 06 Feb 2020 20:11:35 GMT contact [22] * trunk/downstream.go (modified) * trunk/server.go (modified) Maintain a list of downstream connections Thu, 06 Feb 2020 19:26:03 GMT contact [21] * trunk/server.go (modified) * trunk/upstream.go (modified) Add per-upstream logger Thu, 06 Feb 2020 18:22:04 GMT contact [19] * trunk/cmd/jounce/main.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Join channels on upstream servers Thu, 06 Feb 2020 15:18:19 GMT contact [13] * trunk/downstream.go (added) * trunk/server.go (modified) * trunk/upstream.go (added) Split downstram and upstream code into separate files Thu, 06 Feb 2020 15:13:29 GMT contact [12] * trunk/server.go (modified) Log upstream server errors Thu, 06 Feb 2020 15:11:28 GMT contact [11] * trunk/server.go (modified) Add basic upstream message handler Thu, 06 Feb 2020 15:03:07 GMT contact [10] * trunk/cmd/jounce/main.go (modified) * trunk/server.go (modified) Connect to upstream servers Thu, 06 Feb 2020 14:50:46 GMT contact [9] * trunk/cmd/jounce/main.go (modified) * trunk/server.go (modified) Add Server.Logger Thu, 06 Feb 2020 14:22:26 GMT contact [8] * trunk/server.go (modified) Rename conn to downstreamConn Thu, 06 Feb 2020 11:18:37 GMT contact [7] * trunk/server.go (modified) Handle PING Thu, 06 Feb 2020 11:08:54 GMT contact [6] * trunk/server.go (modified) Send ERR_NOMOTD on registration Tue, 04 Feb 2020 17:56:07 GMT contact [5] * trunk/cmd/jounce/main.go (modified) * trunk/server.go (modified) Add connection registration Tue, 04 Feb 2020 11:19:18 GMT contact [4] * trunk/server.go (modified) Handle NICK and USER Tue, 04 Feb 2020 10:25:53 GMT contact [3] * trunk/cmd/jounce/main.go (modified) * trunk/server.go (modified) Send "unknown command" replies Tue, 04 Feb 2020 09:46:22 GMT contact [1] * trunk (added) * trunk/.gitignore (added) * trunk/cmd (added) * trunk/cmd/jounce (added) * trunk/cmd/jounce/main.go (added) * trunk/go.mod (added) * trunk/go.sum (added) * trunk/server.go (added) Add basic IRC listener