diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-07-23 10:10:17 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-07-23 10:10:17 -0700 |
commit | b3516c599bb0beb4b4827f28da472972344379c6 (patch) | |
tree | 91e31229b46539947fd078366e118c4fc27b8c57 /node | |
parent | 3ba54c7e3559359abd8d4734aa969829309a9dab (diff) | |
download | infinitytier-b3516c599bb0beb4b4827f28da472972344379c6.tar.gz infinitytier-b3516c599bb0beb4b4827f28da472972344379c6.zip |
Add a rate limiting circuit breaker to the network controller to prevent flooding attacks and race conditions.
Diffstat (limited to 'node')
-rw-r--r-- | node/IncomingPacket.cpp | 3 | ||||
-rw-r--r-- | node/NetworkController.hpp | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index c3d8cc6d..76c47933 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -717,6 +717,9 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons TRACE("NETWORK_CONFIG_REQUEST failed: internal error: %s",netconf.get("error","(unknown)").c_str()); break; + case NetworkController::NETCONF_QUERY_IGNORE: + break; + default: TRACE("NETWORK_CONFIG_REQUEST failed: invalid return value from NetworkController::doNetworkConfigRequest()"); break; diff --git a/node/NetworkController.hpp b/node/NetworkController.hpp index bef884de..ee481a62 100644 --- a/node/NetworkController.hpp +++ b/node/NetworkController.hpp @@ -54,7 +54,8 @@ public: NETCONF_QUERY_OK = 0, NETCONF_QUERY_OBJECT_NOT_FOUND = 1, NETCONF_QUERY_ACCESS_DENIED = 2, - NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3 + NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3, + NETCONF_QUERY_IGNORE = 4 }; NetworkController() {} |