waitForClientDataSocket method
Implementation
Future<void> waitForClientDataSocket({Duration? timeout}) {
Future<Socket> result;
if (_secureDataListener != null) {
var secureResult = _secureDataListener!.first;
if (timeout != null) {
secureResult = secureResult.timeout(timeout, onTimeout: () {
throw TimeoutException(
'Timeout reached while waiting for client data socket');
});
}
result = secureResult;
} else {
var plainResult = dataListener!.first;
if (timeout != null) {
plainResult = plainResult.timeout(timeout, onTimeout: () {
throw TimeoutException(
'Timeout reached while waiting for client data socket');
});
}
result = plainResult;
}
return result.then((value) {
dataSocket = value;
}).catchError((Object e) {
// dataListener was closed before a client connected (e.g. session ended)
logger.generalLog('Data connection wait cancelled: $e');
});
}