Patchwork netfilter: ebtables: Use print_mac instead of own function

login
register
mail settings
Submitter Tobias Klauser
Date July 15, 2009, 10:55 a.m.
Message ID <1247655306-21337-1-git-send-email-klto@zhaw.ch>
Download mbox | patch
Permalink /patch/29806/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Tobias Klauser - July 15, 2009, 10:55 a.m.
ebt_log uses its own implementation of print_mac to print MAC addresses.
This patch converts it to use print_mac from linux/if_ether.h

Signed-off-by: Tobias Klauser <klto@zhaw.ch>
---
 net/bridge/netfilter/ebt_log.c |   31 +++++++++++--------------------
 1 files changed, 11 insertions(+), 20 deletions(-)
Patrick McHardy - July 15, 2009, 3:13 p.m.
Tobias Klauser wrote:
> ebt_log uses its own implementation of print_mac to print MAC addresses.
> This patch converts it to use print_mac from linux/if_ether.h

You can do this even simpler by using %pM as format string.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tobias Klauser - July 16, 2009, 7:25 a.m.
On 07/15/2009 05:13 PM, Patrick McHardy wrote:
> Tobias Klauser wrote:
>> ebt_log uses its own implementation of print_mac to print MAC addresses.
>> This patch converts it to use print_mac from linux/if_ether.h
> 
> You can do this even simpler by using %pM as format string.

Sorry, I didn't know about that one. I'll send an updated patch.

Thanks for the hint.

Tobias

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/bridge/netfilter/ebt_log.c b/net/bridge/netfilter/ebt_log.c
index a94f3cc..70fd072 100644
--- a/net/bridge/netfilter/ebt_log.c
+++ b/net/bridge/netfilter/ebt_log.c
@@ -12,6 +12,7 @@ 
 #include <linux/ip.h>
 #include <linux/in.h>
 #include <linux/if_arp.h>
+#include <linux/if_ether.h>
 #include <linux/spinlock.h>
 #include <net/netfilter/nf_log.h>
 #include <linux/ipv6.h>
@@ -50,14 +51,6 @@  struct arppayload
 	unsigned char ip_dst[4];
 };
 
-static void print_MAC(const unsigned char *p)
-{
-	int i;
-
-	for (i = 0; i < ETH_ALEN; i++, p++)
-		printk("%02x%c", *p, i == ETH_ALEN - 1 ? ' ':':');
-}
-
 static void
 print_ports(const struct sk_buff *skb, uint8_t protocol, int offset)
 {
@@ -86,16 +79,16 @@  ebt_log_packet(u_int8_t pf, unsigned int hooknum,
    const char *prefix)
 {
 	unsigned int bitmask;
+	DECLARE_MAC_BUF(macbuf);
 
 	spin_lock_bh(&ebt_log_lock);
-	printk("<%c>%s IN=%s OUT=%s MAC source = ", '0' + loginfo->u.log.level,
-	       prefix, in ? in->name : "", out ? out->name : "");
-
-	print_MAC(eth_hdr(skb)->h_source);
-	printk("MAC dest = ");
-	print_MAC(eth_hdr(skb)->h_dest);
-
-	printk("proto = 0x%04x", ntohs(eth_hdr(skb)->h_proto));
+	printk("<%c>%s IN=%s OUT=%s MAC source = %s",
+	       '0' + loginfo->u.log.level, prefix,
+	       in ? in->name : "", out ? out->name : "",
+	       print_mac(macbuf, eth_hdr(skb)->h_source));
+	printk(" MAC dest = %s proto = 0x%04x",
+	       print_mac(macbuf, eth_hdr(skb)->h_dest),
+	       ntohs(eth_hdr(skb)->h_proto));
 
 	if (loginfo->type == NF_LOG_TYPE_LOG)
 		bitmask = loginfo->u.log.logflags;
@@ -171,11 +164,9 @@  ebt_log_packet(u_int8_t pf, unsigned int hooknum,
 				printk(" INCOMPLETE ARP payload");
 				goto out;
 			}
-			printk(" ARP MAC SRC=");
-			print_MAC(ap->mac_src);
+			printk(" ARP MAC SRC=%s", print_mac(macbuf, ap->mac_src));
 			printk(" ARP IP SRC=%pI4", ap->ip_src);
-			printk(" ARP MAC DST=");
-			print_MAC(ap->mac_dst);
+			printk(" ARP MAC DST=%s", print_mac(macbuf, ap->mac_dst));
 			printk(" ARP IP DST=%pI4", ap->ip_dst);
 		}
 	}