Commit graph

24 commits

Author SHA1 Message Date
Chris Howey bc727496d0 bump required go version to 1.15
requires functions added to the stdlib in 1.15

downstream.go references tls.Dialer
user.go references Resolver.LookupIP
2022-01-03 21:01:44 +01:00
Simon Ser b2957c05d5 Use golang.org/x/time/rate
Instead of hand-rolling our own rate-limiter based on goroutines,
use golang.org/x/time/rate.
2021-12-02 23:52:29 +01:00
Simon Ser 254108bd99 Upgrade dependencies 2021-11-17 16:57:41 +01:00
Simon Ser 8f8d7aab0e Add basic Prometheus metrics exporter
This only exports the default metrics for now.

References: https://todo.sr.ht/~emersion/soju/142
2021-11-17 15:58:18 +01:00
Simon Ser 5c20c4c0f4 Upgrade dependencies 2021-10-12 16:54:51 +02:00
Hubert Hirtz 6e06663615 PostgreSQL support 2021-10-11 15:21:04 +02:00
Simon Ser 8adf65ade2 Upgrade dependencies 2021-09-13 14:23:33 +02:00
Hubert Hirtz a21585ac41 Hand-made word splitter for BouncerServ
Remove the (direct) dependency on shlex (go-scfg still depends on it).

Co-authored-by: Simon Ser <contact@emersion.fr>
2021-06-24 19:33:46 +02:00
Simon Ser bc7123f486 Update dependencies 2021-03-31 18:18:16 +02:00
Simon Ser 5b4469fcb7 Use BARE for internal message IDs
This allows to have shorter and more future-proof IDs. This also
guarantees the IDs will only use reasonable ASCII characters (no
spaces), removing the need to encode them for PING/PONG tokens.
2021-03-31 17:57:24 +02:00
Simon Ser 0ba3f1148e
Update dependencies
In particular, go-irc v3.1.4 should fix empty IRC message handling.
2021-01-19 19:20:04 +01:00
Simon Ser 24d8f2167b
Upgrade dependencies 2020-10-25 18:15:54 +01:00
Simon Ser 0709ac143f
Switch to go-scfg
We don't use child directives yet, but likely will in the future.
2020-10-25 18:10:50 +01:00
Simon Ser bbe67adf1e
Add support for the PROXY protocol
IPs whitelisted in accept-proxy-ip can now use the PROXY protocol to
indicate the original source/destination addresses.

Closes: https://todo.sr.ht/~emersion/soju/81
2020-09-07 21:28:24 +02:00
Simon Ser ae3e4262b9
Update dependencies 2020-08-24 19:05:56 +02:00
Simon Ser d0cf1d2882
Add support for WebSocket connections
WebSocket connections allow web-based clients to connect to IRC. This
commit implements the WebSocket sub-protocol as specified by the pending
IRCv3 proposal [1].

WebSocket listeners can now be set up via a "wss" protocol in the
`listen` directive. The new `http-origin` directive allows the CORS
allowed origins to be configured.

[1]: https://github.com/ircv3/ircv3-specifications/pull/342
2020-06-07 14:13:46 +02:00
Simon Ser 166d8b0626
Remove some IRCv3 constants
go-irc v3.1.2 adds some missing IRCv3 constants.
2020-03-19 14:51:45 +01:00
Simon Ser e3d97bb164
Add basic infrastructure for bouncer service 2020-03-18 12:23:08 +01:00
Simon Ser f3940117d1
Rename project to soju 2020-03-13 18:13:03 +01:00
Simon Ser 85ffadea33
Update dependencies
go-irc v3.1.1 contains a breaking change.

References: https://github.com/go-irc/irc/issues/76
2020-03-13 16:18:53 +01:00
Simon Ser 03d5600da6
Add support for SASL authentication
We now store SASL credentials in the database and automatically populate
them on NickServ REGISTER/IDENTIFY.

References: https://todo.sr.ht/~emersion/jounce/10
2020-03-13 15:12:44 +01:00
Simon Ser a572b24702
cmd/jouncectl: new command
Allows to create users.
2020-03-11 19:01:03 +01:00
Simon Ser 84fe3ae255
Add SQLite database
Closes: https://todo.sr.ht/~emersion/jounce/9
2020-03-04 18:22:58 +01:00
Simon Ser 8e31fde0ab
Add basic IRC listener 2020-02-04 10:46:22 +01:00