mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: custom timeout
This commit is contained in:
@@ -46,14 +46,16 @@ Future<SSHClient> genClient(
|
||||
ServerPrivateInfo spi, {
|
||||
void Function(GenSSHClientStatus)? onStatus,
|
||||
String? privateKey,
|
||||
Duration? timeout,
|
||||
}) async {
|
||||
onStatus?.call(GenSSHClientStatus.socket);
|
||||
late SSHSocket socket;
|
||||
final duration = timeout ?? const Duration(seconds: 5);
|
||||
try {
|
||||
socket = await SSHSocket.connect(
|
||||
spi.ip,
|
||||
spi.port,
|
||||
timeout: const Duration(seconds: 5),
|
||||
timeout: duration,
|
||||
);
|
||||
} catch (e) {
|
||||
if (spi.alterUrl == null) rethrow;
|
||||
@@ -62,7 +64,7 @@ Future<SSHClient> genClient(
|
||||
socket = await SSHSocket.connect(
|
||||
ipPort.ip,
|
||||
ipPort.port,
|
||||
timeout: const Duration(seconds: 5),
|
||||
timeout: duration,
|
||||
);
|
||||
} catch (e) {
|
||||
rethrow;
|
||||
|
||||
@@ -198,7 +198,10 @@ class ServerProvider extends ChangeNotifier {
|
||||
|
||||
// Only reconnect if neccessary
|
||||
if (newSpi.shouldReconnect(old)) {
|
||||
_servers[newSpi.id]?.client = await genClient(newSpi);
|
||||
_servers[newSpi.id]?.client = await genClient(
|
||||
newSpi,
|
||||
timeout: _settingStore.timeoutD,
|
||||
);
|
||||
refreshData(spi: newSpi);
|
||||
}
|
||||
|
||||
@@ -231,7 +234,10 @@ class ServerProvider extends ChangeNotifier {
|
||||
final time1 = DateTime.now();
|
||||
|
||||
try {
|
||||
s.client = await genClient(spi);
|
||||
s.client = await genClient(
|
||||
spi,
|
||||
timeout: _settingStore.timeoutD,
|
||||
);
|
||||
} catch (e) {
|
||||
_limiter.inc(sid);
|
||||
s.status.failedInfo = e.toString();
|
||||
|
||||
@@ -153,4 +153,14 @@ class SettingStore extends PersistentStore {
|
||||
'serverTabUseOldUI',
|
||||
false,
|
||||
);
|
||||
|
||||
/// Time out for server connect and more...
|
||||
late final timeout = StoreProperty(
|
||||
box,
|
||||
'timeOut',
|
||||
5,
|
||||
);
|
||||
|
||||
/// Duration of [timeout]
|
||||
Duration get timeoutD => Duration(seconds: timeout.fetch());
|
||||
}
|
||||
|
||||
@@ -326,6 +326,7 @@ class _SSHPageState extends State<SSHPage> {
|
||||
return _write('Sending password to auth...');
|
||||
}
|
||||
},
|
||||
timeout: _setting.timeoutD,
|
||||
);
|
||||
_write('Connected\r\n');
|
||||
_write('Terminal size: ${_terminal.viewWidth}x${_terminal.viewHeight}\r\n');
|
||||
|
||||
Reference in New Issue
Block a user