summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dns/dnrd/Makefile11
-rw-r--r--dns/dnrd/files/patch-main.c19
-rw-r--r--dns/dnrd/files/patch-udp.c29
3 files changed, 51 insertions, 8 deletions
diff --git a/dns/dnrd/Makefile b/dns/dnrd/Makefile
index fae1faf62c38..2080ced9f402 100644
--- a/dns/dnrd/Makefile
+++ b/dns/dnrd/Makefile
@@ -7,6 +7,7 @@
PORTNAME= dnrd
PORTVERSION= 2.10
+PORTREVISION= 1
CATEGORIES= dns
MASTER_SITES= http://users.zoominternet.net/~garsh/dnrd/archive/ \
http://www.netsw.org/net/ip/infoservice/dns/dnrd/
@@ -17,15 +18,17 @@ COMMENT= A proxy DNS daemon
WRKSRC= ${WRKDIR}/${DISTNAME}/src
USE_GMAKE= yes
-USE_REINPLACE= yes
+USE_REINPLACE= yes
MAN8= dnrd.8
post-patch:
.for F in main.c master.c
- @(cd ${WRKSRC} && ${SED} -e 's,%%PREFIX%%,${PREFIX},g' $F > foo && \
- ${MV} foo $F)
+ ${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},g' ${WRKSRC}/$F
.endfor
- ${REINPLACE_CMD} -e "s@cc@${CC}@g; s@-lc_r@${PTHREAD_LIBS}@g" ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} \
+ -e "s,cc,${CC},g" \
+ -e "s,-lc_r,${PTHREAD_LIBS},g" \
+ ${WRKSRC}/Makefile
.include <bsd.port.mk>
diff --git a/dns/dnrd/files/patch-main.c b/dns/dnrd/files/patch-main.c
index 09f5612abf43..e5a2f673f3e5 100644
--- a/dns/dnrd/files/patch-main.c
+++ b/dns/dnrd/files/patch-main.c
@@ -1,5 +1,5 @@
---- main.c.orig Thu Jan 4 14:40:42 2001
-+++ main.c Sat Jan 6 15:06:31 2001
+--- main.c.orig Fri Jan 5 01:40:42 2001
++++ main.c Sat Jan 3 16:39:25 2004
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
@@ -16,7 +16,18 @@
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/stat.h>
-@@ -170,20 +170,20 @@
+@@ -82,6 +82,10 @@
+ /*
+ * Parse the command line.
+ */
++ memset(&recv_addr, 0, sizeof(recv_addr));
++ recv_addr.sin_family = AF_INET;
++ recv_addr.sin_port = htons(53);
++
+ parse_args(argc, argv);
+
+ openlog(progname, LOG_PID, LOG_DAEMON);
+@@ -170,20 +174,20 @@
* Change our root and current working directories to /etc/dnrd.
* Also, so some sanity checking on that directory first.
*/
@@ -42,7 +53,7 @@
cleanexit(-1);
}
-@@ -198,31 +198,31 @@
+@@ -198,31 +202,31 @@
if (rslt) continue;
if (S_ISDIR(st.st_mode)) {
diff --git a/dns/dnrd/files/patch-udp.c b/dns/dnrd/files/patch-udp.c
new file mode 100644
index 000000000000..df1a41db4f30
--- /dev/null
+++ b/dns/dnrd/files/patch-udp.c
@@ -0,0 +1,29 @@
+--- udp.c.orig Sat Jan 3 16:39:53 2004
++++ udp.c Sat Jan 3 16:40:36 2004
+@@ -74,7 +74,7 @@
+
+ /* Read in the message */
+ addr_len = sizeof(struct sockaddr_in);
+- len = recvfrom(isock, msg, sizeof(msg), 0,
++ len = recvfrom(isock, msg, maxsize, 0,
+ (struct sockaddr *)&from_addr, &addr_len);
+ if (len < 0) {
+ log_debug("recvfrom error %s", strerror(errno));
+@@ -172,7 +172,7 @@
+ inet_ntoa(dns_srv[k].addr.sin_addr));
+ return (-1);
+ }
+- else if (rc == len) {
++ else if (rc > len) {
+ log_msg(LOG_NOTICE, "packet too large: %s",
+ inet_ntoa(dns_srv[k].addr.sin_addr));
+ return (0);
+@@ -202,7 +202,7 @@
+ struct sockaddr_in from_addr;
+ unsigned addr_len;
+
+- len = dnsrecv(srvidx, msg, sizeof(msg));
++ len = dnsrecv(srvidx, msg, maxsize);
+ if (opt_debug) {
+ char buf[80];
+ sprintf_cname(&msg[12], buf, 80);