Nikita Vilunov
2b54260f0b
feat(xmpp): improve disco responses
2023-04-05 22:37:33 +02:00
Nikita Vilunov
f71d098420
feat(xmpp): handle stream stop, dump tls keys
2023-04-05 18:57:35 +02:00
Nikita Vilunov
fb8329a187
feat(xmpp): add stream id
2023-04-05 14:31:44 +02:00
Nikita Vilunov
65471a6c7f
split xmpp stanzas handling into functions
2023-03-30 14:49:39 +02:00
Nikita Vilunov
123781d145
feat(xmpp): disco stub handlers
2023-03-30 14:31:20 +02:00
Nikita Vilunov
fbb7349585
feat(xmpp): improve jid model
2023-03-29 01:12:12 +02:00
Nikita Vilunov
a2a0a8914d
feat(xmpp): rewrite handling of output xml events
2023-03-29 00:36:12 +02:00
Nikita Vilunov
fb2cbf8a8c
feat(xmpp): serialization of disco iqs
2023-03-29 00:34:12 +02:00
Nikita Vilunov
4ce97f8e13
add disco iqs to all iqs
2023-03-27 23:52:31 +02:00
Nikita Vilunov
63704d6010
use macro in muc parsing
2023-03-27 23:47:14 +02:00
Nikita Vilunov
7b2bfae147
feat(xmpp): parse disco queries
2023-03-27 23:45:44 +02:00
Nikita Vilunov
0e78f24fbd
feat(xmpp): implement muc base element parsing
2023-03-25 17:56:21 +01:00
Nikita Vilunov
a73bbdb5f1
fix handling of \r in xmpp stream
2023-03-24 01:38:42 +01:00
Nikita Vilunov
9110ab9beb
rewrite presence parser as a generator
2023-03-23 02:20:30 +01:00
Nikita Vilunov
d0f807841c
generator-based parsing of xmpp stanzas
2023-03-23 01:37:02 +01:00
Nikita Vilunov
bba1ea107d
fix some warnings
2023-03-21 22:50:40 +01:00
Nikita Vilunov
71d7323534
remove unused struct
2023-03-21 01:17:48 +01:00
Nikita Vilunov
3e1bb53c1b
feat(xmpp): respond to unknown IQs with errors
2023-03-21 01:16:02 +01:00
Nikita Vilunov
a65ea89ce1
feat(xmpp): make presence polymorphic wrt any fields
2023-03-20 17:25:14 +01:00
Nikita Vilunov
1cc4761aeb
feat(xmpp): presence parsing
2023-03-15 15:27:48 +01:00
Nikita Vilunov
6add6db371
feat(xmpp): roster query stub
2023-03-12 22:50:28 +01:00
Nikita Vilunov
33dbfba116
feat(xmpp): implement session iq
2023-03-12 14:15:13 +01:00
Nikita Vilunov
4107c5b663
feat(xmpp): answer to bind requests
2023-03-12 13:25:23 +01:00
Nikita Vilunov
4730526fee
feat(xmpp): glue parsing of incoming messages together
2023-03-12 00:30:48 +01:00
Nikita Vilunov
443f6a2c90
feat(xmpp): iq body ADT with parsing
2023-03-11 18:36:38 +01:00
Nikita Vilunov
f131454cb2
feat(xmpp): parsing of bind request
2023-03-11 16:07:02 +01:00
Nikita Vilunov
d444fc407b
feat(xmpp): iq parsing
2023-03-08 19:56:53 +01:00
Nikita Vilunov
27bbabbbbd
feat(xmpp): initial parsing of ordinary stream events
2023-03-07 16:28:29 +01:00
Nikita Vilunov
d1dad72c08
feat(xmpp): push-based message parser
2023-03-07 14:56:31 +01:00
Nikita Vilunov
dc788a89c4
feat(xmpp): extract tls xml defns into a separate module
2023-03-06 12:49:51 +01:00
Nikita Vilunov
f1eff730a2
feat(xmpp): refactor the projection
2023-03-06 12:05:33 +01:00
Nikita Vilunov
42c22d045f
feat(xmpp): implement socket start negotiation up to auth
2023-03-05 22:04:28 +01:00
Nikita Vilunov
435da6663a
feat(xmpp): serialization of stream start
2023-02-28 12:12:03 +01:00
Nikita Vilunov
494ddc7ee1
feat(xmpp): placeholder for xmpp projection and example of xml
2023-02-28 00:05:30 +01:00
Nikita Vilunov
0adc19558d
remove Terminator::from_raw
2023-02-22 16:05:28 +01:00
Nikita Vilunov
bbd68853ae
graceful shutdown of irc socket listener
2023-02-22 15:40:05 +01:00
Nikita Vilunov
49a975e66e
fix irc integration tests
2023-02-17 22:12:29 +01:00
Nikita Vilunov
266eafe6e6
handle QUIT cmd
2023-02-17 00:38:34 +01:00
Nikita Vilunov
e813fb7c69
implement room bans
2023-02-16 22:49:17 +01:00
Nikita Vilunov
204126b9fb
return user's mode to themselves
2023-02-16 20:53:37 +01:00
Nikita Vilunov
63f31aa42f
support who for global channels
2023-02-16 19:47:51 +01:00
Nikita Vilunov
69bccef3bf
fix WHO replies
2023-02-16 19:33:36 +01:00
Nikita Vilunov
81ee1c1044
implement WHO irc command for queries on self
2023-02-16 18:39:54 +01:00
Nikita Vilunov
30db029390
make irc update handler a separate function
2023-02-16 16:33:44 +01:00
Nikita Vilunov
1e17e017cf
make PlayerCommand mod-private
2023-02-15 21:49:52 +01:00
Nikita Vilunov
203db3b207
handle part commands
2023-02-15 18:54:48 +01:00
Nikita Vilunov
1bc305962e
endpoint with a list of rooms
2023-02-15 18:10:54 +01:00
Nikita Vilunov
a03a3a11a3
handle connection termination
2023-02-15 17:47:48 +01:00
Nikita Vilunov
23898038e1
fix some warnings
2023-02-14 23:49:56 +01:00
Nikita Vilunov
7dfe6e0295
fix some stuff
2023-02-14 23:43:59 +01:00
Nikita Vilunov
3950ee1d7a
refactor player actor a bit
2023-02-14 23:38:40 +01:00
Nikita Vilunov
05f8c5e502
rework commands and updates.
...
updates from rooms are send only to users other than the initiator.
updates from player are send only to connections other than the one the command was sent from.
2023-02-14 23:22:04 +01:00
Nikita Vilunov
39fed80106
warn on unhandled irc message
2023-02-14 20:56:31 +01:00
Nikita Vilunov
4e5ccd604c
rename socket => connection for consistency
2023-02-14 20:45:22 +01:00
Nikita Vilunov
57ea2dd2d7
introduce Updates as a common player and connection event
2023-02-14 20:42:52 +01:00
Nikita Vilunov
265b78dc51
improve newtypes
2023-02-14 20:07:07 +01:00
Nikita Vilunov
c845f5d4ca
handle topic command
2023-02-14 19:46:42 +01:00
Nikita Vilunov
d10cddec61
send channels on connect
2023-02-14 19:28:49 +01:00
Nikita Vilunov
a8d6a98a5b
produce join messages on joins from other connections
2023-02-14 18:55:09 +01:00
Nikita Vilunov
cef0269828
send chat members list on connection
2023-02-14 01:44:03 +01:00
Nikita Vilunov
ec819d37ea
make room a data structure behind a rwlock instead of an actor
2023-02-14 01:42:04 +01:00
Nikita Vilunov
315b7e638b
add irc integration tests
2023-02-13 21:58:44 +01:00
Nikita Vilunov
b1b8ec800e
tests for irc
2023-02-13 21:04:08 +01:00
Nikita Vilunov
7f5fa955ec
introduce player connection
2023-02-13 20:16:00 +01:00
Nikita Vilunov
6d330c0fcd
split irc connection handler into functions
2023-02-13 19:58:05 +01:00
Nikita Vilunov
d661f68fb6
implemen sending messages to a chan
2023-02-13 19:32:52 +01:00
Nikita Vilunov
89f85b4fee
handle join and privmsg irc commands
2023-02-13 18:08:37 +01:00
Nikita Vilunov
20b461e81c
handle irc join commands
2023-02-13 00:31:16 +01:00
Nikita Vilunov
ae27c04b0a
add active players and rooms gauges
2023-02-12 23:23:52 +01:00
Nikita Vilunov
bd63732e25
fix server message serialization tests
2023-02-12 13:15:31 +01:00
Nikita Vilunov
d5d0c6e73e
rewrite server message writes as async, introduce error handling
2023-02-10 22:27:29 +01:00
Nikita Vilunov
69406cb33b
implement irc client registration
2023-02-10 19:47:58 +01:00
Nikita Vilunov
e0135a8ea6
implement pings
2023-02-10 18:09:29 +01:00
Nikita Vilunov
5d57df3219
add support for additional irc messages types
2023-02-10 11:46:10 +01:00
Nikita Vilunov
e5d0722fe0
split irc proto in server in client modules
2023-02-09 20:26:05 +01:00
Nikita Vilunov
c18f152e25
add metrics to irc projection
2023-02-09 20:01:21 +01:00
Nikita Vilunov
7a988f39b5
remove trivial projection
2023-02-09 19:31:45 +01:00
Nikita Vilunov
08fe958d60
clean stuff, move metrics endpoint onto a separate port
2023-02-09 19:19:03 +01:00
Nikita Vilunov
e0ae11c02d
irc parsing and initial projection
2023-02-09 18:16:15 +01:00
Nikita Vilunov
f9a6d8bdfc
reorder modules a bit
2023-02-04 02:01:49 +01:00
Nikita Vilunov
b7995584f0
implement multiple rooms
2023-02-03 23:43:59 +01:00
Nikita Vilunov
03b0ababa7
handle client-side ws error
2023-01-31 22:30:55 +01:00
Nikita Vilunov
dd8cf0fbf0
add integration tests for ws, rewrite ws handling
2023-01-31 18:32:35 +01:00
Nikita Vilunov
f4dda9fb4b
simple broadcast of messages
2023-01-31 13:55:47 +01:00
Nikita Vilunov
492f415947
remove unused client target
2023-01-28 00:44:13 +04:00
Nikita Vilunov
d6b2289221
prometheus example usage
2023-01-28 00:43:20 +04:00
Nikita Vilunov
0b0c432bb8
add a simple router
2023-01-27 01:11:28 +04:00
Nikita Vilunov
31ffe41929
websocket basic implementation
2023-01-25 16:50:14 +04:00
Nikita Vilunov
d94d03466a
move tcp client into separate module
2023-01-19 18:58:56 +01:00
Nikita Vilunov
734ca6c423
http server
2023-01-19 18:18:41 +01:00
Nikita Vilunov
1950453cae
initial
2023-01-19 15:25:52 +01:00