From 24957c135eaacd718f3c788285de33d64316b32e Mon Sep 17 00:00:00 2001
From: Felix Janda <felix.janda@posteo.de>
Date: Sat, 16 May 2015 10:31:24 +0200
Subject: [PATCH 1/2] src: Use stdint types

Backport of upstream commit 047f37b1d5d865084a435fd7594b8c5c332ccb8d

Please note that the backported patch does not include two changes
to arptables.h from the upstream - these modified lines added in commit
dbbe9f7de36aa3c7dd61dc89092c03f7902e474e which was committed after
the 0.0.4 release.

Upstream-status: backport
Signed-off-by: Felix Janda <felix.janda@posteo.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Brendan Heading <brendanheading@gmail.com>
---
 arptables.c                 | 8 ++++----
 include/arptables.h         | 3 ++-
 include/libarptc/libarptc.h | 7 ++++---
 libarptc/libarptc.c         | 4 ++--
 libarptc/libarptc_incl.c    | 2 +-
 5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/arptables.c b/arptables.c
index 5535ab2..6d1377f 100644
--- a/arptables.c
+++ b/arptables.c
@@ -230,7 +230,7 @@ extern void dump_entries(const arptc_handle_t handle);
    /etc/protocols */
 struct pprot {
 	char *name;
-	u_int8_t num;
+	uint8_t num;
 };
 
 /* Primitive headers... */
@@ -925,7 +925,7 @@ mask_to_dotted(const struct in_addr *mask)
 {
 	int i;
 	static char buf[20];
-	u_int32_t maskaddr, bits;
+	uint32_t maskaddr, bits;
 
 	maskaddr = ntohl(mask->s_addr);
 
@@ -967,7 +967,7 @@ string_to_number(const char *s, unsigned int min, unsigned int max,
 }
 
 static void
-set_option(unsigned int *options, unsigned int option, u_int16_t *invflg,
+set_option(unsigned int *options, unsigned int option, uint16_t *invflg,
 	   int invert)
 {
 	if (*options & option)
@@ -1107,7 +1107,7 @@ register_target(struct arptables_target *me)
 }
 
 static void
-print_num(u_int64_t number, unsigned int format)
+print_num(uint64_t number, unsigned int format)
 {
 	if (format & FMT_KILOMEGAGIGA) {
 		if (number > 99999) {
diff --git a/include/arptables.h b/include/arptables.h
index 820b664..e6a6ba6 100644
--- a/include/arptables.h
+++ b/include/arptables.h
@@ -1,6 +1,7 @@
 #ifndef _ARPTABLES_USER_H
 #define _ARPTABLES_USER_H
 
+#include <stdint.h>
 #include "arptables_common.h"
 #include "libarptc/libarptc.h"
 
@@ -126,7 +127,7 @@ extern char *mask_to_dotted(const struct in_addr *mask);
 
 extern void parse_hostnetworkmask(const char *name, struct in_addr **addrpp,
                       struct in_addr *maskp, unsigned int *naddrs);
-extern u_int16_t parse_protocol(const char *s);
+extern uint16_t parse_protocol(const char *s);
 
 extern int do_command(int argc, char *argv[], char **table,
 		      arptc_handle_t *handle);
diff --git a/include/libarptc/libarptc.h b/include/libarptc/libarptc.h
index e4f1175..76fbfab 100644
--- a/include/libarptc/libarptc.h
+++ b/include/libarptc/libarptc.h
@@ -6,9 +6,10 @@
 #include <linux/netfilter_arp/arp_tables.h>
 
 #ifndef ARPT_MIN_ALIGN
-/* arpt_entry has pointers and u_int64_t's in it, so if you align to
-   it, you'll also align to any crazy matches and targets someone
-   might write */
+/* arpt_entry has pointers and uint64_t's in it, so if you align to
+ * it, you'll also align to any crazy matches and targets someone
+ * might write.
+ */
 #define ARPT_MIN_ALIGN (__alignof__(struct arpt_entry))
 #endif
 
diff --git a/libarptc/libarptc.c b/libarptc/libarptc.c
index 2dcaaef..701bae0 100644
--- a/libarptc/libarptc.c
+++ b/libarptc/libarptc.c
@@ -256,8 +256,8 @@ unconditional(const struct arpt_arp *arp)
 {
 	unsigned int i;
 
-	for (i = 0; i < sizeof(*arp)/sizeof(u_int32_t); i++)
-		if (((u_int32_t *)arp)[i])
+	for (i = 0; i < sizeof(*arp) / sizeof(uint32_t); i++)
+		if (((uint32_t *)arp)[i])
 			return 0;
 
 	return 1;
diff --git a/libarptc/libarptc_incl.c b/libarptc/libarptc_incl.c
index 2fa3d43..b41fcb2 100644
--- a/libarptc/libarptc_incl.c
+++ b/libarptc/libarptc_incl.c
@@ -1706,7 +1706,7 @@ TC_COMMIT(TC_HANDLE_T *handle)
 		/* Kernel will think that pointer should be 64-bits, and get
 		   padding.  So we accomodate here (assumption: alignment of
 		   `counters' is on 64-bit boundary). */
-		u_int64_t *kernptr = (u_int64_t *)&newcounters->counters;
+		uint64_t *kernptr = (uint64_t *)&newcounters->counters;
 		if ((unsigned long)&newcounters->counters % 8 != 0) {
 			fprintf(stderr,
 				"counters alignment incorrect! Mail rusty!\n");
-- 
2.4.3