mirror of
https://github.com/Tiiffi/mcrcon.git
synced 2025-10-28 03:41:07 -04:00
Set select() timeout to 5 seconds and replace putchar() loop with fputs() call
This commit is contained in:
13
mcrcon.c
13
mcrcon.c
@ -479,9 +479,7 @@ void packet_print(rc_packet *packet)
|
|||||||
uint8_t *data = packet->data;
|
uint8_t *data = packet->data;
|
||||||
|
|
||||||
if (flag_raw_output == 1) {
|
if (flag_raw_output == 1) {
|
||||||
for (int i = 0; data[i] != 0; ++i) {
|
fputs((char *) data, stdout);
|
||||||
putchar(data[i]);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -578,8 +576,6 @@ receive:
|
|||||||
return packet->id == -1 ? false : true;
|
return packet->id == -1 ? false : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Create function that sends two packets in one send() call
|
|
||||||
// This is important so multipacket guard packet is sent right after real packet
|
|
||||||
int rcon_command(int sock, char *command)
|
int rcon_command(int sock, char *command)
|
||||||
{
|
{
|
||||||
rc_packet *packet = packet_build(RCON_PID, RCON_EXEC_COMMAND, command);
|
rc_packet *packet = packet_build(RCON_PID, RCON_EXEC_COMMAND, command);
|
||||||
@ -611,10 +607,10 @@ int rcon_command(int sock, char *command)
|
|||||||
FD_ZERO(&read_fds);
|
FD_ZERO(&read_fds);
|
||||||
FD_SET(sock, &read_fds);
|
FD_SET(sock, &read_fds);
|
||||||
|
|
||||||
// Set 1.5 second timeout in case there is no response for multipacket guard
|
// Set 5 second timeout
|
||||||
struct timeval timeout = {0};
|
struct timeval timeout = {0};
|
||||||
timeout.tv_sec = 1;
|
timeout.tv_sec = 5;
|
||||||
timeout.tv_usec = 500000;
|
timeout.tv_usec = 0;
|
||||||
|
|
||||||
int incoming = 0;
|
int incoming = 0;
|
||||||
|
|
||||||
@ -643,6 +639,7 @@ int rcon_command(int sock, char *command)
|
|||||||
log_error("Error: select() failed!\n");
|
log_error("Error: select() failed!\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
incoming = (result > 0 && FD_ISSET(sock, &read_fds));
|
incoming = (result > 0 && FD_ISSET(sock, &read_fds));
|
||||||
}
|
}
|
||||||
while(incoming);
|
while(incoming);
|
||||||
|
|||||||
Reference in New Issue
Block a user