[Pdns-users] pdns_recursor: Solaris-8 compile problems, no root hints

Juergen Georgi georgi at belwue.de
Wed Mar 22 13:17:04 UTC 2006


Hi,

in order to get pdns_recursor 2.9.20 compile on Solaris-8 (Sparc),
I applied the attached patch. However pdns_recursor isn't able 
to resolve any queries at all. On start it outputs:

Mar 22 14:02:28 PowerDNS recursor 2.9.20 (C) 2001-2006 PowerDNS.COM BV (Mar 22 2006, 09:00:51, gcc 3.3.2) starting up
Mar 22 14:02:28 Operating in 32 bits mode
Mar 22 14:02:28 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
Mar 22 14:02:28 Sending UDP queries from 0.0.0.0:16838
Mar 22 14:02:28 Listening for UDP queries on 127.0.0.1:53
Mar 22 14:02:28 Listening for TCP queries on 127.0.0.1:53
Mar 22 14:02:28 Done priming cache with root hints
Mar 22 14:02:28 Set effective group id to 111
Mar 22 14:02:28 Set effective user id to 111
Mar 22 14:02:28 : No cache hit for '|NS', trying to find an appropriate NS record
Mar 22 14:02:28 : Checking if we have NS in cache for ''
Mar 22 14:02:28 : our root expired, repriming from hints and retrying
Mar 22 14:02:28 : Checking if we have NS in cache for ''
Mar 22 14:02:28 : our root expired, repriming from hints and retrying
Mar 22 14:02:28 : Cache consultations done, have 0 NS to contact
Mar 22 14:02:28 : Nameservers: 
Mar 22 14:02:28 : Failed to resolve via any of the 0 offered NS
Mar 22 14:02:28 : failed
Mar 22 14:02:28 Failed to update . records, RCODE=2

It doesn't matter if I configure a hint-file or not, pdns_recursor
thinks it hasn't any root hints. 

Maybe the patch broke something. But the same modifications
did work with 2.9.19, with a severe memory leak though.

Is anyone out there who has pdns_recursor successfully running
on Solaris 8? Any hints are welcome!

Thanks,

-Juergen Georgi

-------------- next part --------------
--- pdns/sillyrecords.cc.orig	Wed Mar 15 19:29:38 2006
+++ pdns/sillyrecords.cc	Thu Mar 16 09:26:54 2006
@@ -99,10 +99,10 @@
 
 
 /* converts ascii size/precision X * 10**Y(cm) to 0xXY. moves pointer.*/
-static u_int8_t precsize_aton(const char **strptr)
+static uint8_t precsize_aton(const char **strptr)
 {
   unsigned int mval = 0, cmval = 0;
-  u_int8_t retval = 0;
+  uint8_t retval = 0;
   const char *cp;
   int exponent;
   int mantissa;
@@ -243,9 +243,9 @@
   uint32_t latit = 0, longit = 0, alt = 0;
   uint32_t lltemp1 = 0, lltemp2 = 0;
   int altmeters = 0, altfrac = 0, altsign = 1;
-  u_int8_t hp = 0x16;    /* default = 1e6 cm = 10000.00m = 10km */
-  u_int8_t vp = 0x13;    /* default = 1e3 cm = 10.00m */
-  u_int8_t siz = 0x12;   /* default = 1e2 cm = 1.00m */
+  uint8_t hp = 0x16;    /* default = 1e6 cm = 10000.00m = 10km */
+  uint8_t vp = 0x13;    /* default = 1e3 cm = 10.00m */
+  uint8_t siz = 0x12;   /* default = 1e2 cm = 1.00m */
   int which1 = 0, which2 = 0;
 
   cp = content.c_str();
--- pdns/dnswriter.hh.orig	Wed Mar 15 19:29:38 2006
+++ pdns/dnswriter.hh	Thu Mar 16 13:33:53 2006
@@ -4,7 +4,6 @@
 #include <string>
 #include <vector>
 #include <map>
-#include <stdint.h>
 #include <netinet/in.h>
 #include <arpa/nameser.h>
 
--- pdns/rcpgenerator.hh.orig	Thu Mar 16 13:34:24 2006
+++ pdns/rcpgenerator.hh	Thu Mar 16 13:36:53 2006
@@ -22,7 +22,6 @@
 
 #include <string>
 #include <stdexcept>
-#include <stdint.h>
 
 using namespace std;
 
--- pdns/dnsparser.cc.orig	Wed Mar 15 19:29:38 2006
+++ pdns/dnsparser.cc	Thu Mar 16 13:45:27 2006
@@ -305,7 +305,7 @@
   return ret;
 }
 
-u_int8_t PacketReader::get8BitInt()
+uint8_t PacketReader::get8BitInt()
 {
   return d_content.at(d_pos++);
 }
@@ -330,7 +330,7 @@
   return ret;
 }
 
-void PacketReader::getLabelFromContent(const vector<u_int8_t>& content, uint16_t& frompos, string& ret, int recurs) 
+void PacketReader::getLabelFromContent(const vector<uint8_t>& content, uint16_t& frompos, string& ret, int recurs) 
 {
   if(recurs > 10)
     throw MOADNSException("Loop");
--- pdns/dnspcap.hh.orig	Wed Mar 15 19:29:38 2006
+++ pdns/dnspcap.hh	Tue Mar 21 16:27:33 2006
@@ -10,7 +10,7 @@
 #include <netinet/in_systm.h>
 #include <netinet/ip.h>
 #include <netinet/udp.h>
-#include <net/ethernet.h>
+#include <sys/ethernet.h>
 #include <vector>
 #include <boost/format.hpp>
 using namespace std;


More information about the Pdns-users mailing list