mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
batman-adv: fix visualization output without neighbors on the primary interface
The primary entry and the corresponding secondary entries are missing when there are no neighbors on the primary interface. This also causes the TT entries to miss and makes nodes with multiply secondary interface fall apart since there is no way to see they are related without a primary entry. Fix this by always emitting a primary entry. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
parent
16a703459b
commit
beeb96a414
@ -207,7 +207,6 @@ int vis_seq_print_text(struct seq_file *seq, void *offset)
|
||||
int vis_server = atomic_read(&bat_priv->vis_mode);
|
||||
size_t buff_pos, buf_size;
|
||||
char *buff;
|
||||
int compare;
|
||||
|
||||
primary_if = primary_if_get_selected(bat_priv);
|
||||
if (!primary_if)
|
||||
@ -228,14 +227,18 @@ int vis_seq_print_text(struct seq_file *seq, void *offset)
|
||||
entries = (struct vis_info_entry *)
|
||||
((char *)packet + sizeof(*packet));
|
||||
|
||||
vis_data_insert_interface(packet->vis_orig,
|
||||
&vis_if_list, true);
|
||||
|
||||
for (j = 0; j < packet->entries; j++) {
|
||||
if (entries[j].quality == 0)
|
||||
continue;
|
||||
compare =
|
||||
compare_eth(entries[j].src, packet->vis_orig);
|
||||
if (compare_eth(entries[j].src,
|
||||
packet->vis_orig))
|
||||
continue;
|
||||
vis_data_insert_interface(entries[j].src,
|
||||
&vis_if_list,
|
||||
compare);
|
||||
false);
|
||||
}
|
||||
|
||||
hlist_for_each_entry(entry, pos, &vis_if_list, list) {
|
||||
@ -276,14 +279,18 @@ int vis_seq_print_text(struct seq_file *seq, void *offset)
|
||||
entries = (struct vis_info_entry *)
|
||||
((char *)packet + sizeof(*packet));
|
||||
|
||||
vis_data_insert_interface(packet->vis_orig,
|
||||
&vis_if_list, true);
|
||||
|
||||
for (j = 0; j < packet->entries; j++) {
|
||||
if (entries[j].quality == 0)
|
||||
continue;
|
||||
compare =
|
||||
compare_eth(entries[j].src, packet->vis_orig);
|
||||
if (compare_eth(entries[j].src,
|
||||
packet->vis_orig))
|
||||
continue;
|
||||
vis_data_insert_interface(entries[j].src,
|
||||
&vis_if_list,
|
||||
compare);
|
||||
false);
|
||||
}
|
||||
|
||||
hlist_for_each_entry(entry, pos, &vis_if_list, list) {
|
||||
|
Loading…
Reference in New Issue
Block a user