Update patches

This commit is contained in:
Jan Synacek 2012-10-16 13:19:12 +02:00
parent e355996ccc
commit c5503791d8
9 changed files with 143 additions and 200 deletions

View File

@ -1,12 +1,12 @@
--- iputils/Makefile.rh7 2002-09-20 20:23:55.000000000 +0200 --- a/Makefile 2012-10-11 08:36:40.000000000 +0200
+++ iputils/Makefile 2004-05-12 15:08:25.638310270 +0200 +++ b/Makefile 2012-10-15 11:53:14.663426710 +0200
@@ -12,9 +12,9 @@ ADDLIB= @@ -26,9 +26,9 @@ endif
CC=gcc CC=gcc
# What a pity, all new gccs are buggy and -Werror does not work. Sigh. # 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 -Werror
-CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
-CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES) -CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
+CCOPT=-Wstrict-prototypes -fno-strict-aliasing -Werror +CCOPT=-Wstrict-prototypes -fno-strict-aliasing -Werror
+DEFINES += -D_GNU_SOURCE +DEFINES += -D_GNU_SOURCE
+CFLAGS += $(RPM_OPT_FLAGS) $(CCOPT) $(GLIBCFIX) $(DEFINES) +CFLAGS += $(RPM_OPT_FLAGS) $(CCOPT) $(GLIBCFIX) $(DEFINES)

View File

@ -1,21 +1,13 @@
diff -up iputils-s20100418/Makefile.idn iputils-s20100418/Makefile --- iputils-s20121011/Makefile.orig 2012-10-15 12:30:47.000000000 +0200
--- iputils-s20100418/Makefile.idn 2010-04-20 16:07:59.018479157 +0200 +++ iputils-s20121011/Makefile 2012-10-15 12:31:53.057830727 +0200
+++ iputils-s20100418/Makefile 2010-04-20 16:10:06.389481427 +0200 @@ -48,7 +48,7 @@
@@ -28,8 +28,13 @@ all: $(TARGETS) arping: arping.o
$(LINK.o) -o $@ $^ $(LIB_SYSFS) $(LIB_CAP)
tftpd: tftpd.o tftpsubs.o
-arping: arping.o -lsysfs
+arping: arping.o
+
ping: ping.o ping_common.o ping: ping.o ping_common.o
-ping6: ping6.o ping_common.o -lresolv -lcrypto - $(LINK.o) -o $@ $^ $(LIB_CAP)
+ $(CC) $(CFLAGS) $(LDFLAGS) ping.o ping_common.o -lidn -o ping + $(LINK.o) -o $@ $^ -lidn $(LIB_CAP)
+ ping6: ping6.o ping_common.o
+ping6: ping6.o ping_common.o $(LINK.o) -o $@ $^ -lresolv -lcrypto $(LIB_CAP)
+ $(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
diff -up iputils-s20100418/ping.c.idn iputils-s20100418/ping.c diff -up iputils-s20100418/ping.c.idn iputils-s20100418/ping.c
--- iputils-s20100418/ping.c.idn 2010-04-20 16:07:59.038484302 +0200 --- 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, ""); + setlocale(LC_ALL, "");
} }

View File

@ -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 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.corr_type 2010-04-20 15:42:39.193242030 +0200
+++ iputils-s20100418/ping.c 2010-04-20 15:42:39.199231317 +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; rt.rt_flags = RTF_UP | RTF_GATEWAY;
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); 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);
}

View File

@ -1,16 +1,17 @@
diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c --- iputils-s20121011/arping.c.orig 2012-10-16 11:31:38.542591530 +0200
--- iputils-s20101006/arping.c.infiniband 2010-10-11 09:17:57.440390823 +0200 +++ iputils-s20121011/arping.c 2012-10-16 11:31:03.000000000 +0200
+++ iputils-s20101006/arping.c 2010-10-11 09:23:36.147402252 +0200 @@ -35,10 +35,6 @@
@@ -32,8 +32,6 @@
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
-#ifdef USE_SYSFS
-#include <sysfs/libsysfs.h> -#include <sysfs/libsysfs.h>
-#endif
- -
#include "SNAPSHOT.h" #include "SNAPSHOT.h"
static void usage(void) __attribute__((noreturn)); static void usage(void) __attribute__((noreturn));
@@ -52,14 +50,22 @@ int unicasting; @@ -57,14 +53,22 @@ int unicasting;
int s; int s;
int broadcast_only; int broadcast_only;
@ -30,12 +31,12 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
+#define SYSFS_BROADCAST "broadcast" +#define SYSFS_BROADCAST "broadcast"
+#define SYSFS_PATH_ENV "SYSFS_PATH" +#define SYSFS_PATH_ENV "SYSFS_PATH"
+#define SYSFS_PATH_LEN 256 +#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 + \ #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
((tv1).tv_usec-(tv2).tv_usec)/1000 ) ((tv1).tv_usec-(tv2).tv_usec)/1000 )
@@ -166,6 +172,10 @@ void finish(void) @@ -171,6 +175,10 @@ void finish(void)
printf("\n"); printf("\n");
fflush(stdout); fflush(stdout);
} }
@ -46,7 +47,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
if (dad) if (dad)
exit(!!received); exit(!!received);
if (unsolicited) if (unsolicited)
@@ -186,8 +196,7 @@ void catcher(void) @@ -191,8 +199,7 @@ void catcher(void)
finish(); finish();
if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) { 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) if (count == 0 && unsolicited)
finish(); 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; return 0;
if (ah->ar_pln != 4) if (ah->ar_pln != 4)
return 0; return 0;
@ -65,7 +66,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
return 0; return 0;
if (len < sizeof(*ah) + 2*(4 + ah->ar_hln)) if (len < sizeof(*ah) + 2*(4 + ah->ar_hln))
return 0; 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; return 0;
if (src.s_addr != dst_ip.s_addr) if (src.s_addr != dst_ip.s_addr)
return 0; return 0;
@ -74,7 +75,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
return 0; return 0;
} else { } else {
/* DAD packet was: /* 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) if (src_ip.s_addr != dst.s_addr)
return 0; return 0;
@ -83,7 +84,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
return 0; return 0;
if (src.s_addr && src.s_addr != dst_ip.s_addr) if (src.s_addr && src.s_addr != dst_ip.s_addr)
return 0; 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)); printf("for %s ", inet_ntoa(dst_ip));
s_printed = 1; s_printed = 1;
} }
@ -92,7 +93,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
if (!s_printed) if (!s_printed)
printf("for "); printf("for ");
printf("["); 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) if (quit_on_reply)
finish(); finish();
if(!broadcast_only) { 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) -void set_device_broadcast(char *device, unsigned char *ba, size_t balen)
+int get_sysfs_mnt_path(char *mnt_path, size_t len) +int get_sysfs_mnt_path(char *mnt_path, size_t len)
{ {
-#if USE_SYSFS
- struct sysfs_class_device *dev; - struct sysfs_class_device *dev;
- struct sysfs_attribute *brdcast; - struct sysfs_attribute *brdcast;
- unsigned char *p; - unsigned char *p;
- int ch; - int ch;
+ const char *sysfs_path_env; + const char *sysfs_path_env;
+ int pth_len=0; + int pth_len=0;
- dev = sysfs_open_class_device("net", device); - dev = sysfs_open_class_device("net", device);
- if (!dev) { - if (!dev) {
- perror("sysfs_open_class_device(net)"); - perror("sysfs_open_class_device(net)");
- exit(2); - exit(2);
- } - }
+ if (len == 0 || mnt_path == NULL) + if (len == 0 || mnt_path == NULL)
+ return -1; + return -1;
- brdcast = sysfs_get_classdev_attr(dev, "broadcast"); - brdcast = sysfs_get_classdev_attr(dev, "broadcast");
- if (!brdcast) { - if (!brdcast) {
- perror("sysfs_get_classdev_attr(broadcast)"); - perror("sysfs_get_classdev_attr(broadcast)");
- exit(2); - exit(2);
- } - }
+ /* possible overrride of real mount path */ + /* possible overrride of real mount path */
+ sysfs_path_env = getenv(SYSFS_PATH_ENV); + sysfs_path_env = getenv(SYSFS_PATH_ENV);
+ memset(mnt_path, 0, len); + memset(mnt_path, 0, len);
+ strncpy(mnt_path, + strncpy(mnt_path,
+ sysfs_path_env != NULL ? sysfs_path_env : SYSFS_MNT_PATH, + sysfs_path_env != NULL ? sysfs_path_env : SYSFS_MNT_PATH,
+ len-1); + len-1);
- if (sysfs_read_attribute(brdcast)) { - if (sysfs_read_attribute(brdcast)) {
- perror("sysfs_read_attribute"); - perror("sysfs_read_attribute");
- exit(2); - exit(2);
- } + if ((pth_len = strlen(mnt_path)) > 0 && mnt_path[pth_len-1] == '/')
+ if ((pth_len = strlen(mnt_path)) > 0 && mnt_path[pth_len-1] == '/') + mnt_path[pth_len-1] = '\0';
+ mnt_path[pth_len-1] = '\0';
+ +
+ return 0; + return 0;
+} +}
+ +
+int make_sysfs_broadcast_path(char *broadcast_path, size_t len) +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) + if (get_sysfs_mnt_path(mnt_path, len) != 0)
+ return -1; + return -1;
+
- for (p = ba, ch = 0; p < ba + balen; p++, ch += 3) + snprintf(broadcast_path, len,
- *p = strtoul(brdcast->value + ch, NULL, 16); + "%s/" SYSFS_CLASS "/" SYSFS_NET "/%s/" SYSFS_BROADCAST,
+ snprintf(broadcast_path, len, + mnt_path, device);
+ "%s/" SYSFS_CLASS "/" SYSFS_NET "/%s/" SYSFS_BROADCAST, +
+ mnt_path, device); + return 0;
- return;
+ return 0;
+} +}
+ +
+char * read_sysfs_broadcast(char *brdcast_path) +char * read_sysfs_broadcast(char *brdcast_path)
+{ +{
+ int fd; + int fd;
+ int len_to_read; + int len_to_read;
+ char *brdcast = NULL; + char *brdcast = NULL;
+ +
+ if ((fd = open(brdcast_path, O_RDONLY)) > -1) { + if ((fd = open(brdcast_path, O_RDONLY)) > -1) {
+ len_to_read = lseek(fd, 0L, SEEK_END); + len_to_read = lseek(fd, 0L, SEEK_END);
+ if ((brdcast = malloc(len_to_read+1)) != NULL) { + if ((brdcast = malloc(len_to_read+1)) != NULL) {
+ lseek(fd, 0L, SEEK_SET); + lseek(fd, 0L, SEEK_SET);
+ memset(brdcast, 0, len_to_read+1); + memset(brdcast, 0, len_to_read+1);
+ if (read(fd, brdcast, len_to_read) == -1) { + if (read(fd, brdcast, len_to_read) == -1) {
+ free(brdcast); + free(brdcast);
+ brdcast = NULL; + brdcast = NULL;
+ } + }
+ } + }
+ close(fd); + close(fd);
+ } }
+
+ return brdcast; - 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 int
@@ -356,6 +392,17 @@ main(int argc, char **argv) @@ -375,6 +406,17 @@ main(int argc, char **argv)
exit(-1);
} }
#endif
+ me = malloc(SOCKADDR_LEN); + me = malloc(SOCKADDR_LEN);
+ if (!me) { + 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) { while ((ch = getopt(argc, argv, "h?bfDUAqc:w:s:I:V")) != EOF) {
switch(ch) { switch(ch) {
case 'b': case 'b':
@@ -504,34 +551,51 @@ main(int argc, char **argv) @@ -523,31 +565,48 @@ main(int argc, char **argv)
close(probe_fd); close(probe_fd);
}; };
@ -235,10 +239,7 @@ diff -up iputils-s20101006/arping.c.infiniband iputils-s20101006/arping.c
- he = me; - he = me;
+ memcpy(he, me, SOCKADDR_LEN); + 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_path[SYSFS_PATH_LEN];
+ char *brdcast_val=NULL; + char *brdcast_val=NULL;
+ char *next_ch; + 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++) { + for (ch=0; ch<he->sll_halen; ch++) {
+ he->sll_addr[ch] = strtol(brdcast_val + (ch*3), &next_ch, 16); + 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); + 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) { 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

View File

@ -42,12 +42,11 @@ diff -up iputils-s20100418/in6_flowlabel.h.flowlabel iputils-s20100418/in6_flowl
+#define IPV6_FLOWLABEL_MGR 32 +#define IPV6_FLOWLABEL_MGR 32
+#define IPV6_FLOWINFO_SEND 33 +#define IPV6_FLOWINFO_SEND 33
+ +
diff -up iputils-s20100418/Makefile.flowlabel iputils-s20100418/Makefile --- iputils-s20121011/Makefile.flowlabel 2012-10-16 10:31:41.000000000 +0200
--- iputils-s20100418/Makefile.flowlabel 2010-05-17 13:54:03.339556213 +0200 +++ iputils-s20121011/Makefile 2012-10-16 10:33:05.687870860 +0200
+++ iputils-s20100418/Makefile 2010-05-17 13:54:03.423585869 +0200 @@ -52,7 +52,7 @@
@@ -35,7 +35,7 @@ ping: ping.o ping_common.o
ping6: ping6.o ping_common.o 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
+ping.o ping6.o ping_common.o: ping_common.h in6_flowlabel.h +ping.o ping6.o ping_common.o: ping_common.h in6_flowlabel.h

View File

@ -1,7 +1,6 @@
diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c --- iputils-s20121011/arping.c.orig 2012-10-16 11:46:12.000000000 +0200
--- iputils-s20101006/arping.c.eth 2011-11-10 09:06:08.101748109 +0100 +++ iputils-s20121011/arping.c 2012-10-16 11:49:09.746673028 +0200
+++ iputils-s20101006/arping.c 2011-11-10 09:34:09.880501394 +0100 @@ -40,7 +40,7 @@
@@ -37,7 +37,7 @@
static void usage(void) __attribute__((noreturn)); static void usage(void) __attribute__((noreturn));
int quit_on_reply=0; int quit_on_reply=0;
@ -10,20 +9,20 @@ diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
int ifindex; int ifindex;
char *source; char *source;
struct in_addr src, dst; 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 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_ETH "eth"
+#define PREF_EM "em" +#define PREF_EM "em"
+ +
+static char *dev_file = "/proc/self/net/dev"; +static char *dev_file = "/proc/self/net/dev";
+ +
#define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \ #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
((tv1).tv_usec-(tv2).tv_usec)/1000 ) ((tv1).tv_usec-(tv2).tv_usec)/1000 )
@@ -377,6 +382,46 @@ char * read_sysfs_broadcast(char *brdcas @@ -380,6 +385,46 @@ char * read_sysfs_broadcast(char *brdcas
return brdcast; return brdcast;
} }
+/* +/*
@ -32,44 +31,44 @@ diff -up iputils-s20101006/arping.c.eth iputils-s20101006/arping.c
+ */ + */
+char * get_first_ethernet(void) +char * get_first_ethernet(void)
+{ +{
+ FILE *f; + FILE *f;
+ char buf[255], *dv, *smc; + char buf[255], *dv, *smc;
+ char pci[16]; + char pci[16];
+ +
+ memset(pci, 0, sizeof(pci)); + memset(pci, 0, sizeof(pci));
+ if ((f = fopen(dev_file, "r")) != NULL) + if ((f = fopen(dev_file, "r")) != NULL)
+ { + {
+ // go through network dev file + // go through network dev file
+ while (fgets (buf, sizeof(buf), f) != NULL) + while (fgets (buf, sizeof(buf), f) != NULL)
+ { + {
+ // the line describes interface + // the line describes interface
+ if ((smc = strchr(buf, ':')) != NULL) + if ((smc = strchr(buf, ':')) != NULL)
+ { + {
+ // trim white characters + // trim white characters
+ for (dv=buf, *smc=0; *dv <= ' '; dv++) ; + for (dv=buf, *smc=0; *dv <= ' '; dv++) ;
+ // is "eth" (originial ethernet name) or "em" (ethernet on board) + // is "eth" (originial ethernet name) or "em" (ethernet on board)
+ if (!strncmp(dv, PREF_ETH, strlen(PREF_ETH)) || + if (!strncmp(dv, PREF_ETH, strlen(PREF_ETH)) ||
+ !strncmp(dv, PREF_EM, strlen(PREF_EM))) + !strncmp(dv, PREF_EM, strlen(PREF_EM)))
+ { + {
+ return strdup(dv); + return strdup(dv);
+ } + }
+ // remember the first pci NIC-card + // remember the first pci NIC-card
+ if (strlen(pci) == 0 && dv[0] == 'p' && isdigit(dv[1])) + if (strlen(pci) == 0 && dv[0] == 'p' && isdigit(dv[1]))
+ { + {
+ strcpy(pci, dv); + strcpy(pci, dv);
+ } + }
+ } + }
+ } + }
+ fclose(f); + fclose(f);
+ } + }
+ // return pci NIC-card or nil if no if name + // return pci NIC-card or nil if no if name
+ return strlen(pci) > 0 ? strdup(pci) : 0L; + return strlen(pci) > 0 ? strdup(pci) : 0L;
+} +}
+ +
int int
main(int argc, char **argv) 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); 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) { while ((ch = getopt(argc, argv, "h?bfDUAqc:w:s:I:V")) != EOF) {
switch(ch) { switch(ch) {
case 'b': case 'b':
@@ -429,6 +476,10 @@ main(int argc, char **argv) @@ -443,6 +490,10 @@ main(int argc, char **argv)
timeout = atoi(optarg); timeout = atoi(optarg);
break; break;
case 'I': case 'I':

View File

@ -44,7 +44,7 @@
#include <netdb.h> #include <netdb.h>
+#include <setjmp.h> +#include <setjmp.h>
#ifdef HAVE_CAPABILITIES #ifdef CAPABILITIES
#include <sys/capability.h> #include <sys/capability.h>
@@ -219,3 +220,6 @@ extern int gather_statistics(__u8 *ptr, @@ -219,3 +220,6 @@ extern int gather_statistics(__u8 *ptr,
int csfailed, struct timeval *tv, char *from, int csfailed, struct timeval *tv, char *from,

View File

@ -18,28 +18,3 @@ diff -up iputils-s20101006/clockdiff.c.unused iputils-s20101006/clockdiff.c
/* /*
* a hosts using a time format different from * a hosts using a time format different from
* ms. since midnight UT (as per RFC792) should * 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('.');

View File

@ -170,6 +170,7 @@ mv -f RELNOTES.tmp RELNOTES
* Mon Oct 15 2012 Jan Synáček <jsynacek@redhat.com> - 20121011-1 * Mon Oct 15 2012 Jan Synáček <jsynacek@redhat.com> - 20121011-1
- Update to iputils-s20121011 - Update to iputils-s20121011
+ drop unnecessary patches + drop unnecessary patches
+ update patches
* Wed Aug 22 2012 Jan Synáček <jsynacek@redhat.com> - 20101006-18 * Wed Aug 22 2012 Jan Synáček <jsynacek@redhat.com> - 20101006-18
- Improve spec for fedora - Improve spec for fedora