summaryrefslogtreecommitdiff
path: root/src/network/networkprotocol.h
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-07-18 21:39:55 +0200
committerGitHub <noreply@github.com>2017-07-18 21:39:55 +0200
commit79f19b8369a0120fbf0bd0ee3739989fbbbca50e (patch)
tree0051cde3efe56d35d03aa50a5095d9b8ba04d15b /src/network/networkprotocol.h
parent7e3cdf7088b1fb6744d0bd9cc903823b6e3bbfe3 (diff)
downloadminetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.tar.gz
minetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.tar.bz2
minetest-79f19b8369a0120fbf0bd0ee3739989fbbbca50e.zip
[CSM] Add flavour limits controlled by server (#5930)
* [CSM] Add flavour limits controlled by server Server send flavour limits to client permitting to disable or limit some Lua calls * Add limits for reading nodedefs and itemdefs * flavour: Add lookup node limits * Merge get_node_or_nil into get_node. Sending fake node doesn't make sense in CSM, just return nil if node is not available for any reason * Add node range customization when noderange flavour is enabled (default 8 nodes) * Limit nodes range & disable chat message sending by default * Bump protocol version
Diffstat (limited to 'src/network/networkprotocol.h')
-rw-r--r--src/network/networkprotocol.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h
index 759334839..b210d3d2e 100644
--- a/src/network/networkprotocol.h
+++ b/src/network/networkprotocol.h
@@ -17,8 +17,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef NETWORKPROTOCOL_HEADER
-#define NETWORKPROTOCOL_HEADER
+#pragma once
+
#include "util/string.h"
/*
@@ -168,6 +168,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
* sender
* type (RAW, NORMAL, ANNOUNCE, SYSTEM)
* content
+ Add TOCLIENT_CSM_FLAVOUR_LIMITS to define which CSM flavour should be limited
*/
#define LATEST_PROTOCOL_VERSION 35
@@ -313,6 +314,11 @@ enum ToClientCommand
f1000 time_speed
*/
+ TOCLIENT_CSM_FLAVOUR_LIMITS = 0x2A,
+ /*
+ u32 CSMFlavourLimits byteflag
+ */
+
// (oops, there is some gap here)
TOCLIENT_CHAT_MESSAGE = 0x2F,
@@ -1003,5 +1009,12 @@ enum PlayerListModifer: u8
PLAYER_LIST_REMOVE,
};
+enum CSMFlavourLimit : u64 {
+ CSM_FL_NONE = 0x00000000,
+ CSM_FL_LOOKUP_NODES = 0x00000001, // Limit node lookups
+ CSM_FL_CHAT_MESSAGES = 0x00000002, // Disable chat message sending from CSM
+ CSM_FL_READ_ITEMDEFS = 0x00000004, // Disable itemdef lookups
+ CSM_FL_READ_NODEDEFS = 0x00000008, // Disable nodedef lookups
+ CSM_FL_ALL = 0xFFFFFFFF,
+};
-#endif