aboutsummaryrefslogtreecommitdiff
path: root/src/rcon.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rcon.h')
-rw-r--r--src/rcon.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/rcon.h b/src/rcon.h
index 0d518d0..8ca46c6 100644
--- a/src/rcon.h
+++ b/src/rcon.h
@@ -18,6 +18,9 @@
#include <stdlib.h>
#include <string.h>
+#include <poll.h>
+#include <sys/socket.h>
+
#define RCON_LOGIN 3
#define RCON_LOLGINFAIL -1
#define RCON_COMMAND 2
@@ -26,16 +29,32 @@
#define RCON_RECV_PKGSIZE 4110
#define RCON_SEND_PKGSIZE 1460
+#define RCON_ERR_OK 0
+#define RCON_ERR_GENERIC 1
+#define RCON_ERR_AUTH 2
+#define RCON_ERR_BUFFER 3
+#define RCON_ERR_PACKET 4
+#define RCON_ERR_TIMEOUT 5
+
typedef struct rcon_packet_s {
- int32_t length;
- int32_t id;
- int32_t type;
- char* payload;
- uint32_t payload_len;
+ int32_t length;
+ int32_t id;
+ int32_t type;
+ char* payload;
+ uint32_t payload_len;
} rcon_packet_t;
int rcon_parse_packet ( rcon_packet_t* _packet, char* _buffer, uint32_t _len );
int rcon_construct_packet ( char* _buffer, uint32_t _len, rcon_packet_t* _packet );
-char* rcon_strerror ( int _errno );
+int rcon_login ( int _socket, const char* _password );
+
+int rcon_command ( char** _output, int _socket, const char* _command );
+
+int rcon_recv_packet ( int _socket, rcon_packet_t* _packet, int _timeout_msecs );
+
+int rcon_send_packet ( int _socket, rcon_packet_t* _packet );
+
+const char* rcon_strerror ( int _errno );
+