Commit Graph
56 Commits
Author SHA1 Message Date
icex2 a81e886f0f prinet-proxy: Fix memory leak
Incorrect encryption size for keepalive package. don't include
macbytes in length. Tweak length afterwards with result of
encryption function
2021-02-01 22:10:34 +01:00
icex2 a3c0fc3303 prinet-proxy/client: Bugfix, avoid claiming mutex constantly
Without a brief pause between retries on the socket to receive
data, other threads, e.g. keepalive, have a hard time acquiring
the mutex. This leads to the keepalive thread gettin stuck
frequently.
2021-01-23 23:46:22 +01:00
icex2 7dd2403d67 util/time: Refactor time and use gettimeofday
Something was not properly working with the previous implementation.
Since no ns accuracy is requried, gettimeofday is good enough for
now
2021-01-23 23:46:22 +01:00
icex2 b29f21f3f1 prinet-proxy/keepalive: Fix thread pausing and when to send keepalive 2021-01-23 23:46:22 +01:00
icex2 2f5c4467a0 prinet-proxy/client: Move log message, only makes sense when socket not closed 2021-01-23 23:46:22 +01:00
icex2 1e32a1f6c0 util/time: Add functions to measure time 2021-01-23 23:46:22 +01:00
icex2 52ae247f00 prinet-proxy/client: Increase timeout for nonblocking recv length 2021-01-23 23:46:22 +01:00
icex2 210f30ca03 prinet-proxy/client: Minor logging enhancements 2021-01-23 23:46:22 +01:00
icex2 5a6c8e588b util/sock-tcp: Fix non blocking receiving, detect broken connection 2021-01-23 23:46:22 +01:00
icex2 5a78cdf7f6 prinet-proxy: Add keepalive module
Starts a separate thread that sends the keepalive packet to the
client in defined intervals
2021-01-23 23:46:22 +01:00
icex2 1bd7d927c4 prinet-proxy/client: Clarify log messages 2021-01-23 23:46:22 +01:00
icex2 32172670da prinet-proxy/packet: Add keepalive packet + creation function 2021-01-23 23:46:22 +01:00
icex2 c29136afb5 prinet-proxy: Make proxy client thread safe + hide connection handling
Required for running separate keepalive thread.
2021-01-23 23:46:22 +01:00
icex2 52a821f207 prinet-proxy: Separate module for client communication/packet handling
Move stuff from main. Will be re-used for keepalive packet sending
2021-01-23 23:46:22 +01:00
icex2 171e14ddc3 prinet-proxy: Handle uni-directional messages + bugfix cleanup
Allow handling of uni-directional messages not closing the
connection.

This also fixes cleanup of buffers on each iteration which wasn't
done properly before when the inner loop was successful.
The labeled cleanup part was skipped.
2021-01-23 23:46:22 +01:00
icex2 43c8acdfb2 prinet: Allow no response to request
Different to empty response which is data size of response == 0.

No response happens for uni-directional messages. This is reflected
by not containing any content data in the http response.

A response without any additional data still contains at least the
size field (4 bytes) set to 0
2021-01-23 23:46:22 +01:00
icex2 6aafaaf12a prinet-proxy: Fix connection handling
See elaborate comment for why this is required...
2021-01-23 23:46:22 +01:00
icex2 60f61d2de5 prinet-proxy: Bugfix handling of decryption data length 2021-01-23 23:46:13 +01:00
icex2 8747fce0ca hook/pro: Add net-crypt module, monitor network packet decryption failure 2021-01-17 01:58:24 +01:00
icex2 07146a7672 hook/pri: Update server addresses
- Use default ports for redirects -> attach local proxy
- Block a few more addresses that are currently unknown
2021-01-17 01:57:01 +01:00
icex2 73f2402455 pumpnet/prinet-proxy: Change default port to correct stock prime port 2021-01-17 01:53:35 +01:00
icex2 3b56bccfff Add automatic release package upload to target webserver 2021-01-17 01:34:23 +01:00
icex2 fc04ba5623 Include executing unit tests in gitlab ci pipeline 2021-01-17 01:34:23 +01:00
icex2 d261a905b3 Add Dockerfile.test for running pumptool's tests in a container 2021-01-17 01:34:23 +01:00
icex2 6c944ab9a0 Rename dockerfile to allow using multiple dockerfiles 2021-01-17 01:34:23 +01:00
icex2 9126fbd804 cmake: Remove public release compile branch, not used anymore
This furthermore fixes the argument positioning of -g which
needs to be part of the compiler flags not linker flags.
Fixes not showing line numbers and source files on valgrind
2021-01-17 01:34:23 +01:00
icex2 986571a513 pumpnet: Add prinet-proxy application
Sits between the game (client) and pumpnet (server) translating
the game's native protocol to more managable http requests.

Encryption and decryption is also taken care off to remove that
burden from the server side. This makes http requests as generic as
"game version X is sending some data. here, go and figure out what
to do" on the server side.
2021-01-17 01:34:23 +01:00
icex2 506abe92da pumpnet/lib: Add prinet module for sending prime network data to pumpnet 2021-01-17 01:34:23 +01:00
icex2 2b193a8d40 pumpnet/lib: Add protocol for prinet data 2021-01-17 01:34:23 +01:00
icex2 60e37e8eff pumpnet/lib: Adapt cmake file to refactoring changes 2021-01-17 01:34:23 +01:00
icex2 da44fb71a4 pumpnet/client: Remove curl dependency, already part of pumpnet-lib 2021-01-17 01:34:23 +01:00
icex2 1210386602 hook/patch: Adapt net-profile to naming changes of deps 2021-01-17 01:34:23 +01:00
icex2 450f5507d8 pumpnet/client: Adapt to naming changes of deps 2021-01-17 01:34:23 +01:00
icex2 250ff3bf51 pumpnet/lib: Remove now obsolete pumpnet module
Got separated to allow re-usability of specific parts for prinet
2021-01-17 01:34:23 +01:00
icex2 30f45783ff pumpnet/lib: Tweak http module, return recv size, set recv buffer size 2021-01-17 01:34:23 +01:00
icex2 4c46aa4337 pumpnet/lib: Factor out (from pumpnet module) usbprofile parts
Preparation for having another module for handling network stuff
and re-using parts of the pumpnet lib
2021-01-17 01:34:23 +01:00
icex2 7b03067348 pumpnet/lib: Rename protocol -> protocol-usbprofile 2021-01-17 01:34:23 +01:00
icex2 e94d64d30a pumpnet/lib: Factor out some base pumpnet logic, e.g. get+put with retry 2021-01-17 01:34:23 +01:00
icex2 659f2ea1f0 util/sock-tcp: Add functions for client side data handling 2021-01-17 01:34:21 +01:00
icex2 eac14dd673 util/sock-tcp: Add constant for invalid socket handle 2021-01-17 01:34:21 +01:00
icex2 abb383995a sec/prinet: Module for encryption/decryption of prime network traffic 2021-01-17 01:34:18 +01:00
icex2 c84ff4463f util/iobuf: Add functions to safely and easly alloc/free iobufs 2021-01-17 00:52:09 +01:00
icex2 2871238427 util/rand: Extend, add functions to init with seed, rand u8, u16, array 2021-01-17 00:51:22 +01:00
icex2 628a5d040e util/base64: Add tests 2021-01-17 00:50:54 +01:00
icex2 8c66e6b763 piubtn real: Add missing library on linking 2020-12-31 19:55:24 +01:00
icex2 6492e4df1a capnhook/result: Extend error code list 2020-12-31 19:54:59 +01:00
icex2 fb69d87c15 doc: Add doc for hooks regarding dependencies 2020-10-25 16:19:42 +01:00
icex2 9c75c248a5 Update README.md, add pipeline status 2020-10-03 20:38:39 +00:00
icex2 e7d05acb82 doc/pro1,pro2: Window/fullscreen mode instructions 2020-10-03 22:34:05 +02:00
icex2 db364d2796 Add gitlab ci script 2020-10-03 21:19:13 +02:00