Nikita Vilunov 
							
						 
						
							
								8b05c852e7 
								
							 
						 
						
							
							
								
								send subject  
							
							
							
						 
						
							2024-05-15 14:18:19 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								b2a06ef984 
								
							 
						 
						
							
							
								
								xmpp: add x-user element to muc presence response  
							
							
							
						 
						
							2024-05-14 03:21:06 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								89918d9de1 
								
							 
						 
						
							
							
								
								xmpp: add item-not-found error condition to room disco#info iq  
							
							
							
						 
						
							2024-05-13 16:42:52 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								26720a2a08 
								
							 
						 
						
							
							
								
								core: separate the model from the logic implementation ( #66 )  
							
							... 
							
							
							
							This separates the core in two layers – the model objects and the `LavinaCore` service. Service is responsible for implementing the application logic and exposing it as core's public API to projections, while the model objects will be independent of each other and responsible only for managing and owning in-memory data.
The model objects include:
1. `Storage` – the open connection to the SQLite DB.
2. `PlayerRegistry` – creates, stores refs to, and stops player actors.
3. `RoomRegistry` – manages active rooms.
4. `DialogRegistry` – manages active dialogs.
5. `Broadcasting` – manages subscriptions of players to rooms on remote cluster nodes.
6. `LavinaClient` – manages HTTP connections to remote cluster nodes.
7. `ClusterMetadata` – read-only configuration of the cluster metadata, i.e. allocation of entities to nodes.
As a result:
1. Model objects will be fully independent of each other, e.g. it's no longer necessary to provide a `Storage` to all registries, or to provide `PlayerRegistry` and `DialogRegistry` to each other.
2. Model objects will no longer be `Arc`-wrapped; instead the whole `Services` object will be `Arc`ed and provided to projections.
3. The public API of `lavina-core` will be properly delimited by the APIs of `LavinaCore`, `PlayerConnection` and so on.
4. `LavinaCore` and `PlayerConnection` will also contain APIs of all features, unlike it was previously with `RoomRegistry` and `DialogRegistry`. This is unfortunate, but it could be improved in future.
Reviewed-on: lavina/lavina#66  
							
						 
						
							2024-05-13 14:32:45 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d1a72e7978 
								
							 
						 
						
							
							
								
								move repo methods into submodules and clean up warnings  
							
							
							
						 
						
							2024-05-10 23:50:34 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6749103726 
								
							 
						 
						
							
							
								
								scalability: initial support for remote rooms ( #61 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#61  
							
						 
						
							2024-05-10 20:44:24 +00:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								3b454ad7cd 
								
							 
						 
						
							
							
								
								xmpp: unit-tests for resource bind it and muc presence  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#64 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
							
						 
						
							2024-05-10 13:35:34 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								8ac64ba8f5 
								
							 
						 
						
							
							
								
								get rid of storage usages in projections  
							
							
							
						 
						
							2024-05-05 19:24:23 +02:00  
				
					
						
							
							
								
								homycdev 
							
						 
						
							
								abe9a26925 
								
							 
						 
						
							
							
								
								irc: implement WHOIS command ( #43 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#43 
Co-authored-by: homycdev <abdulkhamid98@gmail.com>
Co-committed-by: homycdev <abdulkhamid98@gmail.com> 
							
						 
						
							2024-05-05 17:21:40 +00:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								adf1d8c14c 
								
							 
						 
						
							
							
								
								xmpp: Implement Message Archive Management stub for XEP-0313 ( #60 )  
							
							... 
							
							
							
							https://xmpp.org/extensions/xep-0313.html 
Reviewed-on: lavina/lavina#60 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
						
							2024-05-05 15:12:58 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								a87f7c9d73 
								
							 
						 
						
							
							
								
								xmpp: extract common fragments of integration tests into functions  
							
							
							
						 
						
							2024-04-29 23:56:18 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								25605322a0 
								
							 
						 
						
							
							
								
								player shutdown API ( #58 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#58  
							
						 
						
							2024-04-29 17:24:43 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								31f9da9b05 
								
							 
						 
						
							
							
								
								xmpp: fix incorrect auth test  
							
							
							
						 
						
							2024-04-29 19:13:32 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								c69513f38b 
								
							 
						 
						
							
							
								
								xmpp: use mutable namespace and event in parser coroutines  
							
							
							
						 
						
							2024-04-28 17:19:31 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								8ec9ecfe2c 
								
							 
						 
						
							
							
								
								xmpp: handle incorrect credentials by replying with an error  
							
							
							
						 
						
							2024-04-28 17:11:29 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								a047d55ab5 
								
							 
						 
						
							
							
								
								xmpp: handle correctly unavailable self-presence and improve basic test scenario  
							
							
							
						 
						
							2024-04-28 15:43:22 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ea81ddadfc 
								
							 
						 
						
							
							
								
								dialog message persistence  
							
							
							
						 
						
							2024-04-27 12:58:27 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ec49489ef1 
								
							 
						 
						
							
							
								
								validate that rooms and dialogs are owned exclusively on shutdown  
							
							
							
						 
						
							2024-04-23 19:18:46 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d305f5bf77 
								
							 
						 
						
							
							
								
								argon2-based password hashing ( #55 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#55  
							
						 
						
							2024-04-23 16:31:00 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								799da8366c 
								
							 
						 
						
							
							
								
								basic dialog implementation with irc and xmpp support ( #53 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#53  
							
						 
						
							2024-04-23 16:26:40 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d805061d5b 
								
							 
						 
						
							
							
								
								refactor auth logic into a common module ( #54 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#54  
							
						 
						
							2024-04-23 10:10:10 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								12d30ca5c2 
								
							 
						 
						
							
							
								
								irc: implement server-time capability for incoming messages ( #52 )  
							
							... 
							
							
							
							Spec: https://ircv3.net/specs/extensions/server-time 
Reviewed-on: lavina/lavina#52  
							
						 
						
							2024-04-21 21:00:44 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ddb348bee9 
								
							 
						 
						
							
							
								
								refactor lavina core by grouping public services into a new LavinaCore struct.  
							
							... 
							
							
							
							this will be useful in future when additional services will be introduced and passed as dependencies 
							
						 
						
							2024-04-21 19:45:50 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6bba699d87 
								
							 
						 
						
							
							
								
								xmpp: disco-info iq for rooms  
							
							
							
						 
						
							2024-04-15 23:08:43 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6d493d83a3 
								
							 
						 
						
							
							
								
								xmpp: use the Jid type in IQs' to and from fields, separate presence handling  
							
							
							
						 
						
							2024-04-15 18:18:51 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								0105a5b710 
								
							 
						 
						
							
							
								
								persistent memberships ( #49 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#49  
							
						 
						
							2024-04-15 09:06:10 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								57b6af8732 
								
							 
						 
						
							
							
								
								xmpp: configurable server hostname ( #47 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#47  
							
						 
						
							2024-04-15 00:33:26 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								0944c449ca 
								
							 
						 
						
							
							
								
								xmpp: in integration tests extract server startup code  
							
							
							
						 
						
							2024-04-13 02:32:41 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								cccc05afe9 
								
							 
						 
						
							
							
								
								xmpp: ignore text elements with spaces at the stream root  
							
							
							
						 
						
							2024-04-11 23:08:09 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								8b099f9be2 
								
							 
						 
						
							
							
								
								xmpp: fix handling of the `bind` iq  
							
							
							
						 
						
							2024-04-07 12:06:23 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								adece11fef 
								
							 
						 
						
							
							
								
								xmpp: make xml-headers optional in the c2s stream  
							
							
							
						 
						
							2024-04-06 22:37:27 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ab61e975bf 
								
							 
						 
						
							
							
								
								xmpp: send correct errors on unknown iqs  
							
							
							
						 
						
							2024-04-06 22:37:27 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								fd437df67e 
								
							 
						 
						
							
							
								
								xmpp: buffer data outgoing over a TLS-stream  
							
							
							
						 
						
							2024-04-06 22:35:01 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								878ec33cbb 
								
							 
						 
						
							
							
								
								apply uniform formatting  
							
							
							
						 
						
							2024-03-20 19:59:15 +01:00  
				
					
						
							
							
								
								JustTestingV 
							
						 
						
							
								c6fb74a848 
								
							 
						 
						
							
							
								
								termination usage for stopping the socket connection gracefully ( #34 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#34 
Co-authored-by: JustTestingV <JustTestingV@gmail.com>
Co-committed-by: JustTestingV <JustTestingV@gmail.com> 
							
						 
						
							2024-02-18 16:46:29 +00:00  
				
					
						
							
							
								
								JustTestingV 
							
						 
						
							
								614be92be3 
								
							 
						 
						
							
							
								
								xmpp: no panic! ( #29 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#29 
Co-authored-by: JustTestingV <JustTestingV@gmail.com>
Co-committed-by: JustTestingV <JustTestingV@gmail.com> 
							
						 
						
							2024-01-22 15:13:19 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								85fa607e16 
								
							 
						 
						
							
							
								
								move sasl into separate crate  
							
							
							
						 
						
							2023-12-08 03:33:18 +01:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								4dbc68adfe 
								
							 
						 
						
							
							
								
								Update rust toolchain  
							
							
							
						 
						
							2023-11-20 17:19:12 +01:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ff806cc3d9 
								
							 
						 
						
							
							
								
								xmpp: split off stanza and update handling into modules ( #27 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#27  
							
						 
						
							2023-10-13 20:09:08 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								68c342aa44 
								
							 
						 
						
							
							
								
								xmpp: a basic integration test scenario ( #26 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#26  
							
						 
						
							2023-10-13 20:06:40 +00:00  
				
					
						
							
							
								
								JustTestingV 
							
						 
						
							
								9582160d2c 
								
							 
						 
						
							
							
								
								xmpp: logopass auth ( #19 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#19 
Co-authored-by: JustTestingV <JustTestingV@gmail.com>
Co-committed-by: JustTestingV <JustTestingV@gmail.com> 
							
						 
						
							2023-10-08 13:53:39 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								9fca913430 
								
							 
						 
						
							
							
								
								xmpp: fix parsing of unknown elements in messages ( #20 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#20  
							
						 
						
							2023-10-01 23:16:25 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								dc0a101fe6 
								
							 
						 
						
							
							
								
								split xmpp projection into a separate crate  
							
							
							
						 
						
							2023-10-01 01:47:18 +02:00