Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
dries-c committed Feb 19, 2024
1 parent 0579402 commit 47dd602
Show file tree
Hide file tree
Showing 9 changed files with 395 additions and 304 deletions.
403 changes: 181 additions & 222 deletions ProxyServer.php

Large diffs are not rendered by default.

94 changes: 13 additions & 81 deletions ProxyThread.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,68 +6,29 @@
namespace libproxy;


use NetherGames\Quiche\SocketAddress;
use pmmp\thread\ThreadSafeArray;
use pocketmine\Server;
use pocketmine\snooze\SleeperHandlerEntry;
use pocketmine\thread\log\AttachableThreadSafeLogger;
use pocketmine\thread\Thread;
use pocketmine\utils\Utils;
use RuntimeException;
use Socket;
use function gc_enable;
use function ini_set;
use function socket_bind;
use function socket_create;
use function socket_last_error;
use function socket_listen;
use function socket_set_option;
use function socket_strerror;
use const AF_INET;
use const SO_RCVBUF;
use const SO_REUSEADDR;
use const SO_SNDBUF;
use const SOCK_STREAM;
use const SOL_SOCKET;
use const SOL_TCP;
use const TCP_NODELAY;

class ProxyThread extends Thread
{
public ?string $autoloaderPath = null;
/** @var AttachableThreadSafeLogger */
private AttachableThreadSafeLogger $logger;
/** @var bool */
private bool $ready = false;

/** @var ThreadSafeArray */
private ThreadSafeArray $mainToThreadBuffer;
/** @var ThreadSafeArray */
private ThreadSafeArray $threadToMainBuffer;

/** @var SleeperHandlerEntry */
private SleeperHandlerEntry $sleeperEntry;
/** @var Socket */
private Socket $notifySocket;

/** @var string */
private string $serverIp;
/** @var int */
private int $serverPort;

public function __construct(?string $autoloaderPath, string $serverIp, int $serverPort, AttachableThreadSafeLogger $logger, ThreadSafeArray $mainToThreadBuffer, ThreadSafeArray $threadToMainBuffer, SleeperHandlerEntry $sleeperEntry, Socket $notifySocket)
public function __construct(
private ?string $autoloaderPath,
private string $serverIp,
private int $serverPort,
private AttachableThreadSafeLogger $logger,
private ThreadSafeArray $mainToThreadBuffer,
private ThreadSafeArray $threadToMainBuffer,
private SleeperHandlerEntry $sleeperEntry,
private Socket $notifySocket
)
{
$this->autoloaderPath = $autoloaderPath;

$this->serverIp = $serverIp;
$this->serverPort = $serverPort;
$this->logger = $logger;
$this->notifySocket = $notifySocket;

$this->mainToThreadBuffer = $mainToThreadBuffer;
$this->threadToMainBuffer = $threadToMainBuffer;

$this->sleeperEntry = $sleeperEntry;

$this->setClassLoaders([Server::getInstance()->getLoader()]);
}

Expand Down Expand Up @@ -99,11 +60,11 @@ protected function onRun(): void

$proxy = new ProxyServer(
$this->logger,
$this->createServerSocket(),
new SocketAddress($this->serverIp, $this->serverPort),
$this->mainToThreadBuffer,
$this->threadToMainBuffer,
$this->sleeperEntry,
$this->notifySocket,
$this->notifySocket
);

$this->synchronized(function (): void {
Expand All @@ -117,33 +78,4 @@ protected function onRun(): void

$proxy->waitShutdown();
}

private function createServerSocket(): Socket
{
$serverSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($serverSocket === false) {
throw new RuntimeException("Failed to create socket: " . socket_strerror(socket_last_error()));
}
if (!socket_set_option($serverSocket, SOL_SOCKET, SO_REUSEADDR, 1)) {
throw new RuntimeException("Failed to set option on socket: " . socket_strerror(socket_last_error($serverSocket)));
}
if (!socket_bind($serverSocket, $this->serverIp, $this->serverPort)) {
throw new RuntimeException("Failed to bind to socket: " . socket_strerror(socket_last_error($serverSocket)));
}
if (!socket_listen($serverSocket, 10)) {
throw new RuntimeException("Failed to listen to socket: " . socket_strerror(socket_last_error($serverSocket)));
}
if (!socket_set_option($serverSocket, SOL_TCP, TCP_NODELAY, 1)) {
throw new RuntimeException("Failed to set option on socket: " . socket_strerror(socket_last_error($serverSocket)));
}

if (Utils::getOS() !== Utils::OS_MACOS) {
if (!socket_set_option($serverSocket, SOL_SOCKET, SO_SNDBUF, 8 * 1024 * 1024) || !socket_set_option($serverSocket, SOL_SOCKET, SO_RCVBUF, 8 * 1024 * 1024)) {
throw new RuntimeException("Failed to set option on socket: " . socket_strerror(socket_last_error($serverSocket)));
}
}

return $serverSocket;
}
}
32 changes: 32 additions & 0 deletions certificates/ca.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFiTCCA3GgAwIBAgIUZnNKXcvNEELAYaBDlAsTkc+HW60wDQYJKoZIhvcNAQEL
BQAwVDEOMAwGA1UEAwwFTkcgQ0ExCzAJBgNVBAYTAkxVMRMwEQYDVQQIDApMdXhl
bWJvdXJnMRMwEQYDVQQHDApMdXhlbWJvdXJnMQswCQYDVQQKDAJORzAeFw0yNDAx
MjcwOTM4MzFaFw0zNDAxMjQwOTM4MzFaMFQxDjAMBgNVBAMMBU5HIENBMQswCQYD
VQQGEwJMVTETMBEGA1UECAwKTHV4ZW1ib3VyZzETMBEGA1UEBwwKTHV4ZW1ib3Vy
ZzELMAkGA1UECgwCTkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC5
aXuHjOeoLaD20CnwB3ACCrFn6bbcvzmjnzrY6nIYDo7BSVXFiW45oL+kl6sf/FOg
fb9LZ9fGWb9luoRIDgyucHWkJ3TSL+AzDqS3bxzwcexj41fOEyVgJu+lqw4iX7qH
jNRI2HXqN6QZPpEdKoMdSBogkuJRYgA70O5mfhRCyPzLDmCen7QCIO/WjtGwfkk1
i3HllB6KPrcDsl3wG7HzfhmXbC0dsOnK9A5IuwTays+zoKkJJamDXFlrNiC2WccD
6JOLGoutXqP41lLf5y8NZ7nUXRld08+AqTonmRNw6ELMTAS8aw9l84BY78wDvAOd
tailAdEx2Af0Jx7Rf4KkyYoaqGZEVJQY3cIlSA+iZ3jlhjrobZS2UnQT2LtUuD18
O0+NuRdm6+1mhwQWoAKnrJuRwASrVN1WzrkREuJ0VV0r0uaT/xcxZgcYLAvUOuW7
TxMBJ7wLjvYJIucQX2YM3YjaDniQmhD2vtv3xStxptrkcNUAHk1BGwCUtbi+/Ubm
dlSmrIe0KiI6MO0NQsVaapc8DuyVIsEk5aKFUhX27hTSyVjqh+uGKF81VAapQOR1
Ok5mzXHjL8gfvWiJr3dslTMoJRGSEN+PXkpdjXM1hnHJ9PR1irSQLladBSVO3160
FQz0tqSDpWKFQPSuQKfF+K42oEyesZPZNHAqQjaHiQIDAQABo1MwUTAdBgNVHQ4E
FgQUx2SA73BmHtc5nvr2HrJRv4s6nnAwHwYDVR0jBBgwFoAUx2SA73BmHtc5nvr2
HrJRv4s6nnAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAqoPG
rfg9ywZx8On5Wdd6VvGjmBG2icJuhid6+8mFG91LPiPWhrbLbE4qg6AAH0/jJLFA
TauQcR27jl0Cedw7sDs+565j6wr1hIzEIUHxrsPcztV35sX46hQW8wAZ2FP1b15Z
ajcjubMqIKkhjnxDdcoK6VHDfPWfe2lGHm1hyhAPu5iU1G1uoJclNzeAv8vJhCbO
JRYk8PBazsRL8cP0dqAeJOWwB7vptIenIooiDfts4MdBKRZ+imYrY0rehXV0qOXy
YNzuR2TvYwc1K8k5yR7loK+6+KGZSEe7y9ZiQ/EHtkRkmKVLvwiWLv3jPohIq2/f
ZnDj+Rq+aeTB3xywNDAVt5AGu76d6S5mnvckh+nGYgVDUc7Z9l6avptNPSRpKzcO
0riINrGuvwHUztbqKpsCQEUfnbuIeALpvTNd0MJrrIHmsrUvY4efzt/kL2vNeh6z
tOb7LOmaNXkMAmYyTBxAgnZkCEoX7Mlyx50wn5ZDZg9KtgetKKTayHj6Rm3cbE+O
NBJbKLD5Cd9G6CsERVA+8340vxi2iY8b9I9b3wRwb/PiUztrMXPNO5Bm+Kik2DyA
HyOTqJVih2OpL3TQj/TpzG0cls/ojgM/Mi8z3t51Q0f4NDkh4sy/9y7FTwhH0nUM
tGb6A7z/+trtsJZZWvtrVV/ltajfD5o4lPnI9Bg=
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions certificates/ca.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
NFt57JmhEwYL9sgoy4sKuHPW2d3KSw==
-----END PRIVATE KEY-----
1 change: 1 addition & 0 deletions certificates/ca.srl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
09057958B65753B134D2510780AEB136F526780B
27 changes: 27 additions & 0 deletions certificates/cert.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIEnTCCAoUCAQAwWDESMBAGA1UEAwwJbG9jYWxob3N0MQswCQYDVQQGEwJMVTET
MBEGA1UECAwKTHV4ZW1ib3VyZzETMBEGA1UEBwwKTHV4ZW1ib3VyZzELMAkGA1UE
CgwCTkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3Fp/nNUvcLwns
KDcH5ZiVjGRReUkQ71ZaX8mRi2wFxejGxCXfKg2lMjVPZRDcZVrlZJm3G90q6TiW
EeWis5Z7XHezGKH6PNDeW1/sYSAUDZi866T97W4UH9/ZDm889gyrmcNZ6RS3WDjZ
Jta7VVs4CIRrfL6FVJg31/42eXpnyuoVV/Sj7npYwx3pk8VM7b/74AvIxfMeBC2Z
37IeDQJc9G7rw+Pda/Zu8DWNkMk7EDfF2x5eADbLQdn/qdEvo6cjc4+O6gMqjanB
5wSUMudWBFLDQ14i3SG015vvRsN+NL788mujcbHANVTWiGD40DZmkv+PuPq5lE6V
dWir2u6JlOfy6poC/LEZrFZQc1ce/RZzC5vWNOJJGo1dVTgmPVxjWuLcVwljby7h
RWPrc+zTtQB3cy1y1gO5/UVO4IOxpKrIxZHNMz1LyT6okylEvSxw0KT9G/Hzczay
IaXz4EuCkeA5a48Qnn6C3eD6F3lETDv2ihQG4JPjvUJRCQH+G+h5r8KWfQqSXzJg
yEhhTny5sq6tzCrVZXJGzoNTZSnH4VHp6zQAfj5BI6g/dlv7M1U+iX8z68kLYkUQ
8PGGq5ch+vKhoJ6IGJiEvjDoHZYs7Zhbc882qKALttdIzh7vRpjYyPct5VsJAybH
oXhodoxXD45Ovidsgh9MjdbhpNm9swIDAQABoAAwDQYJKoZIhvcNAQELBQADggIB
AHcwZtVp5oAuv7u3dtO3EV9+an+GQlX4pAXSJRXs6BdW8Ns6YegnslEgmy1MLr69
qMjPtCxsuf7eWJ4EH+e8jHUk38pFLUl1yvwNvArSIULxYmhhPWTaaqG3VqpPyRVp
ale5Ch7jWWXMkx2iKjeL/JipN14hLEMVHfNikgahVTm0LUahJeCuBx30h1TQu/Wt
+Lh/v/luHT8LruQHMfi5KhueRFENGUuaTx3cEIVIUcf6Leor+/LFUgaOaYHBFmYO
pXXW7VJCn0zj1nmieGafn/zYBfbd0vaq3b8nXJ8RNbt6vFHa6RxBKud/hCo9vYzh
dP+QwRS5hh4q9CO27pMQyGN2uIQLuCojo16PYrlhBqHXURJmXSGd4T1ODsBMTODB
kD8mVtReooDLmBlv5xc3Q4sDO4Gi+Upzpu5/AtjZ241r6MIq1qDptWSAphgZnYem
adxxOZjNFC9URbytiD2LVF34M+oaPwC1lTu1BJaIGose4CyAEcZ9xs/8IOM8WZCF
Rv65Cd6KYWIJNAgvCeWXg8oG8Ftm/6MNXf1g6WhFHgCc6RwrnY9zd09o6bwNBTl+
A7qCf0f0aXaEkugIFgyBI75lxqQkl1YVh1DC9m9IyjfV1CQ0bdRi+gJj3+B86/KY
0n/Um0SMnWAqwo3wbizmRpqiz+5RrbQoZqBi7ryuBB9m
-----END CERTIFICATE REQUEST-----
32 changes: 32 additions & 0 deletions certificates/cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFfDCCA2SgAwIBAgIUCQV5WLZXU7E00lEHgK6xNvUmeAswDQYJKoZIhvcNAQEL
BQAwVDEOMAwGA1UEAwwFTkcgQ0ExCzAJBgNVBAYTAkxVMRMwEQYDVQQIDApMdXhl
bWJvdXJnMRMwEQYDVQQHDApMdXhlbWJvdXJnMQswCQYDVQQKDAJORzAeFw0yNDAx
MjcwOTM4MzFaFw0zNDAxMjQwOTM4MzFaMFgxEjAQBgNVBAMMCWxvY2FsaG9zdDEL
MAkGA1UEBhMCTFUxEzARBgNVBAgMCkx1eGVtYm91cmcxEzARBgNVBAcMCkx1eGVt
Ym91cmcxCzAJBgNVBAoMAk5HMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAtxaf5zVL3C8J7Cg3B+WYlYxkUXlJEO9WWl/JkYtsBcXoxsQl3yoNpTI1T2UQ
3GVa5WSZtxvdKuk4lhHlorOWe1x3sxih+jzQ3ltf7GEgFA2YvOuk/e1uFB/f2Q5v
PPYMq5nDWekUt1g42SbWu1VbOAiEa3y+hVSYN9f+Nnl6Z8rqFVf0o+56WMMd6ZPF
TO2/++ALyMXzHgQtmd+yHg0CXPRu68Pj3Wv2bvA1jZDJOxA3xdseXgA2y0HZ/6nR
L6OnI3OPjuoDKo2pwecElDLnVgRSw0NeIt0htNeb70bDfjS+/PJro3GxwDVU1ohg
+NA2ZpL/j7j6uZROlXVoq9ruiZTn8uqaAvyxGaxWUHNXHv0Wcwub1jTiSRqNXVU4
Jj1cY1ri3FcJY28u4UVj63Ps07UAd3MtctYDuf1FTuCDsaSqyMWRzTM9S8k+qJMp
RL0scNCk/Rvx83M2siGl8+BLgpHgOWuPEJ5+gt3g+hd5REw79ooUBuCT471CUQkB
/hvoea/Cln0Kkl8yYMhIYU58ubKurcwq1WVyRs6DU2Upx+FR6es0AH4+QSOoP3Zb
+zNVPol/M+vJC2JFEPDxhquXIfryoaCeiBiYhL4w6B2WLO2YW3PPNqigC7bXSM4e
70aY2Mj3LeVbCQMmx6F4aHaMVw+OTr4nbIIfTI3W4aTZvbMCAwEAAaNCMEAwHQYD
VR0OBBYEFJdB7gRAzrhIVciQPTz5u2ixbNthMB8GA1UdIwQYMBaAFMdkgO9wZh7X
OZ769h6yUb+LOp5wMA0GCSqGSIb3DQEBCwUAA4ICAQAgiiS6BOCXaqyMAtSVczp0
NiU1tQU8R6NLhKl9kgquFyjdzfb0kNniKjLARGlghy2aoFyHMWTaBN3wWQ8HXrj1
MgY3whllbMEkTN6IplwBf5gQpICs6Ah3POlB/cNxs67rrnsCERGMa7LVXPRNVBqo
pyCpDd/p3WR5hXzXvp9nTiIe71t9BLKIc4hLpKl2OsvVHuFuEv+AM7gVEbrvIUyO
Ww2ur1r9ZmBLCIynJVLzd37YvuyxB5K22Pus8kUzsdCJe/K9SWLmClXJzMilvKJ1
5co48Af6O63D+CMA2QKcb6rPLC4D/+0wbuW3CUJW4QWFjvX9w6ux/oSIEuiMcprH
Lnt1WIbSu8mKUIaMwwzLpKxmlTaypBBPX1G0LGO1NTvWDOZd1K0lD8kP/AtuOcNv
SWQpUEHlHfsC2aemAQPXNuLpqM59unw34J2k/O0vj/7QtbAV6aSlTo9h02Nk/HG3
pmgGou3CndTe14754liAvcJvPv1GYXz6bh01Nnl2/Ac1W89Ffj87lzk542Y7zRjl
koUb8jPlMBO9kOcldrlWtNVubarTilq/5+ll+1/r1WQ84pnnZNJwRwTBNQsWsjq8
G7GSC4HcM1KRhIuBAqGcyaLrZJUWbb8ei7t5650YQr8xAKJH1nbaZ66TLrB2PNHy
VpTzlkUCINNNm1YGYqLH3g==
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions certificates/key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
OEnScIDZFm2AqXrgt5XLk/BLbtXwznY=
-----END PRIVATE KEY-----
6 changes: 5 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@
"require": {
"php": "^8.0",
"ext-sockets": "*",
"ext-pmmpthread": "^6.0.1"
"ext-pmmpthread": "^6.0.1",
"nethergamesmc/quiche": "dev-master"
},
"require-dev": {
"phpstan/phpstan": "1.10.21"
},
"repositories": [
{ "type": "vcs", "url": "[email protected]:NetherGamesMC/PHP-Quiche.git" }
],
"autoload": {
"psr-4": {
"libproxy\\": "/"
Expand Down

0 comments on commit 47dd602

Please sign in to comment.