soju forked to be LESS SHIT
d321fcd9f0
Fixes the following panic: 2022/05/03 08:05:32 panic serving user "asdf": Unsupported pending command "WHOIS" goroutine 15 [running]: runtime/debug.Stack() /opt/go/src/runtime/debug/stack.go:24 +0x65 git.sr.ht/~emersion/soju.(*Server).addUserLocked.func1.1() ~/soju/server.go:317 +0x5d panic({0xa18da0, 0x6815bf10}) /opt/go/src/runtime/panic.go:838 +0x207 git.sr.ht/~emersion/soju.(*upstreamConn).abortPendingCommands(0x6811c9c0) ~/soju/upstream.go:338 +0x953 git.sr.ht/~emersion/soju.(*user).handleUpstreamDisconnected(0x680b7080, 0x6811c9c0) ~/soju/user.go:744 +0x6d git.sr.ht/~emersion/soju.(*user).updateNetwork(0x680b7080, {0xb99a00, 0x684690e0}, 0x681343c0) ~/soju/user.go:936 +0x387 git.sr.ht/~emersion/soju.handleServiceNetworkUpdate({0xb99a00, 0x684690e0}, 0x68116000, {0x681b8a20?, 0x40429108?, 0x10?}) ~/soju/service.go:590 +0x14f git.sr.ht/~emersion/soju.handleServicePRIVMSG({0xb99a00, 0x684690e0}, 0x68116000, {0x680af5d5?, 0x1?}) ~/soju/service.go:146 +0x7df git.sr.ht/~emersion/soju.(*downstreamConn).handleMessageRegistered(0x68116000, {0xb99a00, 0x684690e0}, 0x681b8940) ~/soju/downstream.go:2503 +0x9e9e git.sr.ht/~emersion/soju.(*downstreamConn).handleMessage(0x68116000, {0xb999c8?, 0x680240a0?}, 0x681b8940) ~/soju/downstream.go:727 +0xde git.sr.ht/~emersion/soju.(*user).run(0x680b7080) ~/soju/user.go:690 +0xe05 git.sr.ht/~emersion/soju.(*Server).addUserLocked.func1() ~/soju/server.go:327 +0x70 created by git.sr.ht/~emersion/soju.(*Server).addUserLocked ~/soju/server.go:314 +0x178 |
||
---|---|---|
cmd | ||
config | ||
contrib | ||
doc | ||
.build.yml | ||
.editorconfig | ||
.gitignore | ||
bridge.go | ||
certfp.go | ||
config.in | ||
conn.go | ||
db_postgres_test.go | ||
db_postgres.go | ||
db_sqlite_test.go | ||
db_sqlite.go | ||
db.go | ||
downstream.go | ||
go.mod | ||
go.sum | ||
ident.go | ||
irc_test.go | ||
irc.go | ||
LICENSE | ||
Makefile | ||
msgstore_fs.go | ||
msgstore_memory.go | ||
msgstore.go | ||
net_go113.go | ||
net_go116.go | ||
rate.go | ||
README.md | ||
server_test.go | ||
server.go | ||
service_test.go | ||
service.go | ||
upstream.go | ||
user.go |
soju
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
- BSD or GNU make
- 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, set 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