61 Commits

Author SHA1 Message Date
contact
7cce9c4a31 doc/soju.1: add descriptions for all flags for "user create"
git-svn-id: file:///srv/svn/repo/suika/trunk@631 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 19:31:12 +00:00
contact
18b7972e80 doc/soju.1: use angle-brackets for URL
Helps a bit terminal emulators to recognize the link.

git-svn-id: file:///srv/svn/repo/suika/trunk@630 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 19:27:48 +00:00
contact
c0502705d1 service: allow updating other users
git-svn-id: file:///srv/svn/repo/suika/trunk@625 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 07:11:14 +00:00
hubert
bbe15df672 PostgreSQL support
git-svn-id: file:///srv/svn/repo/suika/trunk@620 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-11 13:21:04 +00:00
contact
1004b91f55 Add "server notice" command
git-svn-id: file:///srv/svn/repo/suika/trunk@615 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-08 08:52:03 +00:00
contact
8dda53c683 Add max-user-networks config option
git-svn-id: file:///srv/svn/repo/suika/trunk@612 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-07 18:43:10 +00:00
contact
3547bb7749 doc/soju.1: mention that accept-proxy-ip affects PROXY proto
git-svn-id: file:///srv/svn/repo/suika/trunk@611 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-07 18:04:20 +00:00
contact
ae7aef71b3 Add "server status" command
Right now, it prints the number of active users and number of
downstream connections.

git-svn-id: file:///srv/svn/repo/suika/trunk@605 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-05 17:13:53 +00:00
delthas
f4e57fd264 service: Introduce network quote
This command enables sending a raw line to a specific network.

git-svn-id: file:///srv/svn/repo/suika/trunk@577 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-07-07 08:34:46 +00:00
contact
3a1ac8372b doc/soju.1: improve "user create" docs
git-svn-id: file:///srv/svn/repo/suika/trunk@571 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-28 14:55:49 +00:00
contact
7bb23b2164 Merge "change-password" into "user update"
Add a -password flag to the "user update" command.

git-svn-id: file:///srv/svn/repo/suika/trunk@570 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-28 14:55:44 +00:00
contact
474d6e3ccd Add per-user realname setting
This allows users to set a default realname used if the per-network
realname isn't set.

A new "user update" command is introduced and can be extended to edit
other user properties and other users in the future.

git-svn-id: file:///srv/svn/repo/suika/trunk@568 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-25 18:33:13 +00:00
contact
84e9f30865 doc/soju.1: document bouncer-wide broadcasts
git-svn-id: file:///srv/svn/repo/suika/trunk@564 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-23 17:30:47 +00:00
contact
8a7264f55f doc/soju.1: explain http-origin defaults
git-svn-id: file:///srv/svn/repo/suika/trunk@556 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-11 08:26:22 +00:00
contact
73e8ea27b7 doc/ext/bouncer-networks: fix typo
git-svn-id: file:///srv/svn/repo/suika/trunk@548 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-29 11:18:06 +00:00
contact
30c6e9e954 Allow networks to be disabled
git-svn-id: file:///srv/svn/repo/suika/trunk@542 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-26 08:51:02 +00:00
contact
52add75a86 doc/getting-started: s/Freenode/Libera Chat/
git-svn-id: file:///srv/svn/repo/suika/trunk@541 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-26 06:39:06 +00:00
contact
6de426954b Add channel status service command
git-svn-id: file:///srv/svn/repo/suika/trunk@539 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 17:22:22 +00:00
contact
ac62ccdfbc Vendor BATCH bouncer-networks type
And add the prefix throughout the spec, to make it clear the unprefixed
version is not to be used.

git-svn-id: file:///srv/svn/repo/suika/trunk@537 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:56:38 +00:00
contact
b736ba981b Introduce the soju.im/bouncer-networks-notify capability
git-svn-id: file:///srv/svn/repo/suika/trunk@535 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
66c64aa42f Add pass to bouncer network attributes
git-svn-id: file:///srv/svn/repo/suika/trunk@533 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
f00821626a Implement the soju.im/bouncer-networks extension
git-svn-id: file:///srv/svn/repo/suika/trunk@532 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
acbb420d9c doc/soju.1: document user delete command
git-svn-id: file:///srv/svn/repo/suika/trunk@525 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-22 08:44:36 +00:00
contact
7225f0f5e9 doc/soju.1: document -connect-command
git-svn-id: file:///srv/svn/repo/suika/trunk@524 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-22 08:40:36 +00:00
contact
54f3d31823 readme: move quickstart to dedicated doc page
git-svn-id: file:///srv/svn/repo/suika/trunk@522 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-21 22:01:06 +00:00
contact
7bfba6f771 Make db and log config options more future-proof
Rename the "sql" directive to "db". Rename the "log" directive to
"log fs".

In the future, we'll maybe support more databases and more message
stores. Make it so it's easy to integrate these new festures to the
config file format.

git-svn-id: file:///srv/svn/repo/suika/trunk@507 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-04-21 16:15:04 +00:00
contact
04d4691eda cmd/soju: allow specifying -listen multiple times
Closes: https://todo.sr.ht/~emersion/soju/67

git-svn-id: file:///srv/svn/repo/suika/trunk@491 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-31 17:02:40 +00:00
contact
81f1effe62 Reload TLS certs on SIGHUP
References: https://todo.sr.ht/~emersion/soju/42

git-svn-id: file:///srv/svn/repo/suika/trunk@475 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-18 13:07:03 +00:00
contact
8ad8706f79 Add Unix socket listener
Closes: https://todo.sr.ht/~emersion/soju/51

git-svn-id: file:///srv/svn/repo/suika/trunk@466 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-16 08:27:40 +00:00
delthas
5843897b92 service: Introduce channel update
This adds the `channel update` service command, which is used to set the
auto-detach, auto-reattach, and message relaying settings of a channel.

Of note is that currently the parser parses `#` as a comment, which
means any `channel update #foo ...` will actually need to be escaped to
`channel update "#foo" ...`

git-svn-id: file:///srv/svn/repo/suika/trunk@436 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-12-14 19:54:02 +00:00
contact
55806cb0b0 Don't accept any IP as a proxy by default
It's too easy to setup a reverse proxy which doesn't support the PROXY
protocol, or lets the X-Forwarded-For header fields pass through.
Disable this by default.

To restore the previous behaviour, add `accept-proxy-ip localhost` to
the config file.

git-svn-id: file:///srv/svn/repo/suika/trunk@426 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-10-25 17:22:12 +00:00
contact
4b7854b268 doc: add ident server to man page
git-svn-id: file:///srv/svn/repo/suika/trunk@386 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-08-11 09:03:20 +00:00
admin
58f185b9a2 doc: fix typo in man page
git-svn-id: file:///srv/svn/repo/suika/trunk@372 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-23 21:31:37 +00:00
contact
1e0e265c48 Add accept-proxy-ip config directive
This allows to set the list of IPs allowed to act as a proxy. This is
only used for WebSockets right now, but will be expanded to TCP as well
once the PROXY protocol is supported.

git-svn-id: file:///srv/svn/repo/suika/trunk@370 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 15:03:01 +00:00
contact
2ebc03a712 Change unix:// to irc+unix://
When Unix socket support will be added for listeners, unix:// will be
ambiguous. It won't be clear whether to setup an IRC server, or some
other kind of server (e.g. identd).

unix:// is still recognized to avoid breaking existing DBs.

git-svn-id: file:///srv/svn/repo/suika/trunk@369 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 13:44:19 +00:00
contact
06cc81a33e doc: add example config file in man page
git-svn-id: file:///srv/svn/repo/suika/trunk@368 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 13:43:22 +00:00
contact
8dddba2c84 doc: mention SASL EXTERNAL in the CertFP docs
git-svn-id: file:///srv/svn/repo/suika/trunk@365 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:51:32 +00:00
contact
e0210a0ced Rename certfp reset to sasl reset
And make it reset all SASL credentials.

git-svn-id: file:///srv/svn/repo/suika/trunk@364 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:20:52 +00:00
contact
869942603b Add a sasl set-plain command
This allows to manually set the SASL credentials for a network.

git-svn-id: file:///srv/svn/repo/suika/trunk@363 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:16:13 +00:00
contact
3c2981df11 doc: document the network update command
git-svn-id: file:///srv/svn/repo/suika/trunk@361 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:04:26 +00:00
contact
e55e59080e Add support for upstream Unix socket connections
References: https://todo.sr.ht/~emersion/soju/51

git-svn-id: file:///srv/svn/repo/suika/trunk@353 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-06 15:31:11 +00:00
kl
8851fa97a9 docs: Fix manpage syntax
git-svn-id: file:///srv/svn/repo/suika/trunk@331 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-10 14:10:17 +00:00
delthas
6a71f953cb Add support for the user create admin service command
This adds support for user create, a new service command only accessible
to admin users. This lets users create other users on the fly and makes
soju start the user routine immediately; unlike sojuctl which currently
requires closing soju, creating the user, and starting soju again.

git-svn-id: file:///srv/svn/repo/suika/trunk@329 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-08 20:30:09 +00:00
contact
f38af41317 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

git-svn-id: file:///srv/svn/repo/suika/trunk@323 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-07 12:13:46 +00:00
contact
73e3e9a645 doc: update URL to sr.ht hub in man page
git-svn-id: file:///srv/svn/repo/suika/trunk@321 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-05 22:23:25 +00:00
contact
d0e4ccf213 doc: add missing change-password service command
git-svn-id: file:///srv/svn/repo/suika/trunk@320 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-05 22:21:37 +00:00
contact
adbb37b8d7 Allow multiple listeners, default to ircs
Users can now specify multiple "listen" directives in their
configuration file. If -listen is specified on the CLI, it's added to
the list of listeners.

Listeners are now parsed as URLs. If the scheme is missing "ircs" is
assumed. URLs allow to enable/disable TLS on a per-listener basis and
will be used for Unix sockets too.

The default listening address is changed from irc+insecure://:6667 to
ircs://:6697. This avoids setting up an insecure listener opened to
everybody.

git-svn-id: file:///srv/svn/repo/suika/trunk@317 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-04 18:16:23 +00:00
fox.cpp
5f49770e07 Implement upstream SASL EXTERNAL support
Closes: https://todo.sr.ht/~emersion/soju/47

git-svn-id: file:///srv/svn/repo/suika/trunk@307 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-02 09:24:22 +00:00
contact
9f84047153 Add support for detached channels
Channels can now be detached by leaving them with the reason "detach",
and re-attached by joining them again. Upon detaching the channel is
no longer forwarded to downstream connections. Upon re-attaching the
history buffer is sent.

git-svn-id: file:///srv/svn/repo/suika/trunk@284 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-05-01 13:18:14 +00:00
delthas
67237abdea Add support for the irc+insecure address scheme
Some servers do not support TLS, or have invalid, expired or self-signed
TLS certificates. While the right fix would be toi contact each server
owner to add support for valid TLS, supporting plaintext upstream
connections is sometimes necessary.

This adds support for the irc+insecure address scheme, which connects to
a network in plain-text over TCP.

git-svn-id: file:///srv/svn/repo/suika/trunk@270 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-04-28 09:41:13 +00:00