rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh dnswriter.cc dnswriter.hh \
unix_utility.cc utility.hh sillyrecords.cc
-dnsreplay_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTION_LDFLAGS)
-dnsreplay_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTION_LIBS)
+dnsreplay_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
+dnsreplay_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS)
nproxy_SOURCES=nproxy.cc dnsparser.cc dnsrecords.cc dnsparser.hh \
rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh dnswriter.cc dnswriter.hh \
sillyrecords.cc selectmplexer.cc mplexer.hh
-nproxy_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTION_LDFLAGS)
-nproxy_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTION_LIBS)
+nproxy_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
+nproxy_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS)
notify_SOURCES=notify.cc dnsparser.cc dnsrecords.cc dnsparser.hh \
rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh dnswriter.cc dnswriter.hh \
- sillyrecords.cc selectmplexer.cc
+ sillyrecords.cc selectmplexer.cc nsecrecords.cc base32.cc misc.cc unix_utility.cc \
+ logger.cc qtype.cc statbag.cc
-notify_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTION_LDFLAGS)
-notify_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTION_LIBS)
+notify_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
+notify_LDADD=$(BOOST_FILESYSTEM_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS)
dnsscope_SOURCES=dnsscope.cc misc.cc unix_utility.cc qtype.cc \
logger.cc statbag.cc dnspcap.cc dnspcap.hh dnsparser.cc dnsrecords.cc \
#include <boost/multi_index/key_extractors.hpp>
#include "mplexer.hh"
+#include "statbag.hh"
#include "namespaces.hh"
using namespace ::boost::multi_index;
namespace po = boost::program_options;
po::variables_map g_vm;
+StatBag S;
int main(int argc, char** argv)
try
{
+ if(argc!=3) {
+ cerr<<"Syntax: notify ip domain"<<endl;
+ exit(1);
+ }
+
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if(sock < 0)
throw runtime_error("Creating socket for incoming packets: "+stringerror());
- ComboAddress local("127.0.0.1", (int)0);
- if(::bind(sock, (struct sockaddr*) &local, local.getSocklen()) < 0)
- throw runtime_error("Failed to bind local socket to address "+local.toString()+": "+stringerror());
+
+ // ComboAddress local("127.0.0.1", (int)0);
+// if(::bind(sock, (struct sockaddr*) &local, local.getSocklen()) < 0)
+// throw runtime_error("Failed to bind local socket to address "+local.toString()+": "+stringerror());
ComboAddress pdns(argv[1], 53);
if(connect(sock, (struct sockaddr*) &pdns, pdns.getSocklen()) < 0)
cerr<<"Fatal: "<<e.what()<<endl;
}
-/* added so we don't have to link in most of powerdns */
-
-const char *Utility::inet_ntop(int af, const char *src, char *dst, size_t size)
-{
- return ::inet_ntop(af,src,dst,size);
-}
-
-// Converts an address from presentation format to network format.
-int Utility::inet_pton( int af, const char *src, void *dst )
-{
- return ::inet_pton(af, src, dst);
-}
-
-// Returns the current time.
-int Utility::gettimeofday( struct timeval *tv, void *tz )
-{
- return ::gettimeofday(tv,0);
-}
-
-string stringerror()
-{
- return strerror(errno);
-}
-
-bool IpToU32(const string &str, uint32_t *ip)
-{
- if(str.empty()) {
- *ip=0;
- return true;
- }
-
- struct in_addr inp;
- if(inet_aton(str.c_str(), &inp)) {
- *ip=inp.s_addr;
- return true;
- }
- return false;
-}