soju forked to be LESS SHIT
Go to file
Simon Ser 69e9b6a439 Retry on temporary net.Listener failure
Instead of stopping to listen, retry on temporary failure. This
can happen when running out of FDs.

Closes: https://todo.sr.ht/~emersion/soju/183
2022-01-19 22:35:46 +01:00
cmd Add Logger.Debugf 2021-12-06 18:35:49 +01:00
config Add per-user IP addresses 2021-11-17 15:07:58 +01:00
contrib contrib/clients: Add information about emacs irc clients 2022-01-13 16:06:54 +01:00
doc Add "sasl status" command 2021-12-01 11:03:27 +01:00
.build.yml ci: switch to alpine/latest 2021-10-15 09:59:53 +02:00
.editorconfig Add .editorconfig 2020-11-30 11:39:41 +01:00
.gitignore doc: document "network delete" 2020-04-01 17:38:09 +02:00
bridge.go Don't send RPL_NOTOPIC on JOIN 2022-01-10 10:37:55 +01:00
certfp.go Split CertFP logic into separate file 2021-10-08 09:47:25 +02:00
config.in Make db and log config options more future-proof 2021-04-21 18:15:04 +02:00
conn.go Add context to {conn,upstreamConn}.SendMessage 2021-12-08 18:03:40 +01:00
db_postgres_test.go db_postgres: add migration test 2021-10-11 15:55:07 +02:00
db_postgres.go Add Prometheus instrumentation for the database 2021-11-17 15:58:19 +01:00
db_sqlite_test.go db_sqlite: add migration test 2021-10-11 12:26:51 +02:00
db_sqlite.go Add Prometheus instrumentation for the database 2021-11-17 15:58:19 +01:00
db.go Add Prometheus instrumentation for the database 2021-11-17 15:58:19 +01:00
downstream.go Handle upstream multi-line SASL 2021-12-10 10:46:41 +01:00
go.mod bump required go version to 1.15 2022-01-03 21:01:44 +01:00
go.sum Use golang.org/x/time/rate 2021-12-02 23:52:29 +01:00
ident.go Retry on temporary net.Listener failure 2022-01-19 22:35:46 +01:00
irc.go Handle upstream multi-line SASL 2021-12-10 10:46:41 +01:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
Makefile build: don't clobber config file 2021-10-08 09:11:31 +02:00
msgstore_fs.go msgstore_fs: abort on timeout 2021-11-03 18:21:12 +01:00
msgstore_memory.go msgstore_memory: add comment about Append dropping messages 2021-11-03 18:25:39 +01:00
msgstore.go msgstore: add context to messageStore methods 2021-11-03 18:21:05 +01:00
net_go113.go go fmt: add go:build tags 2021-09-09 10:07:37 +02:00
net_go116.go go fmt: add go:build tags 2021-09-09 10:07:37 +02:00
rate.go Add exponential backoff when re-connecting to upstream 2021-12-02 12:14:35 +01:00
README.md readme: add note to use system libsqlite3 2021-09-21 11:44:08 +02:00
server_test.go Use background context in tests 2021-11-17 12:04:24 +01:00
server.go Retry on temporary net.Listener failure 2022-01-19 22:35:46 +01:00
service_test.go Hand-made word splitter for BouncerServ 2021-06-24 19:33:46 +02:00
service.go Add context to {conn,upstreamConn}.SendMessage 2021-12-08 18:03:40 +01:00
upstream.go Add context to upstreamConn.handleCapAck 2021-12-10 12:28:16 +01:00
user.go Use more descriptive errors when aborting pending commands 2021-12-06 22:33:50 +01:00

soju

builds.sr.ht status

A user-friendly IRC bouncer.

  • Multi-user
  • Support multiple clients for a single user, with proper backlog synchronization
  • Support connecting to multiple upstream servers via a single IRC connection to the bouncer

Usage

Building and installing

Dependencies:

  • Go
  • a C89 compiler (for SQLite)
  • scdoc (optional, for man pages)

For end users, a Makefile is provided:

make
sudo make install

For development, you can use go run ./cmd/soju as usual.

To link with the system libsqlite3, use make GOFLAGS="-tags=libsqlite3".

Contributing

Send patches on the mailing list or on GitHub, report bugs on the issue tracker. Discuss in #soju on Libera Chat.

License

AGPLv3, see LICENSE.

Copyright (C) 2020 The soju Contributors