about summary refs log tree commit diff
path: root/src/engine/e_network.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-02 12:29:19 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-02 12:29:19 +0000
commitcebda9790bfa7d109014d5871d79e9ecd88c7d50 (patch)
treed315b73baf879c0414cf652b89690796cc2f1f3b /src/engine/e_network.h
parentbddc6ec6cc369e87d9dd0c0d1749bb871e1537a8 (diff)
downloadzcatch-cebda9790bfa7d109014d5871d79e9ecd88c7d50.tar.gz
zcatch-cebda9790bfa7d109014d5871d79e9ecd88c7d50.zip
some cleanups. splitted e_network.c into several files. continued on the ban support
Diffstat (limited to 'src/engine/e_network.h')
-rw-r--r--src/engine/e_network.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/engine/e_network.h b/src/engine/e_network.h
index efacc9fa..1ac02708 100644
--- a/src/engine/e_network.h
+++ b/src/engine/e_network.h
@@ -1,5 +1,8 @@
+#ifndef ENGINE_NETWORK_H
+#define ENGINE_NETWORK_H
 /* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
 
+
 typedef struct
 {
 	/* -1 means that it's a stateless packet */
@@ -11,6 +14,14 @@ typedef struct
 	const void *data;
 } NETCHUNK;
 
+
+typedef struct
+{
+	NETADDR addr;
+	int type;
+	int expires;
+} NETBANINFO;
+
 /*typedef struct
 {
 	int send_bytes;
@@ -34,7 +45,10 @@ enum
 	
 	NETSTATE_OFFLINE=0,
 	NETSTATE_CONNECTING,
-	NETSTATE_ONLINE
+	NETSTATE_ONLINE,
+	
+	NETBANTYPE_SOFT=1,
+	NETBANTYPE_DROP=2
 };
 
 typedef int (*NETFUNC_DELCLIENT)(int cid, void *user);
@@ -55,6 +69,12 @@ NETSOCKET netserver_socket(NETSERVER *s);
 int netserver_drop(NETSERVER *s, int client_id, const char *reason);
 int netserver_client_addr(NETSERVER *s, int client_id, NETADDR *addr);
 int netserver_max_clients(NETSERVER *s);
+
+int netserver_ban_add(NETSERVER *s, NETADDR addr, int type, int seconds);
+int netserver_ban_remove(NETSERVER *s, NETADDR addr);
+int netserver_ban_num(NETSERVER *s); /* caution, slow */
+int netserver_ban_get(NETSERVER *s, int index, NETBANINFO *info); /* caution, slow */
+
 /*void netserver_stats(NETSERVER *s, NETSTATS *stats);*/
 
 /* client side */
@@ -120,3 +140,5 @@ public:
 };
 #endif
 
+
+#endif