Add a circuit breaker for VERB_PUSH_DIRECT_PATHS.

This commit is contained in:
Adam Ierymenko 2015-10-27 18:18:26 -07:00
parent 88b100e5d0
commit cdc99bfee1
4 changed files with 56 additions and 8 deletions

View file

@ -319,11 +319,6 @@
*/
#define ZT_MIN_PATH_CONFIRMATION_INTERVAL 1000
/**
* Interval between direct path pushes in milliseconds
*/
#define ZT_DIRECT_PATH_PUSH_INTERVAL 120000
/**
* How long (max) to remember network certificates of membership?
*
@ -347,10 +342,29 @@
*/
#define ZT_MAX_BRIDGE_SPAM 16
/**
* Interval between direct path pushes in milliseconds
*/
#define ZT_DIRECT_PATH_PUSH_INTERVAL 120000
/**
* Maximum number of endpoints to contact per address type (to limit pushes like GitHub issue #235)
*/
#define ZT_PUSH_DIRECT_PATHS_MAX_ENDPOINTS_PER_TYPE 4
#define ZT_PUSH_DIRECT_PATHS_MAX_ENDPOINTS_PER_TYPE 5
/**
* Time horizon for push direct paths cutoff
*/
#define ZT_PUSH_DIRECT_PATHS_CUTOFF_TIME 60000
/**
* Maximum number of direct path pushes within cutoff time
*
* This limits response to PUSH_DIRECT_PATHS to CUTOFF_LIMIT responses
* per CUTOFF_TIME milliseconds per peer to prevent this from being
* useful for DOS amplification attacks.
*/
#define ZT_PUSH_DIRECT_PATHS_CUTOFF_LIMIT 5
/**
* A test pseudo-network-ID that can be joined