Hubert Hirtz
bc83d3a3ba
Use NULL-tolerant comparison for DeliveryReceipts
...
Since NULL = NULL is always FALSE, this query needs to use IS instead.
This should fix the flood of DeliveryReceipts in the DB.
See https://www.sqlite.org/lang_expr.html
> The IS and IS NOT operators work like = and != except when one or both
> of the operands are NULL. In this case, if both operands are NULL,
> then the IS operator evaluates to 1 (true) and the IS NOT operator
> evaluates to 0 (false). If one operand is NULL and the other is not,
> then the IS operator evaluates to 0 (false) and the IS NOT operator is
> 1 (true). It is not possible for an IS or IS NOT expression to
> evaluate to NULL.
2021-09-14 18:38:58 +02:00
Hubert Hirtz
4dce5a91c9
Explicitly close connection to SQLite on failed upgrade
2021-09-13 17:14:04 +02:00
Simon Ser
8adf65ade2
Upgrade dependencies
2021-09-13 14:23:33 +02:00
Simon Ser
0f2f4de275
Send empty history for service
...
Fixes error when fetching chat history for BouncerServ.
2021-09-13 11:36:25 +02:00
Simon Ser
fba1fdb31e
Don't require upstream to be connected for CHATHISTORY
...
Closes: https://todo.sr.ht/~emersion/soju/127
2021-09-13 11:25:38 +02:00
Simon Ser
cd64a7ffda
Split unmarshalEntity into two functions
...
Some command handlers need to unmarshal without requiring the
upstream to be connected.
2021-09-13 11:14:47 +02:00
Simon Ser
79b0fe5de5
Don't send network notification when removed
...
Closes: https://todo.sr.ht/~emersion/soju/123
2021-09-13 10:33:46 +02:00
Simon Ser
a4a9b7e934
go fmt: add go:build tags
...
This is the new style for build tags. The old +build format is
deprecated.
2021-09-09 10:07:37 +02:00
Rafael Castillo
d1181b3e7a
Check for TLS config in wss listeners
...
Previously http.Server.ListenAndServeTLS would return a not very helpful
error about a failed open. This adds a check similar to the one in the
ircs case that should make it clearer to operators what the error is.
2021-09-09 10:06:31 +02:00
Simon Ser
c5d5259243
Pass-through CLIENTTAGDENY in ISUPPORT
2021-07-09 22:48:58 +02:00
Simon Ser
51df11a55f
contrib/clients: sort alphabetically and wrap lines
2021-07-07 10:37:18 +02:00
delthas
9814901f56
contrib/clients: Mention Hexchat
2021-07-07 10:36:02 +02:00
delthas
896caebfcf
service: Introduce network quote
...
This command enables sending a raw line to a specific network.
2021-07-07 10:34:46 +02:00
Hubert Hirtz
f4562a7534
Add a C compiler to the list of dependencies
...
It's needed to build sqlite3.
2021-07-07 10:32:16 +02:00
Alexey Yerin
12545c07ef
service: show SHA-512 fingerprint
...
Closes: https://todo.sr.ht/~emersion/soju/130
2021-07-06 16:34:15 +02:00
Simon Ser
9f2e0595b7
ci: add gofmt check
2021-06-29 22:24:44 +02:00
Jake Nelson
fc841b0ba2
Sort channel status
channels by name
2021-06-29 22:19:19 +02:00
Simon Ser
acde97ca37
Introduce user.updateUser
...
Unify updatePassword and updateRealname into a single function. This
allows "user update" to be atomic.
2021-06-28 18:05:03 +02:00
Simon Ser
00538e7028
doc/soju.1: improve "user create" docs
2021-06-28 16:55:49 +02:00
Simon Ser
09b04792b9
Merge "change-password" into "user update"
...
Add a -password flag to the "user update" command.
2021-06-28 16:55:44 +02:00
Simon Ser
f8e853fab1
Only update realname if specified in "user udpate"
...
This will allow adding more flags.
2021-06-28 16:40:49 +02:00
Simon Ser
a14f646135
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.
2021-06-25 20:33:13 +02:00
Simon Ser
9a53d4cd08
readme: list dependencies
2021-06-24 21:32:54 +02:00
Hubert Hirtz
a21585ac41
Hand-made word splitter for BouncerServ
...
Remove the (direct) dependency on shlex (go-scfg still depends on it).
Co-authored-by: Simon Ser <contact@emersion.fr>
2021-06-24 19:33:46 +02:00
Simon Ser
f3f864dddc
Disallow '$' in nicks
2021-06-23 19:54:22 +02:00
Simon Ser
089608409e
doc/soju.1: document bouncer-wide broadcasts
2021-06-23 19:30:47 +02:00
Simon Ser
d7b1c5a9a2
Allow admins to broadcast message to all bouncer users
...
Typically done via:
/notice $<bouncer> <message>
Or, for a connection not bound to a specific network:
/notice $* <message>
The message is broadcast as BouncerServ, because that's the only
user that can be trusted to belong to the bouncer by users. Any
other prefix would conflict with the upstream network.
2021-06-23 19:23:09 +02:00
Simon Ser
eca4c41223
Unify downstream PRIVMSG and NOTICE handling
...
We were doing some things wrong here, e.g. not sending echo messages
for NOTICE.
2021-06-23 18:17:30 +02:00
Simon Ser
fb50d70b70
Forward LUSERS and STATS messages after initial registration
2021-06-23 11:45:14 +02:00
Simon Ser
faa89333bf
Add support for utf8-only
2021-06-15 15:48:10 +02:00
Simon Ser
b609b86f97
Add support for account-tag
2021-06-14 21:44:38 +02:00
Gregory Anders
cacbd48949
Slightly relax new log file permissions
...
Make new log files group-readable by default. To retain the prior
behavior, soju can be started with a umask set to 0077.
2021-06-14 17:58:36 +02:00
Simon Ser
387338e499
contrib/clients: add reference to Weechat script
2021-06-12 14:48:32 +02:00
Simon Ser
520ed76adf
doc/soju.1: explain http-origin defaults
2021-06-11 10:26:22 +02:00
Simon Ser
0557ca5871
Don't suggest users to /motd in multi-upstream mode
2021-06-10 12:16:33 +02:00
Simon Ser
2b3782a507
Make user MODE commands fail in multi-upstream mode
...
References: https://todo.sr.ht/~emersion/soju/20
2021-06-10 11:24:10 +02:00
Gregory Anders
0e9ef1f97c
Forward user mode changes in single-upstream mode
...
References: https://todo.sr.ht/~emersion/soju/20
2021-06-10 11:17:00 +02:00
Gregory Anders
2fe0a57e43
Forward MOTD messages downstream
...
The first MOTD upon connection is ignored, but subsequent MOTD messages
(requested by the "MOTD" message from the client, typically using a
/motd command) are forwarded.
2021-06-09 21:29:36 +02:00
Simon Ser
0081c96ec0
Add downstreamConn.SendBatch helper
2021-06-05 12:38:52 +02:00
Simon Ser
bd41e3bd2b
Prune detached channels from CHATHISTORY TARGETS
2021-06-04 11:27:59 +02:00
Simon Ser
18439f0de5
Implement CHATHISTORY TARGETS
...
References: https://github.com/ircv3/ircv3-specifications/pull/450
2021-06-02 20:32:11 +02:00
Simon Ser
95ae92860f
doc/ext/bouncer-networks: fix typo
2021-05-29 13:18:06 +02:00
Simon Ser
0f3dd2f2b1
Forward unknown commands to upstream in single-upstream mode
2021-05-28 11:15:15 +02:00
Simon Ser
b0b913293e
Send placeholder when no network/channel is returned by BouncerServ
2021-05-26 11:27:59 +02:00
Simon Ser
517be78868
Reject JOIN with invalid channel names
...
This prevents us from storing typo'ed channel names in the DB.
2021-05-26 11:23:09 +02:00
Simon Ser
4b6a529b69
Fix typo in BOUNCER notifications: s/status/state/
2021-05-26 11:08:10 +02:00
Simon Ser
b0349caada
Broadcast BOUNCER notifications to all downstream connections
...
We weren't sending them to downstreams which weren't bound to a
network.
2021-05-26 11:04:33 +02:00
Simon Ser
7d648f702e
Allow networks to be disabled
2021-05-26 10:51:02 +02:00
Simon Ser
d9a40addf7
doc/getting-started: s/Freenode/Libera Chat/
2021-05-26 08:39:06 +02:00
Simon Ser
47c514a9cf
Add support for IRCv3 setname
...
References: https://todo.sr.ht/~emersion/soju/41
2021-05-25 20:24:45 +02:00