- Try to fix build on DragonFly

This commit is contained in:
Dmitry Marakasov 2017-01-13 09:22:25 +00:00
parent 489072b497
commit e12d0f77e3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=431358
3 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,28 @@
--- multicat.c.orig 2016-10-07 14:32:44 UTC
+++ multicat.c
@@ -44,7 +44,7 @@
#include <sys/ioctl.h>
#include <syslog.h>
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
# include <sys/uio.h>
#endif
@@ -280,14 +280,14 @@ static ssize_t raw_Write( const void *p_
ssize_t i_ret;
struct iovec iov[2];
- #if defined(__FreeBSD__)
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
pktheader.udph.uh_ulen
#else
pktheader.udph.len
#endif
= htons(sizeof(struct udphdr) + i_len);
- #if defined(__FreeBSD__)
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
pktheader.iph.ip_len = htons(sizeof(struct udprawpkt) + i_len);
#endif

View File

@ -0,0 +1,56 @@
--- util.c.orig 2016-10-07 14:32:44 UTC
+++ util.c
@@ -285,7 +285,7 @@ static int GetInterfaceIndex( const char
close( i_fd );
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
return ifr.ifr_index;
#else
return ifr.ifr_ifindex;
@@ -451,7 +451,7 @@ static void RawFillHeaders(struct udpraw
uint8_t ttl, uint8_t tos, uint16_t len)
{
#ifndef __APPLE__
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
struct ip *iph = &(dgram->iph);
#else
struct iphdr *iph = &(dgram->iph);
@@ -468,7 +468,7 @@ static void RawFillHeaders(struct udpraw
printf("Filling raw header (%p) (%s:%u -> %s:%u)\n", dgram, ipsrc_str, portsrc, ipdst_str, portdst);
#endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
// Fill ip header
iph->ip_hl = 5; // ip header with no specific option
iph->ip_v = 4;
@@ -710,7 +710,7 @@ int OpenSocket( const char *_psz_arg, in
i_raw_srcaddr, connect_addr.sin.sin_addr.s_addr, i_raw_srcport,
ntohs(connect_addr.sin.sin_port), i_ttl, i_tos, 0);
i_fd = socket( AF_INET, SOCK_RAW, IPPROTO_RAW );
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
if ( setsockopt( i_fd, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof(hincl)) == -1 )
{
msg_Err( NULL, "unable to set socket (%s)", strerror(errno) );
@@ -747,7 +747,7 @@ int OpenSocket( const char *_psz_arg, in
if ( bind_addr.ss.ss_family != AF_UNSPEC )
{
- #if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__DragonFly__)
if ( IN6_IS_ADDR_MULTICAST( &bind_addr.sin6.sin6_addr ) )
{
struct ipv6_mreq imr;
@@ -827,7 +827,7 @@ normal_bind:
}
else
#endif
-#ifndef __FreeBSD__
+#if !defined(__FreeBSD__) && !defined(__DragonFly__)
if ( i_bind_if_index )
{
/* Linux-specific interface-bound multicast */

View File

@ -0,0 +1,20 @@
--- util.h.orig 2016-10-07 14:32:44 UTC
+++ util.h
@@ -24,7 +24,7 @@
#include <netinet/udp.h>
#include <netinet/ip.h>
-#if defined(__APPLE__) || defined(__FreeBSD__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__DragonFly__)
#define POLLRDHUP 0
/* uClibc may does not have clock_nanosleep() */
#elif !defined (__UCLIBC__) || \
@@ -59,7 +59,7 @@ typedef union
*****************************************************************************/
struct udprawpkt {
#if !defined(__APPLE__)
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
struct ip iph;
#else
struct iphdr iph;