Subject: | Compiler warnings |
When building on Linux with Perl 5.26.1 and GCC 7.2.1, I cen see many warnings. Attached patches fix them.
There is one that misses a fix:
util.c: In function 'linkoffset':
util.c:174:1: warning: control reaches end of non-void function [-Wreturn-type]
I have no idea what return value for unknown type should be the best one. How do you want to handle errors?
Subject: | Net-RawIP-0.25-Decalare-used-function.patch |
From ebb883cb2e2f0031fd947bf36c0f089e5a5352ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 19 Jan 2018 15:47:40 +0100
Subject: [PATCH] Decalare used function
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GCC warns about implicit declarations of functions used in RawIP.xs
but defined in eth.c. This patch adds their declarations into eth.h.
Signed-off-by: Petr PÃsaÅ <ppisar@redhat.com>
---
MANIFEST | 1 +
RawIP.xs | 1 +
eth.h | 3 +++
3 files changed, 5 insertions(+)
create mode 100644 eth.h
diff --git a/MANIFEST b/MANIFEST
index 9bfa0ee..1211b02 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -18,6 +18,7 @@ lib/Net/RawIP/udphdr.pm
RawIP.xs
RawIP/libpcap.pod
eth.c
+eth.h
ifaddrlist.c
ifaddrlist.h
ip.h
diff --git a/RawIP.xs b/RawIP.xs
index cddc523..234ea5d 100644
--- a/RawIP.xs
+++ b/RawIP.xs
@@ -31,6 +31,7 @@ extern "C" {
#include <sys/cdefs.h>
#endif
#include "ifaddrlist.h"
+#include "eth.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <pcap.h>
diff --git a/eth.h b/eth.h
new file mode 100644
index 0000000..ab28b45
--- /dev/null
+++ b/eth.h
@@ -0,0 +1,3 @@
+int tap(char *dev,unsigned int *my_eth_ip,unsigned char *my_eth_mac);
+int mac_disc(unsigned int addr,unsigned char * eth_mac);
+void send_eth_packet(int fd, char* eth_device, u_char *pkt, int len, int flag);
--
2.13.6
Subject: | Net-RawIP-0.25-Silent-compiler-warnings.patch |
From ee4e010724ea0106f0ebdf572c6b55573122f12b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 19 Jan 2018 15:56:05 +0100
Subject: [PATCH] Silent compiler warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Petr PÃsaÅ <ppisar@redhat.com>
---
RawIP.xs | 12 +++---------
eth.c | 5 ++++-
ifaddrlist.c | 3 +--
3 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/RawIP.xs b/RawIP.xs
index 234ea5d..143c65f 100644
--- a/RawIP.xs
+++ b/RawIP.xs
@@ -166,14 +166,6 @@ u_long host_to_ip (char *host_name);
void pkt_send(int fd, unsigned char *sock, u_char *pkt, int size);
int linkoffset(int);
-static int
-not_here(s)
- char *s;
-{
- croak("%s not implemented on this architecture", s);
- return -1;
-}
-
static double
constant(name, arg)
char *name;
@@ -592,6 +584,8 @@ CODE:
memset(dev,0,16);
len = ip_rt_dev(addr,dev);
RETVAL = newSVpv(dev,len);
+#else
+ PERL_UNUSED_ARG(addr);
#endif
#if !defined(_LINUX_) && !defined(_BPF_)
croak("rdev() is not implemented on this system");
@@ -689,7 +683,7 @@ send_eth_packet(fd,eth_device,pkt,flag)
SV* pkt
int flag
CODE:
- send_eth_packet(fd, eth_device, (char*)SvPV(pkt,PL_na), SvCUR(pkt),flag);
+ send_eth_packet(fd, eth_device, (unsigned char*)SvPV(pkt,PL_na), SvCUR(pkt),flag);
AV *
eth_parse(pkt)
diff --git a/eth.c b/eth.c
index 48aeed2..a36a9ab 100644
--- a/eth.c
+++ b/eth.c
@@ -235,7 +235,10 @@ int
tap(char *dev,unsigned int *my_eth_ip,unsigned char *my_eth_mac)
{
- int fd,v,s;
+ int fd;
+#ifdef _BPF_
+ int v,s;
+#endif
struct ifreq ifr;
(void)strcpy(ifr.ifr_name, dev);
#ifndef _BPF_
diff --git a/ifaddrlist.c b/ifaddrlist.c
index 0729b2b..b60ef3c 100644
--- a/ifaddrlist.c
+++ b/ifaddrlist.c
@@ -41,7 +41,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
#ifdef HAVE_SOCKADDR_SA_LEN
register int n;
#endif
- register struct ifreq *ifrp, *ifend, *ifnext, *mp;
+ register struct ifreq *ifrp, *ifend, *ifnext;
register struct sockaddr_in *sin;
register struct ifaddrlist *al;
struct ifconf ifc;
@@ -71,7 +71,6 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
ifend = (struct ifreq *)((char *)ibuf + ifc.ifc_len);
al = ifaddrlist;
- mp = NULL;
nipaddr = 0;
for (; ifrp < ifend; ifrp = ifnext)
{
--
2.13.6
Subject: | Net-RawIP-0.25-Use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch |
From 32cfda724ce867d1b4a3e581b4b305b300ddfed2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 19 Jan 2018 15:39:16 +0100
Subject: [PATCH] Use _DEFAULT_SOURCE instead of _BSD_SOURCE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
_BSD_SOURCE is deprecated in glibc since 2.20 version.
Signed-off-by: Petr PÃsaÅ <ppisar@redhat.com>
---
ifaddrlist.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ifaddrlist.c b/ifaddrlist.c
index 41183d3..0729b2b 100644
--- a/ifaddrlist.c
+++ b/ifaddrlist.c
@@ -1,5 +1,5 @@
#ifdef _LINUX_
-#define _BSD_SOURCE 1
+#define _DEFAULT_SOURCE 1
#define __FAVOR_BSD 1
#endif
--
2.13.6