mirror of
				https://github.com/Tiiffi/mcrcon.git
				synced 2025-10-31 05:11:08 -04:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			master
			...
			a8e2a9349e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a8e2a9349e | |||
| deed43ad61 | |||
| aa933d2c1f | |||
| accae57e4b | |||
| fa25cde79c | |||
| e96b2eff6e | 
							
								
								
									
										20
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								.travis.yml
									
									
									
									
									
								
							| @ -1,20 +0,0 @@ | |||||||
| language: c |  | ||||||
| sudo: false |  | ||||||
| dist: trusty |  | ||||||
| cache: |  | ||||||
|   ccache: true |  | ||||||
| compiler: |  | ||||||
| - gcc |  | ||||||
| - clang |  | ||||||
| env: |  | ||||||
|   global: |  | ||||||
|   - EXTRAFLAGS='-v' |  | ||||||
|   - PREFIX="${HOME}" |  | ||||||
| install: |  | ||||||
| - 'true' |  | ||||||
| script: |  | ||||||
| - make |  | ||||||
| - ./mcrcon -h |  | ||||||
| - ./mcrcon -v |  | ||||||
| - make install |  | ||||||
| - make uninstall |  | ||||||
| @ -1,5 +1,8 @@ | |||||||
| #### Version history: | #### Version history: | ||||||
|  |  | ||||||
|  | ###### 0.7.3 | ||||||
|  |  - Add support to Valve style rcon authentication | ||||||
|  |   | ||||||
| ###### 0.7.2 | ###### 0.7.2 | ||||||
|  - Quit gracefully when Ctrl-D or Ctrl+C is pressed |  - Quit gracefully when Ctrl-D or Ctrl+C is pressed | ||||||
|  - Remove "exit" and "quit" as quitting commands |  - Remove "exit" and "quit" as quitting commands | ||||||
|  | |||||||
| @ -1,11 +1,11 @@ | |||||||
| Building and installing | Building and installing | ||||||
| ------------------------ | ----------------------- | ||||||
|  |  | ||||||
| Only dependency is C library and POSIX getopt support.  | Only dependency is C library and POSIX getopt support.  | ||||||
|  |  | ||||||
| Compiling with GCC or CLANG: | Compiling with GCC or CLANG: | ||||||
|  |  | ||||||
|     cc -std=gnu99 -Wpedantic -Wall -Wextra -Os -s -o mcrcon mcrcon.c |     cc -std=gnu99 -Wpedantic -Wall -Wextra -O2 -o mcrcon mcrcon.c | ||||||
|      |      | ||||||
| Note: on Windows remember to link with winsock by adding `-lws2_32` to your compiler command line. | Note: on Windows remember to link with winsock by adding `-lws2_32` to your compiler command line. | ||||||
|  |  | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								LICENSE
									
									
									
									
									
								
							| @ -18,4 +18,3 @@ freely, subject to the following restrictions: | |||||||
|  |  | ||||||
|   3. This notice may not be removed or altered from any source |   3. This notice may not be removed or altered from any source | ||||||
|   distribution. |   distribution. | ||||||
|    |  | ||||||
							
								
								
									
										15
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Makefile
									
									
									
									
									
								
							| @ -4,7 +4,7 @@ | |||||||
| #   make | #   make | ||||||
| # | # | ||||||
| # Windows cross compile: | # Windows cross compile: | ||||||
| #   i686-w64-mingw32-gcc -std=gnu99 -Wall -Wextra -Wpedantic -Os -s -o mcrcon.exe mcrcon.c -lws2_32 | #   x86_64-w64-mingw32-gcc -std=gnu99 -Wall -Wextra -Wpedantic -O2 -fstack-protector-all -o mcrcon.exe mcrcon.c -lws2_32 | ||||||
|  |  | ||||||
| EXENAME = mcrcon | EXENAME = mcrcon | ||||||
| PREFIX ?= /usr/local | PREFIX ?= /usr/local | ||||||
| @ -14,8 +14,8 @@ LINKER = | |||||||
| RM = rm -v -f | RM = rm -v -f | ||||||
|  |  | ||||||
| CC = gcc | CC = gcc | ||||||
| CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Os -s | CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -O2 | ||||||
| EXTRAFLAGS ?= -fstack-protector-strong | EXTRAFLAGS ?= -fstack-protector-all | ||||||
|  |  | ||||||
| ifeq ($(OS), Windows_NT) | ifeq ($(OS), Windows_NT) | ||||||
| 	LINKER = -lws2_32 | 	LINKER = -lws2_32 | ||||||
| @ -23,11 +23,6 @@ ifeq ($(OS), Windows_NT) | |||||||
| 	RM = cmd /C del /F | 	RM = cmd /C del /F | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(shell uname), Darwin) |  | ||||||
| 	INSTALL = ginstall |  | ||||||
| 	CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Os |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| .PHONY: all | .PHONY: all | ||||||
| all: $(EXENAME) | all: $(EXENAME) | ||||||
|  |  | ||||||
| @ -37,8 +32,8 @@ $(EXENAME): mcrcon.c | |||||||
| ifneq ($(OS), Windows_NT) | ifneq ($(OS), Windows_NT) | ||||||
| .PHONY: install | .PHONY: install | ||||||
| install: | install: | ||||||
| 	$(INSTALL) -vD $(EXENAME) $(DESTDIR)$(PREFIX)/bin/$(EXENAME) | 	$(INSTALL) -v $(EXENAME) $(DESTDIR)$(PREFIX)/bin/$(EXENAME) | ||||||
| 	$(INSTALL) -vD -m 0644 mcrcon.1 $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1 | 	$(INSTALL) -v -m 0644 mcrcon.1 $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1 | ||||||
| 	@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n" | 	@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n" | ||||||
|  |  | ||||||
| .PHONY: uninstall | .PHONY: uninstall | ||||||
|  | |||||||
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
								
							| @ -6,24 +6,30 @@ mcrcon is console based Minecraft [rcon](https://developer.valvesoftware.com/wik | |||||||
|  |  | ||||||
| ### Installing: | ### Installing: | ||||||
|  |  | ||||||
| ##### via packet manager: | ##### via package manager: | ||||||
| See https://pkgs.org/download/mcrcon for available packages in various Linux distros (note that available packages might be outdated). | See https://pkgs.org/download/mcrcon and https://repology.org/project/mcrcon/packages for available packages in various Linux distros (note that some packages might be outdated). | ||||||
|  |  | ||||||
| - Gentoo Linux: https://packages.gentoo.org/packages/games-util/mcrcon | - Fedora: https://packages.fedoraproject.org/pkgs/mcrcon/mcrcon/ | ||||||
| - Arch Linux: https://aur.archlinux.org/packages/mcrcon/ | - Gentoo: https://packages.gentoo.org/packages/games-util/mcrcon | ||||||
|  | - Arch: https://aur.archlinux.org/packages/mcrcon/ | ||||||
|  | - NixOS: https://search.nixos.org/packages?show=mcrcon | ||||||
|  | - Snapcraft: https://snapcraft.io/mcrcon-nsg | ||||||
|  | - Scoop: https://scoop.sh/#/apps?q=mcrcon | ||||||
|  |  | ||||||
| ##### building from sources: | ##### building from sources: | ||||||
| ```sh | ```sh | ||||||
| git clone https://github.com/Tiiffi/mcrcon.git | git clone https://github.com/Tiiffi/mcrcon.git | ||||||
| cd mcrcon | cd mcrcon | ||||||
| make | make | ||||||
|  |  | ||||||
|  | # install is optional | ||||||
| sudo make install | sudo make install | ||||||
| ``` | ``` | ||||||
| Check [INSTALL.md](INSTALL.md) for more details. | Check [INSTALL.md](INSTALL.md) for more details. | ||||||
|  |  | ||||||
| Precompiled binaries (if provided)*: https://github.com/Tiiffi/mcrcon/releases/latest | Precompiled binaries*: https://github.com/Tiiffi/mcrcon/releases/latest | ||||||
|  |  | ||||||
| <sub>*At the moment binaries are provided for Linux and Windows.</sub> | <sub>*Binaries are provided for Linux and Windows.</sub> | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| @ -86,6 +92,3 @@ rcon.password=your_rcon_pasword | |||||||
| This project is licensed under the zlib License - see the [LICENSE](LICENSE) file for details. | This project is licensed under the zlib License - see the [LICENSE](LICENSE) file for details. | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| <sub>Master:</sub>  |  | ||||||
| <sub>Develop:</sub>  |  | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								mcrcon.1
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								mcrcon.1
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | |||||||
| .\" Process this file with | .\" Process this file with | ||||||
| .\" groff -man -Tascii mcrcon.1 | .\" groff -man -Tascii mcrcon.1 | ||||||
| .\" | .\" | ||||||
| .TH MCRCON 1 "October 2021" "Version 0.7.2" | .TH MCRCON 1 "November 2024" "Version 0.7.3" | ||||||
| .SH NAME  | .SH NAME  | ||||||
| mcrcon \- send rcon commands to a Minecraft server | mcrcon \- send rcon commands to a Minecraft server | ||||||
| .SH SYNOPSIS | .SH SYNOPSIS | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								mcrcon.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								mcrcon.c
									
									
									
									
									
								
							| @ -47,7 +47,7 @@ | |||||||
|     #include <netdb.h> |     #include <netdb.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #define VERSION "0.7.2" | #define VERSION "0.7.3" | ||||||
| #define IN_NAME "mcrcon" | #define IN_NAME "mcrcon" | ||||||
| #define VER_STR IN_NAME" "VERSION" (built: "__DATE__" "__TIME__")" | #define VER_STR IN_NAME" "VERSION" (built: "__DATE__" "__TIME__")" | ||||||
|  |  | ||||||
| @ -209,7 +209,7 @@ int main(int argc, char *argv[]) | |||||||
|  |  | ||||||
| 	if (pass == NULL) { | 	if (pass == NULL) { | ||||||
| 		puts("You must give password (-p password).\nTry 'mcrcon -h' or 'man mcrcon' for help."); | 		puts("You must give password (-p password).\nTry 'mcrcon -h' or 'man mcrcon' for help."); | ||||||
| 		return 0; | 		exit(EXIT_FAILURE); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if(optind == argc && terminal_mode == 0) | 	if(optind == argc && terminal_mode == 0) | ||||||
| @ -595,10 +595,18 @@ int rcon_auth(int sock, char *passwd) | |||||||
| 	if (!ret) | 	if (!ret) | ||||||
| 		return 0; // send failed | 		return 0; // send failed | ||||||
|  |  | ||||||
|  | receive: | ||||||
| 	packet = net_recv_packet(sock); | 	packet = net_recv_packet(sock); | ||||||
| 	if (packet == NULL) | 	if (packet == NULL) | ||||||
| 		return 0; | 		return 0; | ||||||
|  |  | ||||||
|  | 	/* Valve rcon sends empty "RCON_RESPONSEVALUE" packet before real auth response | ||||||
|  | 	 * so we have to check packet type and try again if necessary. | ||||||
|  | 	 */ | ||||||
|  | 	if (packet->cmd != RCON_AUTH_RESPONSE) { | ||||||
|  | 		goto receive; | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	// return 1 if authentication OK | 	// return 1 if authentication OK | ||||||
| 	return packet->id == -1 ? 0 : 1; | 	return packet->id == -1 ? 0 : 1; | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	