Commit Graph
100 Commits
Author SHA1 Message Date
Lion Kortlepel fd398ed5ab add new header implementation for game<->launcher communication 2026-01-24 20:09:37 +01:00
Lion Kortlepel b4f0f0759d flush all prints 2026-01-24 20:09:37 +01:00
Lion Kortlepel 5b2bc2d499 print posix_spawn errors 2026-01-24 20:09:26 +01:00
Lion Kortlepel 87c7edf404 fixup readme 2024-12-07 11:12:18 +01:00
Lion f4fcbd63f5 Update README.md 2024-12-07 11:11:28 +01:00
Lion 7f1072b7c2 Create LICENSE 2024-12-07 11:10:51 +01:00
Lion 00bd5be4d0 add PR template 2024-11-13 16:20:54 +01:00
Lion 3effe0d4de log zlib error message and regex fix (#146) 2024-11-07 22:05:40 +01:00
Lion 8a8e0be1a1 Print message from auth (#141) 2024-11-05 10:32:39 +01:00
Lion 8938fd84ea Add beammp.gg to the list of allowed links (#143) 2024-11-02 23:29:40 +01:00
Lion Kortlepel 54895eb1b0 bump version 2024-11-01 12:53:55 +01:00
Lion 1423c1193b Speed up response times by waiting for http requests on another thread. (#137)
If, for example, the client requests the serverlist multiple times and
then tries to login the launcher will first wait for those requests to
finish. Thereby putting the other core communication (such as login) on
hold.
2024-11-01 12:13:21 +01:00
Lion 288e76594d Fix port cli argument (#142)
Fixes --port and -p by proccessing the config file before the cli
arguments, before it would first set --port because it was passed and
then overwrite it with the value from the config. Also removed some
useless code related to cli args.
2024-11-01 12:11:26 +01:00
Lion 9dbbd8298d Switch to only timeout on connection (#140) 2024-10-15 19:32:55 +02:00
Lion 9ebd218856 Fix empty modlist (#136)
This PR fixes the launcher getting confused when the server sends an
empty mod list using the new downloading system.
Related server PR: https://github.com/BeamMP/BeamMP-Server/pull/377
2024-10-12 22:10:47 +02:00
Lion Kortlepel 7d52e44434 only listen on localhost ipv4 2024-10-10 16:14:16 +02:00
Lion Kortlepel 49874fd633 Revert "remove 'D' socket initialization code"
This reverts commit 6a23518eff.
2024-10-09 18:00:43 +02:00
Lion Kortlepel 6a23518eff remove 'D' socket initialization code 2024-10-09 17:36:54 +02:00
Lion Kortlepel 3297b3e62e fix not recognizing empty mod lists on new mod list 2024-10-09 17:35:50 +02:00
Lion Kortlepel 76cfc47a2f log invocation 2024-10-07 00:43:25 +02:00
Lion Kortlepel 7b59cb6f87 fix various commandline argument related things 2024-10-07 00:33:43 +02:00
Lion Kortlepel 0eba745d4c remove silly license 2024-10-07 00:33:29 +02:00
Lion 259b21502e Add command-line options (#90)
This PR adds command-line options as outlined in #74 

Closes #74
2024-10-06 23:49:47 +02:00
Lion f57ebb7a92 follow HTTP redirects (#133)
Follow HTTP redirects on HTTP Get and Post functions
2024-10-06 15:20:49 +02:00
Lion Kortlepel fcb51adcb8 bump version 2024-10-05 21:05:02 +02:00
Lion 768f11f6ec Add mod hashing, improve download protocol (#129) 2024-10-04 23:36:57 +02:00
Lion 7944e9dbe8 Switch to curl for Get and Post (#132)
Because we can. I got a segfault while testing but then it didn't happen
again, so I'm tempted to call it done.
2024-10-04 23:23:49 +02:00
Lion Kortlepel 0c68f91fb2 remove debug print 2024-10-04 23:22:50 +02:00
Lion b8fdbc4ed9 Fix GetGamePath (#130)
Previously, the registry was used to get the local appdata folder for
the user folder. I've switched this over to a windows api function which
fixes some cases where the launcher wouldn't be able to find the appdata
folder in the registry.
2024-10-04 23:12:56 +02:00
Lion Kortlepel 85908e42d5 fix download code, error checking 2024-10-04 23:12:23 +02:00
Lion Kortlepel 5c77e60f29 remove mis-merged code 2024-10-04 23:04:30 +02:00
Lion Kortlepel c74455e0fe switch to curl for Get and Post 2024-10-04 22:59:29 +02:00
Lion dc13e4a03c remove extra return 2024-10-04 14:13:04 +02:00
Lion Kortlepel 1676d4174e make mods not keep the hash when copying them 2024-09-29 02:36:41 +02:00
Lion Kortlepel ad468a8971 remove debug prints 2024-09-29 02:04:39 +02:00
Lion Kortlepel d3805f2cfd fix mod deleting misnamed mods 2024-09-29 01:57:15 +02:00
Lion Kortlepel 9f1cc15b15 fix bugs with new download 2024-09-29 01:15:57 +02:00
Lion Kortlepel c0fb4e4ad6 implement support for new mod hashing and download 2024-09-29 00:33:15 +02:00
Lion 7600372ca1 Fix linux executable name after BNG0.33.2 (#126) 2024-09-28 16:51:02 +02:00
Lion 54cd5b5e0e Add additional SSL Verify logging (#127) 2024-09-28 16:50:30 +02:00
Lion c0c3d6b30e Add download speed to UI (#125) 2024-09-24 21:59:01 +02:00
Lion 9c59a83f04 turn off stdout, stderr of the game on linux (#124) 2024-09-24 21:58:37 +02:00
Lion Kortlepel 95436cb073 turn off stdout, stderr of the game on linux 2024-09-24 21:56:55 +02:00
Lion Kortlepel cbb5502a40 send download speed to game UI, bump version to 2.1.4 2024-09-24 21:50:09 +02:00
Lion Kortlepel d6dfe85f69 add download speed to ingame ui 2024-09-24 21:10:10 +02:00
Lion Kortlepel 53c514ecc6 bump to 2.1.3 2024-09-23 23:13:51 +02:00
Lion Kortlepel e348d59a7e fix linux executable name 2024-09-23 23:13:34 +02:00
Lion 244d27341f Fix release actions (#122) 2024-09-23 22:49:33 +02:00
Lion Kortlepel 3a55b62907 remove release action 2024-09-23 22:49:03 +02:00
Lion 0c3ae43910 Add CachingDirectory config setting to cache mods elsewhere (#121)
also moved cls/clear to the beginning, idk wtf it was doing in there.
2024-09-23 22:45:21 +02:00
Lion Kortlepel 8436586566 print version on startup
🚀
2024-09-23 22:43:32 +02:00
Lion Kortlepel 19d1245379 catch errors when the custom caching directory is not accessible
🧯
2024-09-23 22:39:44 +02:00
Lion 470eeac821 Add better error handling (#119) 2024-09-23 22:34:19 +02:00
Lion 9c6aa86e68 Add print to inform the user that they must keep the window open (#120) 2024-09-23 22:33:54 +02:00
Lion Kortlepel 1362471657 add CachingDirectory config setting to cache mods elsewhere
also moved cls/clear to the beginning, idk wtf it was doing in there.
2024-09-23 22:31:58 +02:00
Lion Kortlepel aa46b454e2 add print to inform the user that they must keep the window open 2024-09-23 22:12:00 +02:00
Lion Kortlepel 02465c529d add more logging to exit 2024-09-23 22:08:45 +02:00
Lion Kortlepel c68cbf8946 remove unused """security""" code 2024-09-23 22:04:34 +02:00
Lion Kortlepel 46542c1dce always log debug to Launcher.log 2024-09-23 22:00:41 +02:00
Lion Kortlepel 97f58dd413 add better error handling to main() 2024-09-23 21:58:27 +02:00
Lion 4bedfc8e96 Little Itsy Bitsy TCP fixes (#118) 2024-09-23 21:46:11 +02:00
Lion Kortlepel cd17df5cc2 add more debug statements, wait for threads before shutting down 2024-09-22 21:37:52 +02:00
Lion Kortlepel 0b589a74c9 refactor tcp receive to be less weird 2024-09-22 20:31:25 +02:00
Lion Kortlepel 1260515a40 fix crash when cancelling download 2024-09-22 20:20:31 +02:00
Lion 007cd6573e Refactor downloading (#116)
The way it was done was so horrid, it was not only impossible to debug,
with TODO comments saying it sucks, and other shit like that, but it was
also just full of data races. You can rest easy however - I left most of
the data races in there <3 For nostalgia (totally not because it's a
massive pain to fix that).

We now do single-threaded download, which can not only saturate my 100
Mbit/s line without any hickups, it can also go up to ~600000 Mbit/s for
localhost transfers :) So I think it's fine.
2024-09-22 20:04:45 +02:00
Lion 7b022f9907 Add --skip-ssl-verify cli option (#117)
This is a temporary fix for if anyone has issues with SSL certificate
validation. The use of this must come with the disclaimer that,
obviously, this bypasses the security that SSL gives entirely. Anyone
could MITM you at that point. Don't use, basically.
2024-09-22 19:56:43 +02:00
Lion Kortlepel 96c9c89238 add extra layer of checks for data races in download
yeah
2024-09-22 19:52:52 +02:00
Lion b4949af1d7 Check 'User Shell Folders' (#111)
this PR is a continuation of #69
2024-09-22 19:47:50 +02:00
Lion 85086909a6 Merge pull request #108 from WiserTixx/implement-mods-warning
Implement mods warning
2024-09-22 19:46:34 +02:00
Lion Kortlepel 79209219dd remove extraneous game user path print 2024-09-22 19:42:55 +02:00
Lion Kortlepel 18e1b7a2bb add --skip-ssl-verify cli option 2024-09-22 19:42:00 +02:00
Lion Kortlepel a5766639d6 add back user path print
Thanks @WiserTixx for finding a good place for it
2024-09-22 19:29:39 +02:00
Lion Kortlepel 191fbf083d fix stupid microsoft macro <3 2024-09-22 19:06:46 +02:00
Lion Kortlepel 8c4342853a refactor downloading
The way it was done was so horrid, it was not only impossible to debug,
with TODO comments saying it sucks, and other shit like that, but it was
also just full of data races. You can rest easy however - I left most of
the data races in there <3 For nostalgia (totally not because it's a
massive pain to fix that).

We now do single-threaded download, which can not only saturate my 100
Mbit/s line without any hickups, it can also go up to ~600000 Mbit/s for
localhost transfers :) So I think it's fine.
2024-09-22 18:52:50 +02:00
Lion a60ff48c08 Merge pull request #105 from WiserTixx/id-from-auth
Send id from auth to game
2024-08-17 20:34:19 +02:00
Lion da3b49aa12 Merge pull request #106 from WiserTixx/fix-http-proxy-ub
Fix UB which was causing the http proxy to crash
2024-08-17 20:32:59 +02:00
Lion Kortlepel b034072027 fix potential UB in decompression 2024-06-23 23:04:55 +02:00
Lion Kortlepel f94b9adf7a print game's U S E R path 2024-06-22 23:26:10 +02:00
Lion Kortlepel c95178ea59 dont auto-update in dev mode 2024-06-22 23:20:46 +02:00
Lion Kortlepel 1f7c498bd9 fix compiler error in decomp 2024-06-22 23:05:01 +02:00
Lion Kortlepel e46d4b2f0e Merge branch 'performance-improvements' 2024-06-22 23:01:15 +02:00
Lion Kortlepel f2b34543f9 switch to compression with limit at 30 MB 2024-06-22 22:48:00 +02:00
Lion Kortlepel d32da036bc fix mod name bug 2024-06-21 17:30:47 +02:00
Lion Kortlepel 8b0f4f99f6 use thread_local static buffer to receive into, null term manually 2024-06-19 16:53:17 +02:00
Lion Kortlepel 17e887442c avoid a substr() which costs us ~20% of runtime performance 2024-06-19 16:18:11 +02:00
Lion Kortlepel fc454cd11e avoid creating a thread every packet 2024-06-19 15:53:49 +02:00
Lion e0e2607632 Merge pull request #96 from BeamMP/finalize-linux-merge
Finalize linux merge
2024-06-18 09:57:24 +02:00
Lion Kortlepel 25f28e7fee add common runtime files to gitignore 2024-06-18 09:57:05 +02:00
Lion Kortlepel ba9719ed67 fix auth packet prefix 2024-06-18 09:46:33 +02:00
Lion Kortlepel bb04d1bfe1 remove self update on linux for now 2024-06-18 08:51:23 +02:00
Lion Kortlepel 82e58e6513 add toolchain to linux build
oops
2024-06-17 22:36:15 +02:00
Lion Kortlepel 274a1dac7c fix workflows vcpkg version 2024-06-17 22:30:26 +02:00
Lion Kortlepel ae7f8f44e3 re-implement the website launch feature for linux 2024-06-17 22:16:17 +02:00
Lion Kortlepel a82b9fb36f reformat 2024-06-17 22:01:15 +02:00
Lion Kortlepel 3488136ca4 add clang format 2024-06-17 21:59:59 +02:00
Lion Kortlepel 05ffa0b638 Merge branch 'linux' 2024-06-17 21:57:41 +02:00
Lion 942cc78406 remove debug print 2024-06-15 22:24:19 +02:00
Lion 46690b5bbf Merge pull request #79 from BeamMP/hotfix-stuff
Fixup various bits
2024-06-15 21:46:07 +02:00
Lion cc4e322065 Merge pull request #88 from saile515/fix-input-linux
Fix input not working on Linux
2024-05-29 11:13:05 +02:00
Lion Kortlepel adba66afb9 add http debug error logging 2024-03-22 12:19:18 +01:00