Commit Graph

226 Commits

Author SHA1 Message Date
Tiiffi
1518d96475 Update BUILDING.md 2025-11-21 15:49:12 +02:00
Tiiffi
2094048d46 Remove few hardening flags, let's not go overboard :^) 2024-12-12 22:15:50 +02:00
Tiiffi
f0e7e71589 Revert back to old way of flushing input buffer 2024-12-12 22:14:40 +02:00
Tiiffi
dfd840de1f Update BUILDING.md 2024-12-07 21:19:47 +02:00
Tiiffi
d5515f43ce Update BUILDING.md 2024-12-07 21:18:17 +02:00
Tiiffi
4a1da8d373 Convert tab indentation to spaces. This is how normal people do it. :D 2024-12-06 23:44:04 +02:00
Tiiffi
b1b46ca08c Implement platform specific input buffer flushing 2024-12-06 21:53:39 +02:00
Tiiffi
2bb1fafdaa Add hardening flags 2024-12-06 21:53:14 +02:00
Tiiffi
0fb17971c0 Fix typo and remove 'Q' as quitting command 2024-12-06 20:26:42 +02:00
Tiiffi
ec11d77e89 Update CHANGELOG.md 2024-12-06 16:32:11 +02:00
Tiiffi
2d29741691 Fixes to Windows utf-8 support + one more Minecraft newline fix 2024-12-06 16:24:04 +02:00
Tiiffi
cc77044df1 Add experimental utf-8 support for Windows and change the behaviour of Minecraft "stop" hack 2024-12-06 14:43:40 +02:00
Tiiffi
dba07aacf7 Update CHANGELOG.md 2024-12-06 12:35:30 +02:00
Tiiffi
bd76b897de Fix missing newlines in Minecraft RCON messages:
Minecraft servers have a longstanding bug that omits newlines
when sending messages via RCON. This patch manually inserts
newlines to address the issue.

Reference: https://bugs.mojang.com/browse/MC-7569

Fixes #1
2024-12-06 11:00:18 +02:00
Tiiffi
1106f27700 Bump version to 0.8.0 2024-12-06 08:47:45 +02:00
Tiiffi
00fc3b5bcb Set select() timeout to 5 seconds and replace putchar() loop with fputs() call 2024-12-06 08:47:45 +02:00
Tiiffi
a0fe9e1645 Enable input/output buffering and fflush only explicitly
As suggested in old pull request: #39
2024-12-06 08:47:45 +02:00
Tiiffi
5f460e8912 Remove Valve protocol checks and set select() timeout to 1.5 seconds
Use the same method for handling multipacket responses across all servers.
2024-12-06 08:47:45 +02:00
Tiiffi
6fed74ba74 Implement select() loop to receive all incoming packets:
Send a "multipacket guard" - an empty packet with an invalid 'cmd' field
and a unique packet ID to trigger a reply from the server once the previous
command's reply has been fully sent.

Valve returns an empty payload, while Minecraft includes an error message in the payload.

This workaround ensures that all packets related to the last valid command
are received from the server, avoiding the need to wait for the select() timeout.
2024-12-06 08:47:45 +02:00
Tiiffi
5d1c87b26f Don't call memcpy() if there is nothing to copy v0.7.3-develop 2024-12-04 08:17:56 +02:00
Tiiffi
fd77ad7fc0 packet_build(): add [static 1] to generate warning if NULL pointer is passed 2024-12-03 05:40:45 +02:00
Tiiffi
bc5617407d Update CHANGELOG.md 2024-12-02 10:40:51 +02:00
Tiiffi
5ae06f4d37 Update man page 2024-12-02 10:35:00 +02:00
Tiiffi
233031cdcb Update README.md 2024-12-02 10:31:38 +02:00
Tiiffi
ebf5172cd0 Update BUILDING.md 2024-12-02 10:13:38 +02:00
Tiiffi
0b72e4d17d Update README.md 2024-12-02 09:56:06 +02:00
Tiiffi
af70f87bc1 Update README.md 2024-12-02 09:52:30 +02:00
Tiiffi
53fd703911 Rename INSTALL.md to BUILDING.md 2024-12-02 09:42:44 +02:00
Tiiffi
c0d28bcb17 Rename INSTALL.md to BUILDING.md 2024-12-02 09:42:11 +02:00
Tiiffi
edf8344983 Add "-Wno-gnu-zero-variadic-macro-arguments" flag to suppress Clang warnings about GNU macro extensions 2024-12-02 09:37:08 +02:00
Tiiffi
a502204e26 Remove unused headers 2024-12-02 09:34:48 +02:00
Tiiffi
7162bc6fe6 - add log_error macro
- rename "flag_connection_alive" variable back to "global_connection_alive"
- return exit code from run_terminal_mode()
- rcon_command(): add error messages
2024-12-02 08:55:18 +02:00
Tiiffi
f270a485b5 Remove url from version string 2024-12-02 07:40:34 +02:00
Tiiffi
df66816bee Change prefix of flag variables from 'global' to 'flag' 2024-12-02 07:37:12 +02:00
Tiiffi
5c7ab407d7 Patch of various fixes, cleanups and unused code removals:
- add MAX_COMMAND_LENGTH to define maximum command length
 - print auth failed message to stderr instead of stdout
 - remove unused net_send() function
 - remove unused net_clean_incoming() function
 - rewrite net_send_packet() function
 - net_recv_packet(): change the type of variable "ret" from int to ssize_t
 - net_recv_packet(): fail immediately if the packet size is out of spec
 - packet_print(): rename variable "def_color" to "default_color"
 - packet_print(): remove unecessary casts
 - packet_build(): use MAX_COMMAND_LENGTH
 - packet_build(): be more explicit in calculation of packet.size
 - packet_build(): use memcpy() instead of strncpy()
 - cast second argument of send()/recv() calls to (char *) so Windows is happy
 - rcon_auth(): change the return type from int to bool
 - run_terminal_mode(): use MAX_COMMAND_LENGTH
2024-12-02 07:32:07 +02:00
Tiiffi
c83d96cc91 Add "$(EXENAME).exe" to clean rule so Windows executables are also cleaned up 2024-12-02 06:14:34 +02:00
Tiiffi
427fd206ca Oops, uncomment struct field 2024-11-11 23:49:18 +02:00
Tiiffi
1a4010cbba Change MAX_PACKET_SIZE and DATA_BUFFSIZE, add notes about packet structure 2024-11-11 22:22:45 +02:00
Tiiffi
4488127350 Use fixed width integer types in rcon packet structure 2024-11-10 16:25:19 +02:00
Tiiffi
6b563df23d Update README.md 2024-11-09 20:53:55 +02:00
Tiiffi
5a2dcf41ac Update README.md 2024-11-09 20:51:36 +02:00
Tiiffi
7d3f3c1d61 Update README.md 2024-11-09 20:46:53 +02:00
Tiiffi
fc040ce5ea Change maximum packet size to correct value (4096 -> 4106) 2024-11-09 15:22:42 +02:00
Tiiffi
489306d4a2 Add windows batch scripts 2024-11-09 13:48:23 +02:00
Tiiffi
a8e2a9349e Exit with appropriate return code if password is not provided, fixes #87 2024-11-07 21:39:37 +02:00
Tiiffi
deed43ad61 Makefile macOS fix, resolves #82, resolves #102
- Remove "ginstall" as "install" replacement on macOS
- Remove "-D" flag from "install" parameters
2024-11-07 17:14:25 +02:00
Tiiffi
aa933d2c1f Add support for Valve style authentication, fixes #106 2024-11-07 14:59:31 +02:00
Tiiffi
accae57e4b Remove ".travis.yml" 2024-11-07 14:21:31 +02:00
Tiiffi
fa25cde79c Modify compilation flags:
- Remove "-s" flag
- Change stack protector mode from "strong" to "all"
- Change optimization level from "-Os" to "-O2"
2024-11-07 14:06:48 +02:00
Tiiffi
e96b2eff6e Remove broken Travis CI links and update package list 2024-11-07 13:54:40 +02:00