|
@@ -41,7 +41,7 @@ static int proc_interfaces_read(struct seq_file *seq, void *offset)
|
|
|
|
|
|
rcu_read_lock();
|
|
|
list_for_each_entry_rcu(batman_if, &if_list, list) {
|
|
|
- seq_printf(seq, "[%8s] %s %s \n",
|
|
|
+ seq_printf(seq, "[%8s] %s %s\n",
|
|
|
(batman_if->if_active == IF_ACTIVE ?
|
|
|
"active" : "inactive"),
|
|
|
batman_if->dev,
|
|
@@ -188,18 +188,18 @@ static int proc_originators_read(struct seq_file *seq, void *offset)
|
|
|
rcu_read_lock();
|
|
|
if (list_empty(&if_list)) {
|
|
|
rcu_read_unlock();
|
|
|
- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n");
|
|
|
+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n");
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
if (((struct batman_if *)if_list.next)->if_active != IF_ACTIVE) {
|
|
|
rcu_read_unlock();
|
|
|
- seq_printf(seq, "BATMAN disabled - primary interface not active \n");
|
|
|
+ seq_printf(seq, "BATMAN disabled - primary interface not active\n");
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
seq_printf(seq,
|
|
|
- " %-14s (%s/%i) %17s [%10s]: %20s ... [B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%s] \n",
|
|
|
+ " %-14s (%s/%i) %17s [%10s]: %20s ... [B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%s]\n",
|
|
|
"Originator", "#", TQ_MAX_VALUE, "Nexthop", "outgoingIF",
|
|
|
"Potential nexthops", SOURCE_VERSION, REVISION_VERSION_STR,
|
|
|
((struct batman_if *)if_list.next)->dev,
|
|
@@ -240,7 +240,7 @@ static int proc_originators_read(struct seq_file *seq, void *offset)
|
|
|
spin_unlock_irqrestore(&orig_hash_lock, flags);
|
|
|
|
|
|
if (batman_count == 0)
|
|
|
- seq_printf(seq, "No batman nodes in range ... \n");
|
|
|
+ seq_printf(seq, "No batman nodes in range ...\n");
|
|
|
|
|
|
end:
|
|
|
return 0;
|
|
@@ -262,7 +262,7 @@ static int proc_transt_local_read(struct seq_file *seq, void *offset)
|
|
|
rcu_read_lock();
|
|
|
if (list_empty(&if_list)) {
|
|
|
rcu_read_unlock();
|
|
|
- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n");
|
|
|
+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n");
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
@@ -294,7 +294,7 @@ static int proc_transt_global_read(struct seq_file *seq, void *offset)
|
|
|
rcu_read_lock();
|
|
|
if (list_empty(&if_list)) {
|
|
|
rcu_read_unlock();
|
|
|
- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n");
|
|
|
+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n");
|
|
|
goto end;
|
|
|
}
|
|
|
rcu_read_unlock();
|
|
@@ -350,9 +350,9 @@ static int proc_vis_srv_read(struct seq_file *seq, void *offset)
|
|
|
{
|
|
|
int vis_server = atomic_read(&vis_mode);
|
|
|
|
|
|
- seq_printf(seq, "[%c] client mode (server disabled) \n",
|
|
|
+ seq_printf(seq, "[%c] client mode (server disabled)\n",
|
|
|
(vis_server == VIS_TYPE_CLIENT_UPDATE) ? 'x' : ' ');
|
|
|
- seq_printf(seq, "[%c] server mode (server enabled) \n",
|
|
|
+ seq_printf(seq, "[%c] server mode (server enabled)\n",
|
|
|
(vis_server == VIS_TYPE_SERVER_SYNC) ? 'x' : ' ');
|
|
|
|
|
|
return 0;
|
|
@@ -369,6 +369,8 @@ static int proc_vis_data_read(struct seq_file *seq, void *offset)
|
|
|
struct vis_info *info;
|
|
|
struct vis_info_entry *entries;
|
|
|
HLIST_HEAD(vis_if_list);
|
|
|
+ struct if_list_entry *entry;
|
|
|
+ struct hlist_node *pos, *n;
|
|
|
int i;
|
|
|
char tmp_addr_str[ETH_STR_LEN];
|
|
|
unsigned long flags;
|
|
@@ -387,17 +389,34 @@ static int proc_vis_data_read(struct seq_file *seq, void *offset)
|
|
|
info = hashit.bucket->data;
|
|
|
entries = (struct vis_info_entry *)
|
|
|
((char *)info + sizeof(struct vis_info));
|
|
|
- addr_to_string(tmp_addr_str, info->packet.vis_orig);
|
|
|
- seq_printf(seq, "%s,", tmp_addr_str);
|
|
|
|
|
|
for (i = 0; i < info->packet.entries; i++) {
|
|
|
- proc_vis_read_entry(seq, &entries[i], &vis_if_list,
|
|
|
- info->packet.vis_orig);
|
|
|
+ if (entries[i].quality == 0)
|
|
|
+ continue;
|
|
|
+ proc_vis_insert_interface(entries[i].src, &vis_if_list,
|
|
|
+ compare_orig(entries[i].src,
|
|
|
+ info->packet.vis_orig));
|
|
|
}
|
|
|
|
|
|
- /* add primary/secondary records */
|
|
|
- proc_vis_read_prim_sec(seq, &vis_if_list);
|
|
|
- seq_printf(seq, "\n");
|
|
|
+ hlist_for_each_entry(entry, pos, &vis_if_list, list) {
|
|
|
+ addr_to_string(tmp_addr_str, entry->addr);
|
|
|
+ seq_printf(seq, "%s,", tmp_addr_str);
|
|
|
+
|
|
|
+ for (i = 0; i < info->packet.entries; i++)
|
|
|
+ proc_vis_read_entry(seq, &entries[i],
|
|
|
+ entry->addr, entry->primary);
|
|
|
+
|
|
|
+ /* add primary/secondary records */
|
|
|
+ if (compare_orig(entry->addr, info->packet.vis_orig))
|
|
|
+ proc_vis_read_prim_sec(seq, &vis_if_list);
|
|
|
+
|
|
|
+ seq_printf(seq, "\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ hlist_for_each_entry_safe(entry, pos, n, &vis_if_list, list) {
|
|
|
+ hlist_del(&entry->list);
|
|
|
+ kfree(entry);
|
|
|
+ }
|
|
|
}
|
|
|
spin_unlock_irqrestore(&vis_hash_lock, flags);
|
|
|
|