Find a file
Hubert Hirtz 2554c92df7 Allow CAP negotiation to happen with CAP REQ
See https://ircv3.net/specs/extensions/capability-negotiation

> Upon receiving either a CAP LS or CAP REQ command during connection
> registration, the server MUST not complete registration until the
> client sends a CAP END command to indicate that capability negotiation
> has ended.

This commit should prevent soju from trying to authenticate the user
prior to having received AUTHENTICATE messages, when the client eagerly
requests capabilities with CAP REQ seeing available capabilities
beforehand with CAP LS.
2021-09-19 16:50:47 +02:00
cmd Check for TLS config in wss listeners 2021-09-09 10:06:31 +02:00
config Make db and log config options more future-proof 2021-04-21 18:15:04 +02:00
contrib contrib/clients: sort alphabetically and wrap lines 2021-07-07 10:37:18 +02:00
doc service: Introduce network quote 2021-07-07 10:34:46 +02:00
.build.yml ci: add gofmt check 2021-06-29 22:24:44 +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 Implement casemapping 2021-03-24 18:15:52 +01:00
config.in Make db and log config options more future-proof 2021-04-21 18:15:04 +02:00
conn.go Silence net.ErrClosed errors 2021-05-20 00:07:44 +02:00
db.go Add per-user realname setting 2021-06-25 20:33:13 +02:00
db_sqlite.go Use NULL-tolerant comparison for DeliveryReceipts 2021-09-14 18:38:58 +02:00
downstream.go Allow CAP negotiation to happen with CAP REQ 2021-09-19 16:50:47 +02:00
go.mod Upgrade dependencies 2021-09-13 14:23:33 +02:00
go.sum Upgrade dependencies 2021-09-13 14:23:33 +02:00
ident.go ident: remove leftover debug log 2020-08-18 17:57:12 +02:00
irc.go Implement CHATHISTORY BETWEEN 2021-05-18 10:44:10 +02:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
Makefile Don't build soju when calling "make install" 2021-05-25 16:31:06 +02:00
msgstore.go Implement CHATHISTORY TARGETS 2021-06-02 20:32:11 +02:00
msgstore_fs.go Slightly relax new log file permissions 2021-06-14 17:58:36 +02:00
msgstore_memory.go Check message stores implement expected interfaces 2021-05-18 14:19:34 +02: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
README.md Add a C compiler to the list of dependencies 2021-07-07 10:32:16 +02:00
server.go Allow admins to broadcast message to all bouncer users 2021-06-23 19:23:09 +02:00
service.go service: Introduce network quote 2021-07-07 10:34:46 +02:00
service_test.go Hand-made word splitter for BouncerServ 2021-06-24 19:33:46 +02:00
upstream.go Add per-user realname setting 2021-06-25 20:33:13 +02:00
user.go Don't send network notification when removed 2021-09-13 10:33:46 +02: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.

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