aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrodrigo <rodrigo@FreeBSD.org>2014-09-12 16:10:10 +0800
committerrodrigo <rodrigo@FreeBSD.org>2014-09-12 16:10:10 +0800
commit6b85f83a08c9de56e30bec52c569820b556c7fa6 (patch)
tree63849bd239bc69ad21ef3e865a661d4f56576854
parent9af33862cd5ba2b8c34382b297026ff9958f759a (diff)
downloadfreebsd-ports-gnome-6b85f83a08c9de56e30bec52c569820b556c7fa6.tar.gz
freebsd-ports-gnome-6b85f83a08c9de56e30bec52c569820b556c7fa6.tar.zst
freebsd-ports-gnome-6b85f83a08c9de56e30bec52c569820b556c7fa6.zip
Since v7 dualserver doesn't work well with FreeBSD,
the patch must be reworked but this is a time consuming task. In the meanwhile, I chose to revert updates and go back to the last working version. PR: ports/193556 Submitted by: rodrigo Approved by: bapt (mentor)
-rw-r--r--dns/dualserver/Makefile8
-rw-r--r--dns/dualserver/distinfo4
-rw-r--r--dns/dualserver/files/patch-dualserverd.cpp83
-rw-r--r--dns/dualserver/files/patch-dualserverd.h47
4 files changed, 81 insertions, 61 deletions
diff --git a/dns/dualserver/Makefile b/dns/dualserver/Makefile
index 24fc1832fa2e..c98560c7229e 100644
--- a/dns/dualserver/Makefile
+++ b/dns/dualserver/Makefile
@@ -2,15 +2,17 @@
# $FreeBSD$
PORTNAME= dualserver
-PORTVERSION= 7.02
+PORTVERSION= 6.94
+PORTEPOCH= 1
CATEGORIES= dns net
-MASTER_SITES= SF/dhcp-dns-server/Dual%20DHCP%20DNS%20Server/ \
- http://rodrigo.osorio.free.fr/freebsd/distfiles/
+MASTER_SITES= http://rodrigo.osorio.free.fr/freebsd/distfiles/
DISTNAME= ${PORTNAME}V${PORTVERSION}
MAINTAINER= rodrigo@FreeBSD.org
COMMENT= Combined DHCP/DNS server for small LANs
+LICENSE= GPLv2
+
USES= dos2unix
USE_RC_SUBR= dualserver
PLIST_FILES= sbin/dualserver etc/dualserver.conf.sample
diff --git a/dns/dualserver/distinfo b/dns/dualserver/distinfo
index 71a0c0719a8b..261bb379d301 100644
--- a/dns/dualserver/distinfo
+++ b/dns/dualserver/distinfo
@@ -1,2 +1,2 @@
-SHA256 (dualserverV7.02.tar.gz) = 9d828a7d72810ed2a42a4949413fa3ac60c753e58b4d0569327cad3b7bf1e716
-SIZE (dualserverV7.02.tar.gz) = 138876
+SHA256 (dualserverV6.94.tar.gz) = 3007e6508eb95d06f3c8764951ff6d3276733409e2119f6299c9485060b9445c
+SIZE (dualserverV6.94.tar.gz) = 796893
diff --git a/dns/dualserver/files/patch-dualserverd.cpp b/dns/dualserver/files/patch-dualserverd.cpp
index 9993b82d07cb..4c553185d826 100644
--- a/dns/dualserver/files/patch-dualserverd.cpp
+++ b/dns/dualserver/files/patch-dualserverd.cpp
@@ -1,5 +1,5 @@
---- dualserverd.cpp 2013-05-12 01:36:36.000000000 +0200
-+++ dualserverd.cpp 2013-05-18 16:54:53.000000000 +0200
+--- dualserverd.cpp 2012-11-09 17:02:36.000000000 +0100
++++ dualserverd.cpp 2012-11-12 13:17:25.000000000 +0100
@@ -22,10 +22,16 @@
#include <math.h>
#include <sys/types.h>
@@ -27,80 +27,91 @@
using namespace std;
#include "dualserverd.h"
-@@ -88,7 +97,11 @@
- const char send403[] = "HTTP/1.1 403 Forbidden\r\n\r\n<h1>403 Forbidden</h1>";
- const char send404[] = "HTTP/1.1 404 Not Found\r\n\r\n<h1>404 Not Found</h1>";
- const char td200[] = "<td>%s</td>";
+@@ -84,7 +93,11 @@
+ const char send200[] = "HTTP/1.1 200 OK\r\nDate: %s\r\nLast-Modified: %s\r\nContent-Type: text/html\r\nConnection: Close\r\nContent-Length: \r\n\r\n";
+ //const char send200[] = "HTTP/1.1 200 OK\r\nDate: %s\r\nLast-Modified: %s\r\nContent-Type: text/html\r\nConnection: Close\r\nTransfer-Encoding: chunked\r\n";
+ const char line200[] = "<td>%s</td>";
+#ifdef __FreeBSD__
-+const char sVersion[] = "Dual DHCP DNS Server Version 7.02 for FreeBSD Build 7019";
++const char sVersion[] = "Dual DHCP DNS Server Version 6.94 for FreeBSD";
+#else
- const char sVersion[] = "Dual DHCP DNS Server Version 7.02 Linux Build 7019";
+ const char sVersion[] = "Dual DHCP DNS Server Version 6.94 Linux Build 7011";
+#endif
- //const char toprow[] = "<body bgcolor=\"#cccccc\"><table width=\"800\"><tr><td align=\"center\"><font size=\"5\"><b>%s</b></font></b></b></td></tr><tr><td align=\"right\"><a target=\"_new\" href=\"http://dhcp-dns-server.sourceforge.net/\">http://dhcp-dns-server.sourceforge.net/</b></b></td></tr></table>";
- const char toprow[] = "<body bgcolor=\"#cccccc\"><table width=640><tr><td align=\"center\"><font size=\"5\"><b>%s</b></font></td></tr><tr><td align=\"right\"><a target=\"_new\" href=\"http://dhcp-dns-server.sourceforge.net\">http://dhcp-dns-server.sourceforge.net</td></tr></table>";
const data4 opData[] =
-@@ -281,7 +294,11 @@
+ {
+ { "SubnetMask", DHCP_OPTION_NETMASK, 3 },
+@@ -261,7 +274,7 @@
strcpy(leaFile, "/tmp/dualserver.state");
if (!iniFile[0])
-+#ifdef __FreeBSD__
+- strcpy(iniFile, "/etc/dualserver.ini");
+ strcpy(iniFile, "/usr/local/etc/dualserver.conf");
-+#else
- strcpy(iniFile, "/etc/dualserver.ini");
-+#endif
-
- strcpy(filePATH, iniFile);
-@@ -4268,7 +4285,12 @@
+ if (verbatim)
+ {
+@@ -4002,7 +4015,13 @@
else if (req->dhcpp.header.bp_broadcast || !req->remote.sin_addr.s_addr || req->reqIP)
{
req->remote.sin_port = htons(IPPORT_DHCPC);
+#ifdef __FreeBSD__
-+ req->remote.sin_addr.s_addr = network.dhcpConn[req->sockInd].addr.sin_addr.s_addr | (~network.dhcpConn[req->sockInd].mask);
-+ //printf("broadcast dhcp response to %s\n",inet_ntoa(req->remote.sin_addr));
++ req->remote.sin_addr.s_addr = network.dhcpConn[req->sockInd].addr.sin_addr.s_addr |
++ (~network.dhcpConn[req->sockInd].mask);
++ //printf("broadcast dhcp response to %s\n",inet_ntoa(req->remote.sin_addr));
+#else
req->remote.sin_addr.s_addr = INADDR_BROADCAST;
+#endif
+ req->dhcpp.header.bp_broadcast = 1;
}
else
- {
-@@ -9455,6 +9477,10 @@
+@@ -8983,6 +9002,10 @@
newNetwork.dhcpConn[i].broadCastSize = sizeof(newNetwork.dhcpConn[i].broadCastVal);
setsockopt(newNetwork.dhcpConn[i].sock, SOL_SOCKET, SO_BROADCAST, (char*)&newNetwork.dhcpConn[i].broadCastVal, newNetwork.dhcpConn[i].broadCastSize);
+#ifdef __FreeBSD__
-+ // See man ip
-+ setsockopt(newNetwork.dhcpConn[i].sock,IPPROTO_IP, IP_ONESBCAST,(char*)&newNetwork.dhcpConn[i].broadCastVal, newNetwork.dhcpConn[i].broadCastSize);
++ // See man ip
++ setsockopt(newNetwork.dhcpConn[i].sock,IPPROTO_IP, IP_ONESBCAST,(char*)&newNetwork.dhcpConn[i].broadCastVal, newNetwork.dhcpConn[i].broadCastSize);
+#endif
int nRet = bind(newNetwork.dhcpConn[i].sock, (sockaddr*)&newNetwork.dhcpConn[i].addr, sizeof(struct sockaddr_in));
if (nRet == SOCKET_ERROR)
-@@ -9506,7 +9532,11 @@
+@@ -9034,7 +9057,11 @@
setsockopt(newNetwork.dhcpListener.sock, SOL_SOCKET, SO_REUSEADDR, (char*)&newNetwork.dhcpListener.reUseVal, newNetwork.dhcpListener.reUseSize);
newNetwork.dhcpListener.pktinfoVal = true;
newNetwork.dhcpListener.pktinfoSize = sizeof(newNetwork.dhcpListener.pktinfoVal);
+#ifdef __FreeBSD__
-+ setsockopt(newNetwork.dhcpListener.sock, IPPROTO_IP, IP_RECVIF, &newNetwork.dhcpListener.pktinfoVal, newNetwork.dhcpListener.pktinfoSize);
++ setsockopt(newNetwork.dhcpListener.sock, IPPROTO_IP, IP_RECVIF, &newNetwork.dhcpListener.pktinfoVal, newNetwork.dhcpListener.pktinfoSize);
+#else
setsockopt(newNetwork.dhcpListener.sock, IPPROTO_IP, IP_PKTINFO, &newNetwork.dhcpListener.pktinfoVal, newNetwork.dhcpListener.pktinfoSize);
+#endif
newNetwork.dhcpListener.addr.sin_family = AF_INET;
newNetwork.dhcpListener.addr.sin_addr.s_addr = INADDR_ANY;
-@@ -10149,6 +10179,12 @@
+@@ -9496,8 +9523,11 @@
+
+ if (addr && !(flags & IFF_LOOPBACK))
+ addServer(network->allServers, addr);
+-
++#ifdef __FreeBSD__
++ if (addr && mask && !(flags & IFF_POINTOPOINT) && !(flags & IFF_LOOPBACK))
++#else
+ if (addr && mask && !(flags & IFF_POINTOPOINT) && !(flags & IFF_LOOPBACK) && !(flags & IFF_DYNAMIC))
++#endif
+ {
+ if ((flags & IFF_RUNNING) && (flags & IFF_UP))
+ {
+@@ -9656,6 +9686,12 @@
MYWORD gdmess(data9 *req, MYBYTE sockInd)
{
+#ifdef __FreeBSD__
-+ struct cmsghdr *cmsg;
-+ struct sockaddr_dl * isdl;
-+ struct sockaddr_in *isin;
-+ struct ifaddrs *ifap, *ifa;
++ struct cmsghdr *cmsg;
++ struct sockaddr_dl * isdl;
++ struct sockaddr_in *isin;
++ struct ifaddrs *ifap, *ifa;
+#endif
//sprintf(logBuff, "Socket=%u", sockInd);
- //logMess(logBuff, 1);
+ //logDHCPMess(logBuff, 1);
memset(req, 0, sizeof(data9));
-@@ -10164,7 +10200,11 @@
+@@ -9671,7 +9707,11 @@
req->msg.msg_name = &req->remote;
req->msg.msg_namelen = sizeof(sockaddr_in);
req->msg.msg_control = &req->msgcontrol;
@@ -112,7 +123,7 @@
req->msg.msg_flags = msgflags;
int flags = 0;
-@@ -10173,6 +10213,45 @@
+@@ -9680,6 +9720,45 @@
if (errno || req->bytes <= 0)
return 0;
@@ -153,12 +164,12 @@
+
+ //printf("IF = %s\n", isdl->sdl_data);
+ //printf("RADDR = %s\n", inet_ntoa(isin->sin_addr));
-+
++
+#else
//printf("%u\n", req->msg.msg_controllen);
//msgcontrol = (msg_control*)msg.msg_control;
-@@ -10204,6 +10283,7 @@
+@@ -9711,6 +9790,7 @@
break;
}
}
diff --git a/dns/dualserver/files/patch-dualserverd.h b/dns/dualserver/files/patch-dualserverd.h
index 6da1879f055c..319c64ef9e15 100644
--- a/dns/dualserver/files/patch-dualserverd.h
+++ b/dns/dualserver/files/patch-dualserverd.h
@@ -1,34 +1,41 @@
---- dualserverd.h 2013-05-06 19:27:45.000000000 +0200
-+++ dualserverd.h 2013-05-18 16:36:54.000000000 +0200
-@@ -623,10 +623,19 @@
+--- dualserverd.h 2012-11-09 15:45:52.000000000 +0100
++++ dualserverd.h 2012-11-09 15:55:00.000000000 +0100
+@@ -52,9 +52,11 @@
+ #define INADDR_NONE ULONG_MAX
+ #endif
+
++#ifndef __FreeBSD__
+ #ifndef IFF_DYNAMIC
+ #define IFF_DYNAMIC 0x8000
+ #endif
++#endif
+
+ #define MYWORD unsigned short
+ #define MYBYTE unsigned char
+@@ -594,10 +596,15 @@
struct msg_control
{
-+#ifdef __FreeBSD__
-+ u_long cmsg_len;
-+#else
- ulong cmsg_len;
-+#endif
+- ulong cmsg_len;
++ u_long cmsg_len;
int cmsg_level;
int cmsg_type;
-+#ifdef __FreeBSD__
-+ // Arbitrary size, when the size is required we use sizeof
-+ unsigned char pktinfo[100];
-+#else
- in_pktinfo pktinfo;
-+#endif
+- in_pktinfo pktinfo;
++ #ifdef __FreeBSD__
++ // Arbitrary size, when the size is required we use sizeof
++ unsigned char pktinfo[100];
++ #else
++ in_pktinfo pktinfo;
++ #endif
};
#if defined(__hppa__) || \
-@@ -744,7 +753,11 @@
+@@ -713,7 +720,7 @@
union
{
int broadCastVal;
-+#ifdef __FreeBSD__
-+ int pktinfoVal;
-+#else
- bool pktinfoVal;
-+#endif
+- bool pktinfoVal;
++ int pktinfoVal;
};
union
{