Wireless Daemon for Linux
 help / color / mirror / Atom feed
* [PATCH v2 1/2] doc: document [General].Country main.conf option
@ 2022-09-08 23:06 James Prestwood
  2022-09-08 23:06 ` [PATCH v2 2/2] manager: add support for [General].Country James Prestwood
  2022-09-09 14:13 ` [PATCH v2 1/2] doc: document [General].Country main.conf option Denis Kenzior
  0 siblings, 2 replies; 3+ messages in thread
From: James Prestwood @ 2022-09-08 23:06 UTC (permalink / raw)
  To: iwd; +Cc: James Prestwood

This lets the user set a country code explicitly.
---
 src/iwd.config.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/iwd.config.rst b/src/iwd.config.rst
index 422d4c03..bafb6b85 100644
--- a/src/iwd.config.rst
+++ b/src/iwd.config.rst
@@ -206,6 +206,16 @@ The group ``[General]`` contains general settings.
        required are LoadCredentialEncrypted or SetCredentialEncrypted, and the
        secret identifier should be named whatever SystemdEncrypt is set to.
 
+   * - Country
+     - Value: Country Code (ISO Alpha-2)
+
+       Requests the country be set for the system. Note that setting this is
+       simply a **request** to set the country, and does not guarantee the
+       country will be set. For a self-managed wiphy it is never possible to set
+       the country from userspace. For other devices any regulatory domain
+       request is just a 'hint' and ultimately left up to the kernel to set the
+       country.
+
 Network
 -------
 
-- 
2.34.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 2/2] manager: add support for [General].Country
  2022-09-08 23:06 [PATCH v2 1/2] doc: document [General].Country main.conf option James Prestwood
@ 2022-09-08 23:06 ` James Prestwood
  2022-09-09 14:13 ` [PATCH v2 1/2] doc: document [General].Country main.conf option Denis Kenzior
  1 sibling, 0 replies; 3+ messages in thread
From: James Prestwood @ 2022-09-08 23:06 UTC (permalink / raw)
  To: iwd; +Cc: James Prestwood

This lets the user set a country as the global regulatory
domain if the kernel/driver isn't doing it on its own.
---
 src/manager.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/src/manager.c b/src/manager.c
index 6ff642f1..fed02777 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -800,6 +800,14 @@ static void manager_config_notify(struct l_genl_msg *msg, void *user_data)
 	}
 }
 
+static void manager_set_reg_cb(struct l_genl_msg *msg, void *user_data)
+{
+	int err = l_genl_msg_get_error(msg);
+
+	if (err < 0)
+		l_error("Failed to set country (%d)", err);
+}
+
 static int manager_init(void)
 {
 	struct l_genl *genl = iwd_get_genl();
@@ -810,6 +818,7 @@ static int manager_init(void)
 	const char *randomize_str;
 	const char *if_whitelist = iwd_get_iface_whitelist();
 	const char *if_blacklist = iwd_get_iface_blacklist();
+	const char *cc;
 
 	nl80211 = l_genl_family_new(genl, NL80211_GENL_NAME);
 
@@ -853,6 +862,23 @@ static int manager_init(void)
 		goto error;
 	}
 
+	cc = l_settings_get_value(config, "General", "Country");
+	if (cc) {
+		if (strlen(cc) != 2 || !l_ascii_isalpha(cc[0]) ||
+					!l_ascii_isalpha(cc[1])) {
+			l_warn("[General].Country=%s is invalid. Country will "
+				"not be set", cc);
+		} else {
+			msg = l_genl_msg_new(NL80211_CMD_REQ_SET_REG);
+			l_genl_msg_append_attr(msg, NL80211_ATTR_REG_ALPHA2,
+						2, cc);
+			if (!l_genl_family_send(nl80211, msg,
+						manager_set_reg_cb,
+						NULL, NULL))
+				l_warn("Failed to set country");
+		}
+	}
+
 	randomize_str = l_settings_get_value(config, "General",
 							"AddressRandomization");
 	if (randomize_str) {
-- 
2.34.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 1/2] doc: document [General].Country main.conf option
  2022-09-08 23:06 [PATCH v2 1/2] doc: document [General].Country main.conf option James Prestwood
  2022-09-08 23:06 ` [PATCH v2 2/2] manager: add support for [General].Country James Prestwood
@ 2022-09-09 14:13 ` Denis Kenzior
  1 sibling, 0 replies; 3+ messages in thread
From: Denis Kenzior @ 2022-09-09 14:13 UTC (permalink / raw)
  To: James Prestwood, iwd

Hi James,

On 9/8/22 18:06, James Prestwood wrote:
> This lets the user set a country code explicitly.
> ---
>   src/iwd.config.rst | 10 ++++++++++
>   1 file changed, 10 insertions(+)
> 

Both applied, thanks.

Regards,
-Denis


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-09-09 14:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-08 23:06 [PATCH v2 1/2] doc: document [General].Country main.conf option James Prestwood
2022-09-08 23:06 ` [PATCH v2 2/2] manager: add support for [General].Country James Prestwood
2022-09-09 14:13 ` [PATCH v2 1/2] doc: document [General].Country main.conf option Denis Kenzior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox