832 Commits

Author SHA1 Message Date
Lion Kortlepel
931d94b7d8
start integrating lua with the rest 2024-02-06 17:50:22 +01:00
Lion Kortlepel
43429eadb3
fixup 2024-02-06 00:11:31 +01:00
Lion Kortlepel
6af471f025
start working on event handlers 2024-02-05 20:45:46 +01:00
Lion Kortlepel
5468e5c854
make the compiler happy 2024-02-05 20:22:22 +01:00
Lion Kortlepel
a0241d1b36
replace literally the entire lua engine 2024-02-05 19:49:39 +01:00
Lion Kortlepel
55fff0138b
remove old lua stuff 2024-02-05 19:49:16 +01:00
Lion Kortlepel
94ea20b6b7
add AGPL-3.0 license header 2024-02-05 19:48:46 +01:00
Lucca Jiménez Könings
f5532ec105
remove unecessary comment
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
9c44c1fbe8
move undef macros into Compat.h
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
0bc3676e8e
document FreeBSD specific undefs
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
fb0590653d
fix typo
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
b053c3c22f
fix tests on FreeBSD
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lucca Jiménez Könings
cd9f8e3056
add FreeBSD build target
Signed-off-by: Lucca Jiménez Könings <development@jimkoen.com>
2024-02-05 19:48:31 +01:00
Lion Kortlepel
d0cc23333c
ensure client stays referenced while referenced in thread pool 2024-01-26 10:32:41 +01:00
Lion Kortlepel
c173ffdbdc
implement state change to playing 2024-01-25 12:12:06 +01:00
Lion Kortlepel
7d813f7562
use a single strand per client to avoid writing to tcp out of order 2024-01-25 08:52:11 +01:00
Lion Kortlepel
8654beb706
implement most of the Playing state, vehicle positions, vehicle data 2024-01-22 18:23:50 +01:00
Lion Kortlepel
630d5f1cfa
implement session sync 2024-01-22 16:56:07 +01:00
Lion Kortlepel
bde689d31a
implement fully async read and write with individual timeouts 2024-01-21 22:54:36 +01:00
Lion Kortlepel
303a619ece
implement async accept, async read for tcp 2024-01-20 19:20:33 +01:00
Lion Kortlepel
b06991aaca
migrate codebase to new network
marked non-implemented stuff with an exception
2024-01-19 17:34:36 +01:00
Lion Kortlepel
e0fe6693e0
implement vehicle specifics, code needed for the rest of the server 2024-01-19 17:33:53 +01:00
Lion Kortlepel
9502048525
move packet to protocol 2024-01-17 14:59:45 +01:00
Lion Kortlepel
9e99177fcb
implement compression and decompression 2024-01-17 14:52:09 +01:00
Lion Kortlepel
dbab9eb894
handle udp packets like usual packets 2024-01-16 01:03:03 +01:00
Lion Kortlepel
9ea0931e13
implement udp connection 2024-01-16 00:58:14 +01:00
Lion Kortlepel
e9805c3679
refactor identification to its own method 2024-01-15 22:22:27 +01:00
Lion Kortlepel
65d2ba3556
server-side identification done 2024-01-15 22:18:25 +01:00
Lion Kortlepel
6a411171f9
start implementing parsing of packets server-side 2024-01-15 22:11:44 +01:00
Lion Kortlepel
05dfb4e0c3
fix c header -> c++ header 2024-01-15 20:57:15 +01:00
Lion Kortlepel
4aca87d3e6
fully implement tcp and udp send and recv of packet types 2024-01-15 20:56:44 +01:00
Lion Kortlepel
7e9bb0cbf2
start rewriting networking 2024-01-15 20:39:32 +01:00
Lion Kortlepel
443871ec0f
remove usages of weak_ptr 2024-01-11 14:30:25 +01:00
Lion Kortlepel
130e1acdb3
refactor client disconnect, client interation
anywhere a client is disconnected, TNetwork::Disconnect is called now.
Nothing else is valid.
ForEachClientWeak() was fully removed.
2024-01-11 14:14:34 +01:00
Lion Kortlepel
b9f73f77c3
major refactor of Client and Server
this refactor includes changes to TClient:

- all member fields are now public, but protected with Sync (an alias
  for boost::synchronized_value
- removed all (now) obsolete getters and setters

changes to TServer and TNetwork:

- thread-safe ID generation, previously it was possible for there to be
  ID duplicates. this is now solved by moving id generation and
  assignment into the same mutex locked context.
- deprecated ForEachClientWeak and replaced some usages of it with
  ForEachClient, getting rid of the weak_ptr shit in most places
- implemented a bunch of new functions for getting rid of more weak_ptr
  everywhere
2024-01-11 14:14:31 +01:00
Lion Kortlepel
c6aa7776fc make update message adjustable by provider 2024-01-09 17:41:05 +01:00
Lion Kortlepel
4228e18c90 reset default ID to 0 2024-01-09 15:34:33 +01:00
Lion Kortlepel
023e968302 refactor position packet handling, add regression tests 2024-01-09 15:34:33 +01:00
Lion Kortlepel
a4eb10b6a4 fix MP.GetPositionRaw 2024-01-09 15:34:33 +01:00
Lion Kortlepel
0166e488d0 fix calling GlobalParser as static 2024-01-09 15:34:33 +01:00
Lion Kortlepel
0836fd3af8 fix bug in HandlePosition which caused the vehicle position not to be
saved properly
2024-01-09 15:34:33 +01:00
Lion Kortlepel
9791b8875c fix wrong order of SendErrorsShowMessage and SendErrors 2024-01-09 15:34:16 +01:00
Lion Kortlepel
e724a2e467
Merge remote-tracking branch 'origin/master' into feature-tags 2023-12-28 13:57:49 +01:00
Lion Kortlepel
8cccbe8542
Merge remote-tracking branch 'origin/master' into 226-allow-env-to-override-serverconfig 2023-12-28 13:49:02 +01:00
Lion Kortlepel
6787843b37
pretty-print tags on startup 2023-12-28 12:58:29 +01:00
Lion Kortlepel
16d3c6f796
Merge remote-tracking branch 'origin/master' into feature-tags 2023-12-28 12:36:22 +01:00
Lion
57a4c47cb0
Remove HTTP Server settings from config (#221)
This is not implemented and won't be implemented
2023-12-28 11:50:33 +01:00
Lion Kortlepel
329d2eb268
fix hot reload not working with symlinked entire plugins 2023-12-28 11:22:00 +01:00
Lion Kortlepel
221f491019
return early after reading ENV in config 2023-12-25 16:19:53 +01:00
Lion Kortlepel
89db370e12
use env variables by default to override config values 2023-12-25 16:16:01 +01:00