[iputils] Update patches

jsynacek jsynacek at fedoraproject.org
Tue Oct 16 11:39:15 UTC 2012


commit c5503791d83ba7acbf66dd4e032be730fce3aa40
Author: Jan Synacek <jsynacek at redhat.com>
Date:   Tue Oct 16 13:19:12 2012 +0200

    Update patches

 iputils-20020927-rh.patch                          |    8 +-
 iputils-20070202-idn.patch                         |   27 ++---
 iputils-20071127-corr_type.patch                   |   36 -----
 iputils-20071127-infiniband.patch                  |  150 +++++++++++---------
 iputils-20100418-flowlabel.patch                   |    9 +-
 iputils-20101006-eth.patch                         |   85 ++++++------
 ...llback-to-numeric-addresses-while-exiting.patch |    2 +-
 iputils-20101006-unused.patch                      |   25 ----
 iputils.spec                                       |    1 +
 9 files changed, 143 insertions(+), 200 deletions(-)
---
diff --git a/iputils-20020927-rh.patch b/iputils-20020927-rh.patch
index 0c83bc5..94c7e8d 100644
--- a/iputils-20020927-rh.patch
+++ b/iputils-20020927-rh.patch
@@ -1,12 +1,12 @@
---- iputils/Makefile.rh7	2002-09-20 20:23:55.000000000 +0200
-+++ iputils/Makefile	2004-05-12 15:08:25.638310270 +0200
-@@ -12,9 +12,9 @@ ADDLIB=
+--- a/Makefile	2012-10-11 08:36:40.000000000 +0200
++++ b/Makefile	2012-10-15 11:53:14.663426710 +0200
+@@ -26,9 +26,9 @@ endif
  
  CC=gcc
  # What a pity, all new gccs are buggy and -Werror does not work. Sigh.
 -#CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -Werror
 -CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
--CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES) 
+-CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
 +CCOPT=-Wstrict-prototypes -fno-strict-aliasing -Werror
 +DEFINES += -D_GNU_SOURCE
 +CFLAGS += $(RPM_OPT_FLAGS) $(CCOPT) $(GLIBCFIX) $(DEFINES)
diff --git a/iputils-20070202-idn.patch b/iputils-20070202-idn.patch
index 50347d3..ee64089 100644
--- a/iputils-20070202-idn.patch
+++ b/iputils-20070202-idn.patch
@@ -1,21 +1,13 @@
-diff -up iputils-s20100418/Makefile.idn iputils-s20100418/Makefile
---- iputils-s20100418/Makefile.idn	2010-04-20 16:07:59.018479157 +0200
-+++ iputils-s20100418/Makefile	2010-04-20 16:10:06.389481427 +0200
-@@ -28,8 +28,13 @@ all: $(TARGETS)
- 
- tftpd: tftpd.o tftpsubs.o
--arping: arping.o -lsysfs
-+arping: arping.o
-+
+--- iputils-s20121011/Makefile.orig	2012-10-15 12:30:47.000000000 +0200
++++ iputils-s20121011/Makefile	2012-10-15 12:31:53.057830727 +0200
+@@ -48,7 +48,7 @@
+ arping: arping.o
+ 	$(LINK.o) -o $@ $^ $(LIB_SYSFS) $(LIB_CAP)
  ping: ping.o ping_common.o
--ping6: ping6.o ping_common.o -lresolv -lcrypto
-+	$(CC) $(CFLAGS) $(LDFLAGS) ping.o ping_common.o -lidn -o ping
-+
-+ping6: ping6.o ping_common.o
-+	$(CC) $(CFLAGS) $(LDFLAGS) ping6.o ping_common.o -lresolv -lcrypto -o ping6
-+
- ping.o ping6.o ping_common.o: ping_common.h
- tftpd.o tftpsubs.o: tftp.h
+-	$(LINK.o) -o $@ $^ $(LIB_CAP)
++	$(LINK.o) -o $@ $^ -lidn $(LIB_CAP)
+ ping6: ping6.o ping_common.o
+ 	$(LINK.o) -o $@ $^ -lresolv -lcrypto $(LIB_CAP)
  
 diff -up iputils-s20100418/ping.c.idn iputils-s20100418/ping.c
 --- iputils-s20100418/ping.c.idn	2010-04-20 16:07:59.038484302 +0200
@@ -95,4 +87,3 @@ diff -up iputils-s20100418/ping_common.c.idn iputils-s20100418/ping_common.c
 +	setlocale(LC_ALL, "");
  }
  
- 
diff --git a/iputils-20071127-corr_type.patch b/iputils-20071127-corr_type.patch
index f7df5a6..8246aa6 100644
--- a/iputils-20071127-corr_type.patch
+++ b/iputils-20071127-corr_type.patch
@@ -1,15 +1,3 @@
-diff -up iputils-s20100418/ping6.c.corr_type iputils-s20100418/ping6.c
---- iputils-s20100418/ping6.c.corr_type	2010-04-20 15:42:39.181245576 +0200
-+++ iputils-s20100418/ping6.c	2010-04-20 15:42:39.198230879 +0200
-@@ -1335,7 +1335,7 @@ parse_reply(struct msghdr *msg, int cc, 
- #endif
- 			if (c->cmsg_len < CMSG_LEN(sizeof(int)))
- 				continue;
--			hops = *(int*)CMSG_DATA(c);
-+			memcpy(&hops, CMSG_DATA(c), sizeof (int));
- 		}
- 	}
- 
 diff -up iputils-s20100418/ping.c.corr_type iputils-s20100418/ping.c
 --- iputils-s20100418/ping.c.corr_type	2010-04-20 15:42:39.193242030 +0200
 +++ iputils-s20100418/ping.c	2010-04-20 15:42:39.199231317 +0200
@@ -62,27 +50,3 @@ diff -up iputils-s20100418/rdisc.c.corr_type iputils-s20100418/rdisc.c
  	rt.rt_flags = RTF_UP | RTF_GATEWAY;
  
  	sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-diff -up iputils-s20100418/tracepath6.c.corr_type iputils-s20100418/tracepath6.c
---- iputils-s20100418/tracepath6.c.corr_type	2010-04-18 06:45:45.000000000 +0200
-+++ iputils-s20100418/tracepath6.c	2010-04-20 15:44:15.129480911 +0200
-@@ -173,7 +173,7 @@ restart:
- #ifdef IPV6_2292HOPLIMIT
- 			case IPV6_2292HOPLIMIT:
- #endif
--				rethops = *(int*)CMSG_DATA(cmsg);
-+				memcpy(&rethops, CMSG_DATA(cmsg), sizeof (int));
- 				break;
- 			default:
- 				printf("cmsg6:%d\n ", cmsg->cmsg_type);
-diff -up iputils-s20100418/tracepath.c.corr_type iputils-s20100418/tracepath.c
---- iputils-s20100418/tracepath.c.corr_type	2010-04-18 06:45:45.000000000 +0200
-+++ iputils-s20100418/tracepath.c	2010-04-20 15:42:39.203240403 +0200
-@@ -145,7 +145,7 @@ restart:
- 			if (cmsg->cmsg_type == IP_RECVERR) {
- 				e = (struct sock_extended_err *) CMSG_DATA(cmsg);
- 			} else if (cmsg->cmsg_type == IP_TTL) {
--				rethops = *(int*)CMSG_DATA(cmsg);
-+				memcpy(&rethops, CMSG_DATA(cmsg), sizeof(int));
- 			} else {
- 				printf("cmsg:%d\n ", cmsg->cmsg_type);
- 			}
diff --git a/iputils-20071127-infiniband.patch b/iputils-20071127-infiniband.patch
index 0d1a544..238abd3 100644
--- a/iputils-20071127-infiniband.patch
+++ b/iputils-20071127-infiniband.patch
@@ -1,16 +1,17 @@
-diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
---- iputils-s20101006/arping.c.infiniband	2010-10-11 09:17:57.440390823 +0200
-+++ iputils-s20101006/arping.c	2010-10-11 09:23:36.147402252 +0200
-@@ -32,8 +32,6 @@
+--- iputils-s20121011/arping.c.orig	2012-10-16 11:31:38.542591530 +0200
++++ iputils-s20121011/arping.c	2012-10-16 11:31:03.000000000 +0200
+@@ -35,10 +35,6 @@
  #include <netinet/in.h>
  #include <arpa/inet.h>
  
+-#ifdef USE_SYSFS
 -#include <sysfs/libsysfs.h>
+-#endif
 -
  #include "SNAPSHOT.h"
  
  static void usage(void) __attribute__((noreturn));
-@@ -52,14 +50,22 @@ int unicasting;
+@@ -57,14 +53,22 @@ int unicasting;
  int s;
  int broadcast_only;
  
@@ -30,12 +31,12 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
 +#define SYSFS_BROADCAST         "broadcast"
 +#define SYSFS_PATH_ENV          "SYSFS_PATH"
 +#define SYSFS_PATH_LEN          256
-+#define SOCKADDR_LEN		(2 * sizeof(struct sockaddr_ll))
++#define SOCKADDR_LEN            (2 * sizeof(struct sockaddr_ll))
 +
  #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
  			   ((tv1).tv_usec-(tv2).tv_usec)/1000 )
  
-@@ -166,6 +172,10 @@ void finish(void)
+@@ -171,6 +175,10 @@ void finish(void)
  		printf("\n");
  		fflush(stdout);
  	}
@@ -46,7 +47,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  	if (dad)
  		exit(!!received);
  	if (unsolicited)
-@@ -186,8 +196,7 @@ void catcher(void)
+@@ -191,8 +199,7 @@ void catcher(void)
  		finish();
  
  	if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) {
@@ -56,7 +57,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  		if (count == 0 && unsolicited)
  			finish();
  	}
-@@ -234,7 +243,7 @@ int recv_pack(unsigned char *buf, int le
+@@ -239,7 +246,7 @@ int recv_pack(unsigned char *buf, int le
  		return 0;
  	if (ah->ar_pln != 4)
  		return 0;
@@ -65,7 +66,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  		return 0;
  	if (len < sizeof(*ah) + 2*(4 + ah->ar_hln))
  		return 0;
-@@ -245,7 +254,7 @@ int recv_pack(unsigned char *buf, int le
+@@ -250,7 +257,7 @@ int recv_pack(unsigned char *buf, int le
  			return 0;
  		if (src.s_addr != dst_ip.s_addr)
  			return 0;
@@ -74,7 +75,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  			return 0;
  	} else {
  		/* DAD packet was:
-@@ -263,7 +272,7 @@ int recv_pack(unsigned char *buf, int le
+@@ -268,7 +275,7 @@ int recv_pack(unsigned char *buf, int le
  		 */
  		if (src_ip.s_addr != dst.s_addr)
  			return 0;
@@ -83,7 +84,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  			return 0;
  		if (src.s_addr && src.s_addr != dst_ip.s_addr)
  			return 0;
-@@ -279,7 +288,7 @@ int recv_pack(unsigned char *buf, int le
+@@ -284,7 +291,7 @@ int recv_pack(unsigned char *buf, int le
  			printf("for %s ", inet_ntoa(dst_ip));
  			s_printed = 1;
  		}
@@ -92,7 +93,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  			if (!s_printed)
  				printf("for ");
  			printf("[");
-@@ -305,40 +314,67 @@ int recv_pack(unsigned char *buf, int le
+@@ -310,43 +317,67 @@ int recv_pack(unsigned char *buf, int le
  	if (quit_on_reply)
  		finish();
  	if(!broadcast_only) {
@@ -106,86 +107,89 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
 -void set_device_broadcast(char *device, unsigned char *ba, size_t balen)
 +int get_sysfs_mnt_path(char *mnt_path, size_t len)
  {
+-#if USE_SYSFS
 -	struct sysfs_class_device *dev;
 -	struct sysfs_attribute *brdcast;
 -	unsigned char *p;
 -	int ch;
-+        const char *sysfs_path_env;
-+        int pth_len=0;
++	const char *sysfs_path_env;
++	int pth_len=0;
  
 -	dev = sysfs_open_class_device("net", device);
 -	if (!dev) {
 -		perror("sysfs_open_class_device(net)");
 -		exit(2);
 -	}
-+        if (len == 0 || mnt_path == NULL)
-+                return -1;
++	if (len == 0 || mnt_path == NULL)
++		return -1;
  
 -	brdcast = sysfs_get_classdev_attr(dev, "broadcast");
 -	if (!brdcast) {
 -		perror("sysfs_get_classdev_attr(broadcast)");
 -		exit(2);
 -	}
-+        /* possible overrride of real mount path */
-+        sysfs_path_env = getenv(SYSFS_PATH_ENV);
-+        memset(mnt_path, 0, len);
-+        strncpy(mnt_path,
-+                sysfs_path_env != NULL ? sysfs_path_env : SYSFS_MNT_PATH,
-+                len-1);
++	/* possible overrride of real mount path */
++	sysfs_path_env = getenv(SYSFS_PATH_ENV);
++	memset(mnt_path, 0, len);
++	strncpy(mnt_path,
++			sysfs_path_env != NULL ? sysfs_path_env : SYSFS_MNT_PATH,
++			len-1);
  
 -	if (sysfs_read_attribute(brdcast)) {
 -		perror("sysfs_read_attribute");
 -		exit(2);
--	}
-+        if ((pth_len = strlen(mnt_path)) > 0 && mnt_path[pth_len-1] == '/')
-+                mnt_path[pth_len-1] = '\0';
++	if ((pth_len = strlen(mnt_path)) > 0 && mnt_path[pth_len-1] == '/')
++		mnt_path[pth_len-1] = '\0';
 +
-+        return 0;
++	return 0;
 +}
 +
 +int make_sysfs_broadcast_path(char *broadcast_path, size_t len)
 +{
-+        char mnt_path[SYSFS_PATH_LEN];
++	char mnt_path[SYSFS_PATH_LEN];
 +
-+        if (get_sysfs_mnt_path(mnt_path, len) != 0)
-+                return -1;
- 
--	for (p = ba, ch = 0; p < ba + balen; p++, ch += 3)
--		*p = strtoul(brdcast->value + ch, NULL, 16);
-+        snprintf(broadcast_path, len,
-+                "%s/" SYSFS_CLASS "/" SYSFS_NET "/%s/" SYSFS_BROADCAST,
-+                mnt_path, device);
- 
--	return;
-+        return 0;
++	if (get_sysfs_mnt_path(mnt_path, len) != 0)
++		return -1;
++
++	snprintf(broadcast_path, len,
++			 "%s/" SYSFS_CLASS "/" SYSFS_NET "/%s/" SYSFS_BROADCAST,
++			 mnt_path, device);
++
++	return 0;
 +}
 +
 +char * read_sysfs_broadcast(char *brdcast_path)
 +{
-+        int fd;
-+        int len_to_read;
-+        char *brdcast = NULL;
-+
-+        if ((fd = open(brdcast_path, O_RDONLY)) > -1) {
-+                len_to_read = lseek(fd, 0L, SEEK_END);
-+                if ((brdcast = malloc(len_to_read+1)) != NULL) {
-+                        lseek(fd, 0L, SEEK_SET);
-+                        memset(brdcast, 0, len_to_read+1);
-+                        if (read(fd, brdcast, len_to_read) == -1) {
-+                                free(brdcast);
-+                                brdcast = NULL;
-+                        }
-+                }
-+                close(fd);
-+        }
++	int fd;
++	int len_to_read;
++	char *brdcast = NULL;
 +
-+        return brdcast;
++	if ((fd = open(brdcast_path, O_RDONLY)) > -1) {
++		len_to_read = lseek(fd, 0L, SEEK_END);
++		if ((brdcast = malloc(len_to_read+1)) != NULL) {
++			lseek(fd, 0L, SEEK_SET);
++			memset(brdcast, 0, len_to_read+1);
++			if (read(fd, brdcast, len_to_read) == -1) {
++				free(brdcast);
++				brdcast = NULL;
++			}
++		}
++		close(fd);
+ 	}
+ 
+-	for (p = ba, ch = 0; p < ba + balen; p++, ch += 3)
+-		*p = strtoul(brdcast->value + ch, NULL, 16);
+-#else
+-	memset(ba, -1, balen);
+-#endif
+-	return;
++	return brdcast;
  }
  
  int
-@@ -356,6 +392,17 @@ main(int argc, char **argv)
- 		exit(-1);
+@@ -375,6 +406,17 @@ main(int argc, char **argv)
  	}
+ #endif
  
 +	me = malloc(SOCKADDR_LEN);
 +	if (!me) {
@@ -201,7 +205,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  	while ((ch = getopt(argc, argv, "h?bfDUAqc:w:s:I:V")) != EOF) {
  		switch(ch) {
  		case 'b':
-@@ -504,34 +551,51 @@ main(int argc, char **argv)
+@@ -523,31 +565,48 @@ main(int argc, char **argv)
  		close(probe_fd);
  	};
  
@@ -235,10 +239,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
  
 -	he = me;
 +	memcpy(he, me, SOCKADDR_LEN);
- 
- #if 1
--	set_device_broadcast(device, ((struct sockaddr_ll *)&he)->sll_addr,
--			     ((struct sockaddr_ll *)&he)->sll_halen);
++
 +	char brdcast_path[SYSFS_PATH_LEN];
 +	char *brdcast_val=NULL;
 +	char *next_ch;
@@ -256,11 +257,24 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
 +	for (ch=0; ch<he->sll_halen; ch++) {
 +		he->sll_addr[ch] = strtol(brdcast_val + (ch*3), &next_ch, 16);
 +	}
-+
+ 
+-	set_device_broadcast(device, ((struct sockaddr_ll *)&he)->sll_addr,
+-			     ((struct sockaddr_ll *)&he)->sll_halen);
 +	free(brdcast_val);
- #else
--	memset(((struct sockaddr_ll *)&he)->sll_addr, -1, ((struct sockaddr_ll *)&he)->sll_halen);
-+	memset(he->sll_addr, -1, he->sll_halen);
- #endif
  
  	if (!quiet) {
+ 		printf("ARPING %s ", inet_ntoa(dst));
+--- iputils-s20121011/Makefile~	2012-10-16 11:32:11.548574050 +0200
++++ iputils-s20121011/Makefile	2012-10-16 11:33:19.326548839 +0200
+@@ -19,11 +19,6 @@ ifneq ($(USE_CAP),no)
+ 	LIB_CAP = -lcap
+ endif
+ 
+-ifneq ($(USE_SYSFS),no)
+-	DEFINES += -DUSE_SYSFS
+-	LIB_SYSFS = -lsysfs
+-endif
+-
+ CC=gcc
+ # What a pity, all new gccs are buggy and -Werror does not work. Sigh.
+ CCOPT=-Wstrict-prototypes -fno-strict-aliasing -Werror
diff --git a/iputils-20100418-flowlabel.patch b/iputils-20100418-flowlabel.patch
index 9fdf4d3..b8e6ece 100644
--- a/iputils-20100418-flowlabel.patch
+++ b/iputils-20100418-flowlabel.patch
@@ -42,12 +42,11 @@ diff -up iputils-s20100418/in6_flowlabel.h.flowlabel iputils-s20100418/in6_flowl
 +#define IPV6_FLOWLABEL_MGR	32
 +#define IPV6_FLOWINFO_SEND	33
 +
-diff -up iputils-s20100418/Makefile.flowlabel iputils-s20100418/Makefile
---- iputils-s20100418/Makefile.flowlabel	2010-05-17 13:54:03.339556213 +0200
-+++ iputils-s20100418/Makefile	2010-05-17 13:54:03.423585869 +0200
-@@ -35,7 +35,7 @@ ping: ping.o ping_common.o
+--- iputils-s20121011/Makefile.flowlabel	2012-10-16 10:31:41.000000000 +0200
++++ iputils-s20121011/Makefile	2012-10-16 10:33:05.687870860 +0200
+@@ -52,7 +52,7 @@
  ping6: ping6.o ping_common.o
- 	$(CC) $(CFLAGS) $(LDFLAGS) ping6.o ping_common.o -lresolv -lcrypto -o ping6
+ 	$(LINK.o) -o $@ $^ -lresolv -lcrypto $(LIB_CAP)
  
 -ping.o ping6.o ping_common.o: ping_common.h
 +ping.o ping6.o ping_common.o: ping_common.h in6_flowlabel.h
diff --git a/iputils-20101006-eth.patch b/iputils-20101006-eth.patch
index edffdda..475e872 100644
--- a/iputils-20101006-eth.patch
+++ b/iputils-20101006-eth.patch
@@ -1,7 +1,6 @@
-diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
---- iputils-s20101006/arping.c.eth	2011-11-10 09:06:08.101748109 +0100
-+++ iputils-s20101006/arping.c	2011-11-10 09:34:09.880501394 +0100
-@@ -37,7 +37,7 @@
+--- iputils-s20121011/arping.c.orig	2012-10-16 11:46:12.000000000 +0200
++++ iputils-s20121011/arping.c	2012-10-16 11:49:09.746673028 +0200
+@@ -40,7 +40,7 @@
  static void usage(void) __attribute__((noreturn));
  
  int quit_on_reply=0;
@@ -10,20 +9,20 @@ diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
  int ifindex;
  char *source;
  struct in_addr src, dst;
-@@ -66,6 +66,11 @@ int received, brd_recv, req_recv;
+@@ -69,6 +69,11 @@ int received, brd_recv, req_recv;
  #define SYSFS_PATH_LEN          256
- #define SOCKADDR_LEN		(2 * sizeof(struct sockaddr_ll))
+ #define SOCKADDR_LEN            (2 * sizeof(struct sockaddr_ll))
  
-+#define PREF_ETH		"eth"
-+#define PREF_EM			"em"
++#define PREF_ETH                "eth"
++#define PREF_EM                 "em"
 +
 +static char *dev_file = "/proc/self/net/dev";
 +
  #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
  			   ((tv1).tv_usec-(tv2).tv_usec)/1000 )
  
-@@ -377,6 +382,46 @@ char * read_sysfs_broadcast(char *brdcas
-         return brdcast;
+@@ -380,6 +385,46 @@ char * read_sysfs_broadcast(char *brdcas
+ 	return brdcast;
  }
  
 +/*
@@ -32,44 +31,44 @@ diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
 + */
 +char * get_first_ethernet(void)
 +{
-+  FILE *f;
-+  char buf[255], *dv, *smc;
-+  char pci[16];
++	FILE *f;
++	char buf[255], *dv, *smc;
++	char pci[16];
 +
-+  memset(pci, 0, sizeof(pci));
-+  if ((f = fopen(dev_file, "r")) != NULL)
-+  {
-+    // go through network dev file
-+    while (fgets (buf, sizeof(buf), f) != NULL)
-+    {
-+      // the line describes interface
-+      if ((smc = strchr(buf, ':')) != NULL)
-+      {
-+        // trim white characters
-+        for (dv=buf, *smc=0; *dv <= ' '; dv++) ;
-+        // is "eth" (originial ethernet name) or "em" (ethernet on board)
-+        if (!strncmp(dv, PREF_ETH, strlen(PREF_ETH)) ||
-+            !strncmp(dv, PREF_EM, strlen(PREF_EM)))
-+        {
-+          return strdup(dv);
-+        }
-+        // remember the first pci NIC-card
-+        if (strlen(pci) == 0 && dv[0] == 'p' && isdigit(dv[1]))
-+        {
-+          strcpy(pci, dv);
-+        }
-+      }
-+    }
-+    fclose(f);
-+  }
-+  // return pci NIC-card or nil if no if name
-+  return strlen(pci) > 0 ? strdup(pci) : 0L;
++	memset(pci, 0, sizeof(pci));
++	if ((f = fopen(dev_file, "r")) != NULL)
++	{
++		// go through network dev file
++		while (fgets (buf, sizeof(buf), f) != NULL)
++		{
++			// the line describes interface
++			if ((smc = strchr(buf, ':')) != NULL)
++			{
++				// trim white characters
++				for (dv=buf, *smc=0; *dv <= ' '; dv++) ;
++				// is "eth" (originial ethernet name) or "em" (ethernet on board)
++				if (!strncmp(dv, PREF_ETH, strlen(PREF_ETH)) ||
++					!strncmp(dv, PREF_EM, strlen(PREF_EM)))
++				{
++					return strdup(dv);
++				}
++				// remember the first pci NIC-card
++				if (strlen(pci) == 0 && dv[0] == 'p' && isdigit(dv[1]))
++				{
++					strcpy(pci, dv);
++				}
++			}
++		}
++		fclose(f);
++	}
++	// return pci NIC-card or nil if no if name
++	return strlen(pci) > 0 ? strdup(pci) : 0L;
 +}
 +
  int
  main(int argc, char **argv)
  {
-@@ -403,6 +448,8 @@ main(int argc, char **argv)
+@@ -417,6 +462,8 @@ main(int argc, char **argv)
  		exit(1);
  	}
  
@@ -78,7 +77,7 @@ diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
  	while ((ch = getopt(argc, argv, "h?bfDUAqc:w:s:I:V")) != EOF) {
  		switch(ch) {
  		case 'b':
-@@ -429,6 +476,10 @@ main(int argc, char **argv)
+@@ -443,6 +490,10 @@ main(int argc, char **argv)
  			timeout = atoi(optarg);
  			break;
  		case 'I':
diff --git a/iputils-20101006-ping-fallback-to-numeric-addresses-while-exiting.patch b/iputils-20101006-ping-fallback-to-numeric-addresses-while-exiting.patch
index 58e6002..1edb4b0 100644
--- a/iputils-20101006-ping-fallback-to-numeric-addresses-while-exiting.patch
+++ b/iputils-20101006-ping-fallback-to-numeric-addresses-while-exiting.patch
@@ -44,7 +44,7 @@
  #include <netdb.h>
 +#include <setjmp.h>
  
- #ifdef HAVE_CAPABILITIES
+ #ifdef CAPABILITIES
  #include <sys/capability.h>
 @@ -219,3 +220,6 @@ extern int gather_statistics(__u8 *ptr,
  			     int csfailed, struct timeval *tv, char *from,
diff --git a/iputils-20101006-unused.patch b/iputils-20101006-unused.patch
index 22fe6b6..156a3ee 100644
--- a/iputils-20101006-unused.patch
+++ b/iputils-20101006-unused.patch
@@ -18,28 +18,3 @@ diff -up iputils-s20101006/clockdiff.c.unused iputils-s20101006/clockdiff.c
  		/*
  		 * a hosts using a time format different from
  		 * ms. since midnight UT (as per RFC792) should
-diff -up iputils-s20101006/ping6.c.unused iputils-s20101006/ping6.c
---- iputils-s20101006/ping6.c.unused	2011-02-09 16:14:11.413299738 +0100
-+++ iputils-s20101006/ping6.c	2011-02-09 16:46:39.158299066 +0100
-@@ -1215,7 +1215,7 @@ void pr_niquery_reply_name(struct ni_hdr
- 	}
- 	while (p < end) {
- 		int fqdn = 1;
--		int len;
-+		int buf_len;
- 		int i;
- 
- 		memset(buf, 0xff, sizeof(buf));
-@@ -1230,10 +1230,10 @@ void pr_niquery_reply_name(struct ni_hdr
- 		}
- 		if (p + ret < end && *(p + ret) == '\0')
- 			fqdn = 0;
--		len = strlen(buf);
-+		buf_len = strlen(buf);
- 
- 		putchar(' ');
--		for (i = 0; i < strlen(buf); i++)
-+		for (i = 0; i < buf_len; i++)
- 			putchar_safe(buf[i]);
- 		if (fqdn)
- 			putchar('.');
diff --git a/iputils.spec b/iputils.spec
index f1d09c6..ccfc4f3 100644
--- a/iputils.spec
+++ b/iputils.spec
@@ -170,6 +170,7 @@ mv -f RELNOTES.tmp RELNOTES
 * Mon Oct 15 2012 Jan Synáček <jsynacek at redhat.com> - 20121011-1
 - Update to iputils-s20121011
   + drop unnecessary patches
+  + update patches
 
 * Wed Aug 22 2012 Jan Synáček <jsynacek at redhat.com> - 20101006-18
 - Improve spec for fedora


More information about the scm-commits mailing list