]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
iw: 'phy <name> reg get' shouldn't dump all domains
authorBrian Norris <briannorris@chromium.org>
Tue, 31 Mar 2020 23:28:33 +0000 (16:28 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 24 Apr 2020 09:53:31 +0000 (11:53 +0200)
Right now, 'iw phy ... reg get' gets translated to NLM_F_DUMP, which
dumps all domains. But this command really is looking for non-DUMP
semantics -- it only wants the domain for the specified wiphy, or (per
the kernel's choice) the global, if the wiphy doesn't have its own.

We can achieve this by skipping the handle_reg_get() -> "reg dump"
indirection.

[ with a wiphy-specific domain ]
Before:
  # iw phy phy0 reg get
  global
  country XX: DFS-YYY
  [...]
  phy#0
  country AA: DFS-BBB
  [...]

After:
  # iw phy phy0 reg get
  phy#0
  country AA: DFS-BBB
  [...]

[ without a wiphy-specific domain ]
Before and after (unchanged):
  # iw phy phy0 reg get
  global
  country XX: DFS-YYY
  [...]

Signed-off-by: Brian Norris <briannorris@chromium.org>
Link: https://lore.kernel.org/r/20200331232833.142026-1-briannorris@chromium.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
reg.c

diff --git a/reg.c b/reg.c
index db1b12906519fd2450d7054dd598c70a0cc21b8c..3dc4b0eec6798b401138269c9379f2ccad515a4d 100644 (file)
--- a/reg.c
+++ b/reg.c
@@ -256,7 +256,7 @@ static int handle_reg_get(struct nl80211_state *state,
 }
 COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_NONE, handle_reg_get,
        "Print out the kernel's current regulatory domain information.");
-COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_PHY, handle_reg_get,
+COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_PHY, handle_reg_dump,
        "Print out the devices' current regulatory domain information.");
 HIDDEN(reg, dump, NULL, NL80211_CMD_GET_REG, NLM_F_DUMP, CIB_NONE,
        handle_reg_dump);