soju forked to be LESS SHIT
Go to file
delthas eb941d2d2b
Send one NOTICE on new upstream disconnect/connect errors
In order to notify the user when we are disconnected from a network
(either due to an error, or due a QUIT), and when we fail reconnecting,
this commit adds support for sending a short NOTICE message from the
service user to all relevant downstreams.

The last error is stored, and cleared on successful connection, to
ensure that the user is *not* flooded with identical connection error
messages, which can often happen when a server is down.

No lock is needed on lastError because it is only read and modified from
the user goroutine.

Closes: https://todo.sr.ht/~emersion/soju/27
2020-04-04 17:33:09 +02:00
cmd Add support for bouncer logs 2020-03-28 00:07:20 +01:00
config config: use shlex 2020-04-01 14:58:14 +02:00
doc doc: document auto-away feature 2020-04-03 17:25:53 +02:00
.build.yml ci: add builds.sr.ht manifest 2020-03-18 10:28:58 +01:00
.gitignore doc: document "network delete" 2020-04-01 17:38:09 +02:00
bridge.go Add downstream TOPIC support 2020-03-26 22:27:46 +01:00
conn.go Introduce conn for common connection logic 2020-04-03 16:35:08 +02:00
db.go Fix SQL error logged on JOIN 2020-04-01 17:34:22 +02:00
downstream.go Add NOTICE messages to ring buffer 2020-04-03 21:00:19 +02:00
go.mod Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
go.sum Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
irc.go Request server-time cap 2020-03-31 19:45:04 +02:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
logger.go Add time tag to all messages 2020-04-03 20:48:23 +02:00
Makefile Move man page to doc/ 2020-03-27 19:23:41 +01:00
README.md readme: advise connecting with "<username>/<network>" 2020-03-31 18:41:14 +02:00
ring.go Stop ring consumers when deleting network 2020-04-01 15:48:56 +02:00
schema.sql schema: add Network.name 2020-03-19 00:06:48 +01:00
server.go Introduce conn for common connection logic 2020-04-03 16:35:08 +02:00
service.go Send one NOTICE on new upstream disconnect/connect errors 2020-04-04 17:33:09 +02:00
upstream.go Send one NOTICE on new upstream disconnect/connect errors 2020-04-04 17:33:09 +02:00
user.go Send one NOTICE on new upstream disconnect/connect errors 2020-04-04 17:33:09 +02:00

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

sqlite3 soju.db <schema.sql
go run ./cmd/sojuctl create-user <username>
go run ./cmd/soju

Then connect with username <username>/chat.freenode.net and join #soju.

See the man page at soju.1.scd for more information.

Contributing

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

License

AGPLv3, see LICENSE.

Copyright (C) 2020 Simon Ser