From 96c8bb5db1a2e0ced999a366e3cf28f9895ec39f Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Tue, 24 Mar 2026 21:51:35 +0100
Subject: [PATCH] feat: Bonjour auto-discovery + VPN IP field in connection flow
---
lib/screens/settings_screen.dart | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart
index 0cfb0fc..2a41067 100644
--- a/lib/screens/settings_screen.dart
+++ b/lib/screens/settings_screen.dart
@@ -18,6 +18,7 @@
class _SettingsScreenState extends ConsumerState<SettingsScreen> {
final _formKey = GlobalKey<FormState>();
late final TextEditingController _localHostController;
+ late final TextEditingController _vpnHostController;
late final TextEditingController _remoteHostController;
late final TextEditingController _portController;
late final TextEditingController _macController;
@@ -30,6 +31,8 @@
final config = ref.read(serverConfigProvider);
_localHostController =
TextEditingController(text: config?.localHost ?? '');
+ _vpnHostController =
+ TextEditingController(text: config?.vpnHost ?? '');
_remoteHostController =
TextEditingController(text: config?.host ?? '');
_portController =
@@ -43,6 +46,7 @@
@override
void dispose() {
_localHostController.dispose();
+ _vpnHostController.dispose();
_remoteHostController.dispose();
_portController.dispose();
_macController.dispose();
@@ -59,6 +63,9 @@
localHost: _localHostController.text.trim().isEmpty
? null
: _localHostController.text.trim(),
+ vpnHost: _vpnHostController.text.trim().isEmpty
+ ? null
+ : _vpnHostController.text.trim(),
macAddress: _macController.text.trim().isEmpty
? null
: _macController.text.trim(),
@@ -153,6 +160,19 @@
),
const SizedBox(height: 16),
+ // VPN address
+ Text('VPN Address',
+ style: Theme.of(context).textTheme.bodyMedium),
+ const SizedBox(height: 4),
+ TextFormField(
+ controller: _vpnHostController,
+ decoration: const InputDecoration(
+ hintText: '10.8.0.1 (OpenVPN static IP)',
+ ),
+ keyboardType: TextInputType.url,
+ ),
+ const SizedBox(height: 16),
+
// Remote address
Text('Remote Address',
style: Theme.of(context).textTheme.bodyMedium),
--
Gitblit v1.3.1