Commit Graph

18 Commits

Author SHA1 Message Date
Simon Ser 4f7b577734 database: add NewUser 2023-11-01 00:04:57 +01:00
Simon Ser e19dd8f0da database: add NewNetwork 2023-10-31 23:51:04 +01:00
Simon Ser 9659de8ff3 Add CHATHISTORY test 2023-05-23 13:06:22 +02:00
delthas 2713bcba34 Add administrative unix listen endpoint
This adds support for listening on a Unix socket for administrative
connections, that then use a simple protocol for communicating with
the service (BouncerServ) as an administrator with a global context.

The wire format used by the Unix socket is IRC, but without
registration or overheads.

Example session:

    >>> BOUNCERSERV
    <<< 461 * BOUNCERSERV :Not enough parameters
    >>> BOUNCERSERV :n s
    <<< :gensou FAIL BOUNCERSERV :this command must be run as a user
    >>> BOUNCERSERV :u s
    <<< :gensou PRIVMSG * :marisa: 2 networks
    <<< :gensou PRIVMSG * :alice: 1 networks
    <<< :gensou BOUNCERSERV OK
2023-02-06 15:15:09 +01:00
Simon Ser d67e59658d Use database.User.SetPassword in server tests 2023-01-30 11:20:27 +01:00
Simon Ser d7d9d45b45 Add a flag to disable users
Add a new flag to disable users. This can be useful to temporarily
deactivate an account without erasing data.

The user goroutine is kept alive for simplicity's sake. Most of the
infrastructure assumes that each user always has a running goroutine.
A disabled user's goroutine is responsible for sending back an error
to downstream connections, and listening for potential events to
re-enable the account.
2023-01-26 18:33:55 +01:00
Simon Ser 106d40dcd4 Upgrade to gopkg.in/irc.v4 2022-11-14 12:06:58 +01:00
Simon Ser a9949c2e95 database/sqlite: make optional
SQLite requires cgo, for some use cases this is undesirable.
2022-09-11 13:57:00 +02:00
Simon Ser 3a7dee8128 Introduce a database package 2022-05-09 15:08:04 +02:00
Simon Ser 2381e14d6a Use background context in tests 2021-11-17 12:04:24 +01:00
Simon Ser 9ec1f1a5b0 Add context args to Database interface
This is a mecanical change, which just lifts up the context.TODO()
calls from inside the DB implementations to the callers.

Future work involves properly wiring up the contexts when it makes
sense.
2021-10-18 19:15:15 +02:00
Simon Ser 1cd99ce2f7 Fix unused imports in tests 2021-10-11 16:01:50 +02:00
Simon Ser 2b8691ff40 Run server test with PostgreSQL too 2021-10-11 15:57:37 +02:00
Hubert Hirtz 6e06663615 PostgreSQL support 2021-10-11 15:21:04 +02:00
Simon Ser 0d2829c180 test: get rid of testUpstream
No need for this complexity.
2021-10-05 14:26:10 +02:00
Simon Ser c672763068 test: add NOTICE broadcast 2021-10-05 14:14:31 +02:00
Simon Ser 74297d607b test: add upstream 2021-10-05 14:03:17 +02:00
Simon Ser e4f22a8f40 Add basic server test 2021-10-05 12:11:40 +02:00