mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-23 23:18:28 +00:00
Print the last error when errors occur
This commit is contained in:
parent
edd4b3c8f1
commit
2b58694e12
@ -265,13 +265,13 @@ rconcmd() {
|
|||||||
sub sendpkt {
|
sub sendpkt {
|
||||||
my ($sock, $reqid, $reqtype, $body) = @_;
|
my ($sock, $reqid, $reqtype, $body) = @_;
|
||||||
my $packet = pack("VVV", length($body) + 10, $reqid, $reqtype) . $body . "\0\0";
|
my $packet = pack("VVV", length($body) + 10, $reqid, $reqtype) . $body . "\0\0";
|
||||||
send($sock, $packet, 0) or die "Error sending command to server";
|
send($sock, $packet, 0) or die "Error sending command to server: $!";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub recvpkt {
|
sub recvpkt {
|
||||||
my ($sock) = @_;
|
my ($sock) = @_;
|
||||||
my $data = "";
|
my $data = "";
|
||||||
recv($sock, $data, 12, 0) or die "Error receiving response from server";
|
recv($sock, $data, 12, 0) or die "Error receiving response from server: $!";
|
||||||
die "Empty response" if len($data) == 0;
|
die "Empty response" if len($data) == 0;
|
||||||
my ($pktlen, $resid, $restype) = unpack("VVV", $data);
|
my ($pktlen, $resid, $restype) = unpack("VVV", $data);
|
||||||
recv($sock, $data, $pktlen - 8, 0);
|
recv($sock, $data, $pktlen - 8, 0);
|
||||||
@ -293,7 +293,7 @@ rconcmd() {
|
|||||||
socket(my $socket, PF_INET, SOCK_STREAM, 0);
|
socket(my $socket, PF_INET, SOCK_STREAM, 0);
|
||||||
setsockopt($socket, SOL_SOCKET, SO_RCVTIMEO, pack("i4", 30, 0, 0, 0));
|
setsockopt($socket, SOL_SOCKET, SO_RCVTIMEO, pack("i4", 30, 0, 0, 0));
|
||||||
my $sockaddr = pack_sockaddr_in($port, inet_aton($ipaddr));
|
my $sockaddr = pack_sockaddr_in($port, inet_aton($ipaddr));
|
||||||
connect($socket, $sockaddr) or die "Error connecting to server";
|
connect($socket, $sockaddr) or die "Error connecting to server: $!";
|
||||||
auth($socket, $password);
|
auth($socket, $password);
|
||||||
sendpkt($socket, 2, 2, $command);
|
sendpkt($socket, 2, 2, $command);
|
||||||
my ($resid, $restype, $rcvbody) = recvpkt($socket);
|
my ($resid, $restype, $rcvbody) = recvpkt($socket);
|
||||||
@ -1225,26 +1225,26 @@ doExtractMod(){
|
|||||||
printf "%10d %s " "`stat -c '%s' "$modsrcdir/$f"`" "${f%.z}"
|
printf "%10d %s " "`stat -c '%s' "$modsrcdir/$f"`" "${f%.z}"
|
||||||
perl -M'Compress::Raw::Zlib' -e '
|
perl -M'Compress::Raw::Zlib' -e '
|
||||||
my $sig;
|
my $sig;
|
||||||
read(STDIN, $sig, 8) or die "Unable to read compressed file";
|
read(STDIN, $sig, 8) or die "Unable to read compressed file: $!";
|
||||||
if ($sig != "\xC1\x83\x2A\x9E\x00\x00\x00\x00"){
|
if ($sig != "\xC1\x83\x2A\x9E\x00\x00\x00\x00"){
|
||||||
die "Bad file magic";
|
die "Bad file magic";
|
||||||
}
|
}
|
||||||
my $data;
|
my $data;
|
||||||
read(STDIN, $data, 24) or die "Unable to read compressed file";
|
read(STDIN, $data, 24) or die "Unable to read compressed file: $!";
|
||||||
my ($chunksizelo, $chunksizehi,
|
my ($chunksizelo, $chunksizehi,
|
||||||
$comprtotlo, $comprtothi,
|
$comprtotlo, $comprtothi,
|
||||||
$uncomtotlo, $uncomtothi) = unpack("(LLLLLL)<", $data);
|
$uncomtotlo, $uncomtothi) = unpack("(LLLLLL)<", $data);
|
||||||
my @chunks = ();
|
my @chunks = ();
|
||||||
my $comprused = 0;
|
my $comprused = 0;
|
||||||
while ($comprused < $comprtotlo) {
|
while ($comprused < $comprtotlo) {
|
||||||
read(STDIN, $data, 16) or die "Unable to read compressed file";
|
read(STDIN, $data, 16) or die "Unable to read compressed file: $!";
|
||||||
my ($comprsizelo, $comprsizehi,
|
my ($comprsizelo, $comprsizehi,
|
||||||
$uncomsizelo, $uncomsizehi) = unpack("(LLLL)<", $data);
|
$uncomsizelo, $uncomsizehi) = unpack("(LLLL)<", $data);
|
||||||
push @chunks, $comprsizelo;
|
push @chunks, $comprsizelo;
|
||||||
$comprused += $comprsizelo;
|
$comprused += $comprsizelo;
|
||||||
}
|
}
|
||||||
foreach my $comprsize (@chunks) {
|
foreach my $comprsize (@chunks) {
|
||||||
read(STDIN, $data, $comprsize) or die "File read failed";
|
read(STDIN, $data, $comprsize) or die "File read failed: $!";
|
||||||
my ($inflate, $status) = new Compress::Raw::Zlib::Inflate();
|
my ($inflate, $status) = new Compress::Raw::Zlib::Inflate();
|
||||||
my $output;
|
my $output;
|
||||||
$status = $inflate->inflate($data, $output, 1);
|
$status = $inflate->inflate($data, $output, 1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user