@ -1424,10 +1424,12 @@ void EmbeddedNetworkController::_request(
ms . identity = identity ;
}
/*
if ( authenticationExpiryTime > 0 ) {
std : : lock_guard < std : : mutex > l ( _expiringSoon_l ) ;
_expiringSoon . insert ( std : : pair < int64_t , _MemberStatusKey > ( authenticationExpiryTime , msk ) ) ;
}
*/
}
} else {
// If they are not authorized, STOP!
@ -1441,18 +1443,13 @@ void EmbeddedNetworkController::_request(
// If we made it this far, they are authorized (and authenticated).
// -------------------------------------------------------------------------
int64_t credentialtmd = ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MAX_MAX_DELTA ;
if ( now > ns . mostRecentDeauthTime ) {
// If we recently de-authorized a member, shrink credential TTL/max delta to
// be below the threshold required to exclude it. Cap this to a min/max to
// prevent jitter or absurdly large values.
const uint64_t deauthWindow = now - ns . mostRecentDeauthTime ;
if ( deauthWindow < ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MIN_MAX_DELTA ) {
credentialtmd = ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MIN_MAX_DELTA ;
} else if ( deauthWindow < ( ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MAX_MAX_DELTA + 5000ULL ) ) {
credentialtmd = deauthWindow - 5000ULL ;
}
// Default timeout: 15 minutes. Maximum: two hours. Can be specified by an optional field in the network config
// if something longer than 15 minutes is desired. Minimum is 5 minutes since shorter than that would be flaky.
int64_t credentialtmd = ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_DFL_MAX_DELTA ;
if ( network . contains ( " certificateTimeoutWindowSize " ) ) {
credentialtmd = ( int64_t ) network [ " certificateTimeoutWindowSize " ] ;
}
credentialtmd = std : : max ( std : : min ( credentialtmd , ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MAX_MAX_DELTA ) , ZT_NETWORKCONFIG_DEFAULT_CREDENTIAL_TIME_MIN_MAX_DELTA ) ;
std : : unique_ptr < NetworkConfig > nc ( new NetworkConfig ( ) ) ;
@ -1884,6 +1881,7 @@ void EmbeddedNetworkController::_startThreads()
}
}
/*
expired . clear ( ) ;
int64_t now = OSUtils : : now ( ) ;
{
@ -1898,38 +1896,16 @@ void EmbeddedNetworkController::_startThreads()
expired . push_back ( std : : pair < uint64_t , uint64_t > ( s - > second . networkId , s - > second . nodeId ) ) ;
}
_expiringSoon . erase ( s + + ) ;
} else if ( ( when - now ) > 10 00) {
} else if ( ( when - now ) > 5 00) {
// Don't bother going further into the future than necessary.
break ;
} else {
// Skip not yet expired entries.
+ + s ;
}
}
}
/*
std : : set < std : : pair < uint64_t , uint64_t > > soon ;
std : : set < std : : pair < uint64_t , uint64_t > > expired ;
_db . membersExpiring ( soon , expired ) ;
for ( auto s = soon . begin ( ) ; s ! = soon . end ( ) ; + + s ) {
Identity identity ;
Dictionary < ZT_NETWORKCONFIG_METADATA_DICT_CAPACITY > lastMetaData ;
{
std : : unique_lock < std : : mutex > ll ( _memberStatus_l ) ;
auto ms = _memberStatus . find ( _MemberStatusKey ( s - > first , s - > second ) ) ;
if ( ms ! = _memberStatus . end ( ) ) {
lastMetaData = ms - > second . lastRequestMetaData ;
identity = ms - > second . identity ;
}
}
if ( identity ) {
request ( s - > first , InetAddress ( ) , 0 , identity , lastMetaData ) ;
}
}
*/
/*
for ( auto e = expired . begin ( ) ; e ! = expired . end ( ) ; + + e ) {
onNetworkMemberDeauthorize ( nullptr , e - > first , e - > second ) ;
}