Skip to content
Snippets Groups Projects

postmarketos-base-ui: enable USB tethering v2

Merged Dylan Van Assche requested to merge dylanvanassche/pmaports:usb-tethering-v2 into master
Compare and Show latest version
3 files
+ 51
95
Compare changes
  • Side-by-side
  • Inline
Files
3
From 7c8d7639358820dc7c09f9f6160eb99ec126ea37 Mon Sep 17 00:00:00 2001
From b3df6ab4f36539127254ab3668958f07a88c62b8 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Sat, 23 Jul 2022 08:39:37 +0200
Subject: [PATCH] nm-dispatcher: dispatch on reapply
Subject: [PATCH 1/2] nm-dispatcher: dispatch on reapply
Trigger a dispatcher event when a connection is reapplied on a NM device.
Some devices such as phones have already a DHCP client running for accepting
@@ -19,71 +19,17 @@ To achieve this, add a new NetworkManager Dispatcher event
device. This way, a dispatcher script can handle the case above by
inspecting the IP method in the dispatcher script.
---
man/NetworkManager-dispatcher.xml | 8 ------
src/core/devices/nm-device.c | 17 +++++++++++-
src/core/nm-dispatcher.c | 27 ++++++++++---------
src/core/nm-dispatcher.h | 3 ++-
src/libnm-core-aux-extern/nm-dispatcher-api.h | 1 +
5 files changed, 33 insertions(+), 23 deletions(-)
src/core/devices/nm-device.c | 4 ++++
src/core/nm-dispatcher.c | 3 ++-
src/core/nm-dispatcher.h | 3 ++-
src/libnm-core-aux-extern/nm-dispatcher-api.h | 1 +
4 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/man/NetworkManager-dispatcher.xml b/man/NetworkManager-dispatcher.xml
index 4a603b1566..1f5eda5def 100644
--- a/man/NetworkManager-dispatcher.xml
+++ b/man/NetworkManager-dispatcher.xml
@@ -224,14 +224,6 @@
interface on which IP addresses and routes will be configured.
</para></listitem>
</varlistentry>
- <varlistentry>
- <term><varname>IP4_ADDRESS_N</varname></term>
- <listitem><para>
- The IPv4 address in the format "address/prefix gateway", where N is a number
- from 0 to (# IPv4 addresses - 1). gateway item in this variable is deprecated,
- use IP4_GATEWAY instead.
- </para></listitem>
- </varlistentry>
<varlistentry>
<term><varname>IP4_NUM_ADDRESSES</varname></term>
<listitem><para>
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
index 93399cafb2..6cfa673500 100644
index 93399cafb2..9979b57ef9 100644
--- a/src/core/devices/nm-device.c
+++ b/src/core/devices/nm-device.c
@@ -584,6 +584,9 @@ typedef struct _NMDevicePrivate {
bool v4_route_table_initialized : 1;
bool v6_route_table_initialized : 1;
+ char *v4_method;
+ char *v6_method;
+
bool l3config_merge_flags_has : 1;
bool v4_route_table_all_sync_before : 1;
@@ -5785,7 +5788,7 @@ concheck_update_state(NMDevice *self,
_dev_l3_register_l3cds(self, priv->l3cfg, TRUE, NM_TERNARY_DEFAULT);
}
-static const char *
+const char *
nm_device_get_effective_ip_config_method(NMDevice *self, int addr_family)
{
NMDeviceClass *klass;
@@ -12219,6 +12222,14 @@ activate_stage3_ip_config(NMDevice *self)
activate_stage3_ip_config_for_addr_family(self, AF_INET, ipv4_method);
activate_stage3_ip_config_for_addr_family(self, AF_INET6, ipv6_method);
+
+ if (priv->v4_method)
+ g_free(priv->v4_method);
+ priv->v4_method = g_strdup(ipv4_method);
+
+ if (priv->v6_method)
+ g_free(priv->v6_method);
+ priv->v6_method = g_strdup(ipv6_method);
}
void
@@ -13038,6 +13049,10 @@ check_and_reapply_connection(NMDevice *self,
@@ -13038,6 +13038,10 @@ check_and_reapply_connection(NMDevice *self,
if (priv->state >= NM_DEVICE_STATE_ACTIVATED)
nm_device_update_metered(self);
@@ -95,40 +41,16 @@ index 93399cafb2..6cfa673500 100644
}
diff --git a/src/core/nm-dispatcher.c b/src/core/nm-dispatcher.c
index ab361faa7b..1e7a1fa99b 100644
index ab361faa7b..01a6382609 100644
--- a/src/core/nm-dispatcher.c
+++ b/src/core/nm-dispatcher.c
@@ -456,19 +456,20 @@ dispatcher_done_cb(GObject *source, GAsyncResult *result, gpointer user_data)
dispatcher_call_id_free(call_id);
}
-static const char *action_table[] = {[NM_DISPATCHER_ACTION_HOSTNAME] = NMD_ACTION_HOSTNAME,
- [NM_DISPATCHER_ACTION_PRE_UP] = NMD_ACTION_PRE_UP,
- [NM_DISPATCHER_ACTION_UP] = NMD_ACTION_UP,
- [NM_DISPATCHER_ACTION_PRE_DOWN] = NMD_ACTION_PRE_DOWN,
- [NM_DISPATCHER_ACTION_DOWN] = NMD_ACTION_DOWN,
- [NM_DISPATCHER_ACTION_VPN_PRE_UP] = NMD_ACTION_VPN_PRE_UP,
- [NM_DISPATCHER_ACTION_VPN_UP] = NMD_ACTION_VPN_UP,
- [NM_DISPATCHER_ACTION_VPN_PRE_DOWN] = NMD_ACTION_VPN_PRE_DOWN,
- [NM_DISPATCHER_ACTION_VPN_DOWN] = NMD_ACTION_VPN_DOWN,
- [NM_DISPATCHER_ACTION_DHCP_CHANGE_4] = NMD_ACTION_DHCP4_CHANGE,
- [NM_DISPATCHER_ACTION_DHCP_CHANGE_6] = NMD_ACTION_DHCP6_CHANGE,
- [NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE] =
@@ -468,7 +468,8 @@ static const char *action_table[] = {[NM_DISPATCHER_ACTION_HOSTNAME] = NMD_
[NM_DISPATCHER_ACTION_DHCP_CHANGE_4] = NMD_ACTION_DHCP4_CHANGE,
[NM_DISPATCHER_ACTION_DHCP_CHANGE_6] = NMD_ACTION_DHCP6_CHANGE,
[NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE] =
- NMD_ACTION_CONNECTIVITY_CHANGE};
+static const char *action_table[] = {
+ [NM_DISPATCHER_ACTION_HOSTNAME] = NMD_ACTION_HOSTNAME,
+ [NM_DISPATCHER_ACTION_PRE_UP] = NMD_ACTION_PRE_UP,
+ [NM_DISPATCHER_ACTION_UP] = NMD_ACTION_UP,
+ [NM_DISPATCHER_ACTION_PRE_DOWN] = NMD_ACTION_PRE_DOWN,
+ [NM_DISPATCHER_ACTION_DOWN] = NMD_ACTION_DOWN,
+ [NM_DISPATCHER_ACTION_VPN_PRE_UP] = NMD_ACTION_VPN_PRE_UP,
+ [NM_DISPATCHER_ACTION_VPN_UP] = NMD_ACTION_VPN_UP,
+ [NM_DISPATCHER_ACTION_VPN_PRE_DOWN] = NMD_ACTION_VPN_PRE_DOWN,
+ [NM_DISPATCHER_ACTION_VPN_DOWN] = NMD_ACTION_VPN_DOWN,
+ [NM_DISPATCHER_ACTION_DHCP_CHANGE_4] = NMD_ACTION_DHCP4_CHANGE,
+ [NM_DISPATCHER_ACTION_DHCP_CHANGE_6] = NMD_ACTION_DHCP6_CHANGE,
+ [NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE] = NMD_ACTION_CONNECTIVITY_CHANGE,
+ [NM_DISPATCHER_ACTION_REAPPLY] = NMD_ACTION_REAPPLY};
+ NMD_ACTION_CONNECTIVITY_CHANGE,
+ [NM_DISPATCHER_ACTION_REAPPLY] = NMD_ACTION_REAPPLY};
static const char *
action_to_string(NMDispatcherAction action)
Loading