-
Notifications
You must be signed in to change notification settings - Fork 384
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
batctl: Dynamically select header format in netlink_print_neighbors
The netlink_print_neighbors() function previously used a static header format, which did not account for variations between the neighbor list output from different BATMAN routing algorithms (BATMAN_IV vs. BATMAN_V). This change ensures that the table header output in `batctl n` is accurate for both BATMAN routing algorithms. Signed-off-by: Sven Eckelmann <[email protected]>
- Loading branch information
Showing
2 changed files
with
56 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
batctl/patches/0007-batctl-Dynamically-select-header-format-in-netlink_p.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
From: Noah Peterson <[email protected]> | ||
Date: Tue, 10 Sep 2024 13:22:02 -0600 | ||
Subject: batctl: Dynamically select header format in netlink_print_neighbors | ||
|
||
The netlink_print_neighbors() function previously used a static header | ||
format, which did not account for variations between the neighbor list | ||
output from different BATMAN routing algorithms (BATMAN_IV vs. BATMAN_V). | ||
|
||
This change ensures that the table header output in `batctl n` is accurate | ||
for both BATMAN routing algorithms. | ||
|
||
Signed-off-by: Noah Peterson <[email protected]> | ||
Signed-off-by: Sven Eckelmann <[email protected]> | ||
Origin: upstream, https://git.open-mesh.org/batctl.git/commit/649456d9d00cf701eb35cee1c8c5442752c70613 | ||
|
||
--- a/neighbors.c | ||
+++ b/neighbors.c | ||
@@ -6,6 +6,7 @@ | ||
* License-Filename: LICENSES/preferred/GPL-2.0 | ||
*/ | ||
|
||
+#include <errno.h> | ||
#include <net/if.h> | ||
#include <netinet/if_ether.h> | ||
#include <netlink/netlink.h> | ||
@@ -119,9 +120,28 @@ static int netlink_print_neighbors(struc | ||
int read_opts, float orig_timeout, | ||
float watch_interval) | ||
{ | ||
+ char *header = NULL; | ||
+ char *info_header; | ||
+ | ||
+ /* only parse routing algorithm name */ | ||
+ last_err = -EINVAL; | ||
+ info_header = netlink_get_info(state, BATADV_CMD_GET_ORIGINATORS, NULL); | ||
+ free(info_header); | ||
+ | ||
+ if (strlen(algo_name_buf) == 0) | ||
+ return last_err; | ||
+ | ||
+ if (!strcmp("BATMAN_IV", algo_name_buf)) | ||
+ header = "IF Neighbor last-seen\n"; | ||
+ if (!strcmp("BATMAN_V", algo_name_buf)) | ||
+ header = " Neighbor last-seen speed IF\n"; | ||
+ | ||
+ if (!header) | ||
+ return -EINVAL; | ||
+ | ||
return netlink_print_common(state, orig_iface, read_opts, | ||
orig_timeout, watch_interval, | ||
- "IF Neighbor last-seen\n", | ||
+ header, | ||
BATADV_CMD_GET_NEIGHBORS, | ||
neighbors_callback); | ||
} |