# # ChangeLog for trunk/server.go in code # # Generated by Trac 1.6 # Jun 8, 2025, 5:06:56 PM Tue, 21 Mar 2023 23:43:07 GMT koizumi.aoi [807] * trunk/cmd/suika-znc-import/main.go (modified) * trunk/cmd/suika/main.go (modified) * trunk/cmd/suikactl/main.go (modified) * trunk/go.mod (modified) * trunk/server.go (modified) Use vanity module path Signed-off-by: Aoi K Tue, 21 Mar 2023 04:45:19 GMT koizumi.aoi [804] * trunk/Makefile (modified) * trunk/bridge.go (modified) * trunk/certfp.go (modified) * trunk/cmd/suika-znc-import/main.go (modified) * trunk/cmd/suika/main.go (modified) * trunk/cmd/suikactl/main.go (modified) * trunk/config/config.go (modified) * trunk/conn.go (modified) * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_postgres_test.go (modified) * trunk/db_sqlite.go (modified) * trunk/db_sqlite_test.go (modified) * trunk/downstream.go (modified) * trunk/ident.go (modified) * trunk/irc.go (modified) * trunk/irc_test.go (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) * trunk/msgstore_memory.go (modified) * trunk/net_go113.go (modified) * trunk/net_go116.go (modified) * trunk/rate.go (modified) * trunk/server.go (modified) * trunk/server_test.go (modified) * trunk/service.go (modified) * trunk/service_test.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Drunk as I like Signed-off-by: Aoi K Tue, 21 Mar 2023 03:00:04 GMT koizumi.aoi [801] * trunk/Makefile (modified) * trunk/README.md (modified) * trunk/cmd/soju-znc-import/main.go (deleted) * trunk/cmd/soju/main.go (deleted) * trunk/cmd/sojuctl/main.go (deleted) * trunk/cmd/suika (added) * trunk/cmd/suika-znc-import (added) * trunk/cmd/suika-znc-import/main.go (added) * trunk/cmd/suika/main.go (added) * trunk/cmd/suikactl (added) * trunk/cmd/suikactl/main.go (added) * trunk/go.mod (modified) * trunk/server.go (modified) Rename to suika Signed-off-by: Aoi K Tue, 21 Mar 2023 01:50:04 GMT koizumi.aoi [798] * trunk/cmd/soju/main.go (modified) * trunk/cmd/sojuctl/main.go (modified) * trunk/contrib/znc-import.go (modified) * trunk/server.go (modified) dev: move import uris to this repository Wed, 19 Jan 2022 21:35:46 GMT contact [766] * trunk/ident.go (modified) * trunk/server.go (modified) Retry on temporary net.Listener failure Instead of stopping to ... Wed, 08 Dec 2021 14:00:02 GMT contact [756] * trunk/server.go (modified) server: cleanup user in defer If a user goroutine panics, this ... Mon, 06 Dec 2021 17:35:49 GMT contact [747] * trunk/cmd/soju/main.go (modified) * trunk/conn.go (modified) * trunk/server.go (modified) Add Logger.Debugf Makes it easy to print debugging messages which ... Mon, 06 Dec 2021 17:27:36 GMT contact [746] * trunk/server.go (modified) Remove Logger.Print Callers can just use Logger.Printf instead. Thu, 02 Dec 2021 11:14:35 GMT contact [735] * trunk/rate.go (added) * trunk/server.go (modified) * trunk/user.go (modified) Add exponential backoff when re-connecting to upstream The first ... Thu, 02 Dec 2021 10:15:51 GMT contact [734] * trunk/server.go (modified) * trunk/user.go (modified) Add soju_upstream_connect_errors_total metric Wed, 17 Nov 2021 14:58:19 GMT contact [711] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Add message counter metrics Wed, 17 Nov 2021 14:58:19 GMT contact [710] * trunk/server.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Add number of upstream connections to metrics Wed, 17 Nov 2021 14:58:19 GMT contact [709] * trunk/server.go (modified) Add int64 gauge abstraction We want to serve metrics via both ... Wed, 17 Nov 2021 14:58:19 GMT contact [708] * trunk/server.go (modified) Add basic active users and downstreams metrics Wed, 17 Nov 2021 14:58:18 GMT contact [707] * trunk/cmd/soju/main.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/go.mod (modified) * trunk/go.sum (modified) * trunk/server.go (modified) Add basic Prometheus metrics exporter This only exports the default ... Wed, 17 Nov 2021 14:07:58 GMT contact [705] * 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) * trunk/user.go (modified) Add per-user IP addresses The new upstream-user-ip directive allows ... Wed, 17 Nov 2021 13:54:03 GMT contact [704] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/user.go (modified) Add timeout for downstream connection registration Wed, 17 Nov 2021 10:41:11 GMT contact [694] * trunk/cmd/soju/main.go (modified) * trunk/config/config.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) Add config option to globally disable multi-upstream mode Closes: ... Mon, 15 Nov 2021 23:38:04 GMT contact [691] * trunk/cmd/soju/main.go (modified) * trunk/conn.go (modified) * trunk/doc/soju.1.scd (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/service.go (modified) * trunk/user.go (modified) Allow most config options to be reloaded Closes: ... Mon, 15 Nov 2021 20:40:17 GMT contact [689] * trunk/server.go (modified) Add panic handlers for user and downstream goroutines This only ... Mon, 08 Nov 2021 19:29:14 GMT contact [680] * trunk/server.go (modified) * trunk/service.go (modified) Add context support to Server.createUser Mon, 08 Nov 2021 17:11:24 GMT contact [675] * trunk/downstream.go (modified) * trunk/server.go (modified) Plumb context in downstreamConn.handleMessageRegistered References: ... Wed, 03 Nov 2021 17:29:21 GMT contact [670] * trunk/downstream.go (modified) * trunk/server.go (modified) Turn CHATHISTORY and backlog limits into constants Wed, 03 Nov 2021 17:21:05 GMT contact [667] * trunk/downstream.go (modified) * trunk/msgstore.go (modified) * trunk/msgstore_fs.go (modified) * trunk/msgstore_memory.go (modified) * trunk/server.go (modified) msgstore: add context to messageStore methods This allows setting a ... Tue, 02 Nov 2021 21:38:07 GMT contact [662] * 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 title config option Closes: https://todo.sr.ht/~emersion/soju/146 Fri, 29 Oct 2021 14:18:34 GMT contact [656] * trunk/server.go (modified) Fix missing imports in server.go Oops. Fri, 29 Oct 2021 14:03:04 GMT contact [655] * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/upstream.go (modified) Get rid of io.EOF errors in logs Closes: ... Mon, 18 Oct 2021 17:15:15 GMT contact [652] * trunk/cmd/sojuctl/main.go (modified) * trunk/contrib/znc-import.go (modified) * trunk/db.go (modified) * trunk/db_postgres.go (modified) * trunk/db_sqlite.go (modified) * trunk/downstream.go (modified) * trunk/server.go (modified) * trunk/server_test.go (modified) * trunk/service.go (modified) * trunk/upstream.go (modified) * trunk/user.go (modified) Add context args to Database interface This is a mecanical change, ... 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