139 Commits

Author SHA1 Message Date
Lion Kortlepel
d274535f83
add AGPL-3.0 license header 2024-01-19 10:19:34 +01:00
Lion Kortlepel
4228e18c90 reset default ID to 0 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
11fe5ad200
fix invalid timeout value 2023-12-05 18:00:34 +01:00
Lion Kortlepel
667da22b0e
Merge remote-tracking branch 'origin/master' into new-buildsystem 2023-12-05 17:59:05 +01:00
Lion Kortlepel
22805af716
fix crash in authentication 2023-12-03 17:43:41 +01:00
Anonymous275
d677d8d58d rename Hash function to HashPassword
move HashPassword to cpp only
move check to line 285
2023-01-15 17:12:35 +00:00
Anonymous275
4b30918659 - add 120 seconds timeout 2023-01-15 17:12:35 +00:00
Anonymous275
688e46f524 - fix linux build 2023-01-15 17:12:35 +00:00
Anonymous275
9f59c27b1f - add hash function
- add password config
- add debug messages for password stages
- add pass boolean for heartbeat
- adjust network codes
2023-01-15 17:12:35 +00:00
Lion Kortlepel
b024533f90
fix crash when the header of a TCP packet is negative 2022-10-31 11:31:15 +01:00
Lion Kortlepel
f9251ff92c
add more warning prints on unexpected cases 2022-10-31 11:31:15 +01:00
Lion Kortlepel
99f41c28cb
fix #135 by making onPlayerDisconnect blocking, and calling it before removing the player
before, the handlers were not waited for, so the client was usually
destructed before lua got to the actual event handler call. Now, the
handler is called and waited on, and once all handlers are done, the
client is properly removed from the players internally, thus making
calls to GetPlayerName, GetPlayerIdentifiers, etc. return nil etc.
2022-10-31 11:31:15 +01:00
Lion Kortlepel
917c501faf
fix typo causing beammp forum id not to show in identifiers (fix #137) 2022-10-22 21:16:31 +02:00
Lion Kortlepel
92632b53b5
fix binary data breaking in UDPRcvFromClient 2022-10-15 23:30:09 +02:00
Lion Kortlepel
87965433c2
change log levels of common warnings and errors to debug
this hides a lot of the "standard" errors we get behind the debug flag.
for example, disconnecting a disconnected player would be such an error
2022-10-15 23:16:16 +02:00
Lion Kortlepel
94c0547a35
fix crash when the client disconnects while sending first identify setting 2022-10-15 23:16:16 +02:00
Lion Kortlepel
064e71e59f
fix client version check 2022-10-15 23:16:16 +02:00
Lion Kortlepel
4320a91e5c
use message() instead of what() for ec 2022-10-15 23:16:16 +02:00
Lion Kortlepel
67d02d4cf2
remove unused error check 2022-10-15 23:16:16 +02:00
Lion Kortlepel
88f5db514f
remove unused headers 2022-10-06 00:46:35 +02:00
Lion Kortlepel
e595192829
rename header to boost errc 2022-10-06 00:43:17 +02:00
Lion Kortlepel
917e3f98ab
fix github actions dependencies for linux to use proper boost version 2022-10-06 00:36:57 +02:00
Lion Kortlepel
c42a523532
remove SO_SNDTIMEO for now 2022-10-06 00:24:13 +02:00
Lion Kortlepel
231b13a0e7
fix a ghost client bug 2022-10-05 18:17:18 +02:00
Lion Kortlepel
7d2e4d4581
replace tcp networking with boost::asio tcp networking 2022-10-05 18:17:04 +02:00
Lion Kortlepel
7446526a19
fix binding of udp server socket
it was not binding properly because it wasn't open()ed, i guess
2022-10-05 13:06:36 +02:00
Lion Kortlepel
6e97a3cd6e
switch udp networking to boost implementation 2022-10-05 12:14:25 +02:00
Lion Kortlepel
5d3dff3c88
add identifiers (beammp id, ip) as an argument to onPlayerAuth 2022-10-03 15:31:32 +02:00
Lion Kortlepel
24c98eb2b2
add more compile-time diagnostics, implement fixes for them
Before, a lot of common errors went unnoticed, due to insufficient
compiler diagnostics. This commit fixes this by adding a lot of new
diagnostics, and fixing the issues found by this.
2022-09-26 12:02:05 +02:00
Lion Kortlepel
fd7b11f436
fix event loop timing issue
The event loop tries to run no faster than every 10ms. If it detects
that it goes faster, it would incorrectly calculate the difference, and
then wait (what I assume was) way too long or too short.
Either way, now it's fixed and it correctly works, even when introducing
new lua states.
2022-07-20 14:33:19 +02:00
Mackenzie
04bbdff6b7
Add code from EvanMulawski 2022-07-12 22:59:41 +01:00
Lion Kortlepel
817bd4b588
start fixing mod download 2022-06-28 03:20:42 +02:00
Lion Kortlepel
88f1976668
Merge branch 'rc-v3.0.2' into rc-v3.1.0 2022-04-28 14:40:57 +02:00
Lion Kortlepel
1bab3276e9
fix setsockopt SO_SNDTIMEO for windows, bump version number to 3.0.2, update commandline 2022-04-05 10:59:16 +02:00
Lion Kortlepel
4ff69528bd
fix some missing declaration 2022-03-31 23:56:02 +02:00
Lion Kortlepel
5e4c7eac51
add send timeout to client tcp socket 2022-03-31 23:53:10 +02:00
Lion Kortlepel
952631bb80
add send timeout to client tcp socket 2022-03-31 23:48:07 +02:00
Lion Kortlepel
104737571c
Merge branch 'rc-v3.0.2' into rc-v3.1.0
This is a periodic merge to keep 3.1.0 up to date with 3.0.2
2022-03-31 22:10:49 +02:00
Lion Kortlepel
d4b30a2583
CreateEventTimer: Implement CallStrategy
There are two CallStrategies:

- BestEffort (default): Will try to get your event to trigger at the specified
  interval, but will refuse to queue handlers if a handler takes too
  long.
- Precise: Will enqueue event handlers at the exact interval specified.
  Can lead to the queue filling up if the handler takes longer than the
  interval.
2022-03-31 20:13:59 +02:00
Lion Kortlepel
b780a08f73
use MB constant 2022-03-24 15:16:24 +01:00
Lion Kortlepel
7a814ed35e
use fmt properly in beammp_*f logging functions 2022-03-24 14:45:53 +01:00
Lion Kortlepel
d0bb32ec63
cleanup fixme's, todo's 2022-03-24 14:26:02 +01:00
Lion Kortlepel
dbfe4a4d11
Fix inconsistencies with handling errors in early network startup
In most cases, when socket creation, bind, listen, or similar fails,
it's best to gracefully shutdown. We do that now.
2022-03-24 14:06:03 +01:00
Lion Kortlepel
36853ca683
add MSG_NOSIGNAL to all calls to send() to get rid of useless SIGPIPE signals 2022-02-11 10:59:17 +01:00
Lion Kortlepel
a5c23f8dde
Add ping packet support 2021-12-09 12:08:41 +01:00
Lion Kortlepel
cd19ae0836
Add shutting down / shutdown states to state keeper 2021-12-07 14:25:04 +01:00
Lion Kortlepel
a1335e8c7d
Add statuses, status messages 2021-12-06 13:17:54 +01:00
awesome_milou
9d283738aa
Add preliminary work for HTTP health endpoint (#68)
* Add preliminary work for HTTP health endpoint

* Http: Fix infinite loop bug in Tx509KeypairGenerator::generateKey()

* update commandline

* Add TLS Support class for use with http server

* Add preliminary HTTP Server; TLS still broken; fix in later commit

* Fix TLS handshake, due to server being unable to serve key/certfile in 'Http.h/Http.cpp'; Cause was httlib not being threadsafe due to being a blocking http library

* Run clang format

* Add option to configure http server port via ServerConfig

* TConfig: add HTTPServerPort to config parsing step

* Fix SSL Cert / Key path not auto generating when not existing

* Add health endpoint; Fix SSL Cert serial no. not refreshing when regenerating

* Switch arround status codes in /health route

* Run clang format

Co-authored-by: Lion Kortlepel <development@kortlepel.com>
2021-12-05 18:24:55 +01:00