Fix in game pr announce. (#86505)

This php file will auto-update once this pr is merged.
This commit is contained in:
Kyle Spier-Swenson
2024-09-06 17:21:49 -07:00
committed by GitHub
parent 54b48c2c82
commit 452c2b3d12

View File

@@ -482,8 +482,10 @@ function game_announce($action, $payload, $pr_flags) {
$msg = '['.$payload['pull_request']['base']['repo']['full_name'].'] Pull Request '.$action.' by '.htmlSpecialChars($payload['sender']['login']).': <a href="'.$payload['pull_request']['html_url'].'">'.htmlSpecialChars('#'.$payload['pull_request']['number'].' '.$payload['pull_request']['user']['login'].' - '.$payload['pull_request']['title']).'</a>';
$game_servers = filter_announce_targets($servers, $payload['pull_request']['base']['repo']['owner']['login'], $payload['pull_request']['base']['repo']['name'], $action, $pr_flags);
$msg = '?announce='.urlencode($msg).'&payload='.urlencode(json_encode($payload));
$game_payload = array();
$game_payload['pull_request'] = array();
$game_payload['pull_request']['id'] = $payload['pull_request']['id'];
$msg = '?announce='.urlencode($msg).'&payload='.urlencode(json_encode($game_payload));
foreach ($game_servers as $serverid => $server) {
$server_message = $msg;
@@ -786,7 +788,7 @@ function game_server_send($addr, $port, $str) {
/* --- Create a socket and connect it to the server --- */
$server = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or exit("ERROR");
socket_set_option($server, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 2, 'usec' => 0)); //sets connect and send timeout to 2 seconds
if(!socket_connect($server,$addr,$port)) {
if(!@socket_connect($server,$addr,$port)) {
return "ERROR: Connection failed";
}
@@ -804,8 +806,8 @@ function game_server_send($addr, $port, $str) {
}
/* --- Idle for a while until received bytes from game server --- */
$result = socket_read($server, 10000, PHP_BINARY_READ);
socket_close($server); // we don't need this anymore
$result = @socket_read($server, 10000, PHP_BINARY_READ);
@socket_close($server); // we don't need this anymore
if($result != "") {
if($result[0] == "\x00" || $result[1] == "\x83") { // make sure it's the right packet format