reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
LocalDns.hxx
Go to the documentation of this file.
1#if !defined(RESIP_LOCAL_DNS_HXX)
2#define RESIP_LOCAL_DNS_HXX
3
4#include <map>
5#include "rutil/Data.hxx"
7
8extern "C"
9{
10struct ares_channeldata;
11}
12
13
14namespace resip
15{
16class LocalDns : public ExternalDns
17{
18 public:
19 LocalDns();
20 virtual ~LocalDns();
21
22 virtual int init();
23 virtual unsigned int getTimeTillNextProcessMS();
24 virtual void buildFdSet(fd_set& read, fd_set& write, int& size);
25 virtual void process(fd_set& read, fd_set& write);
26
27 virtual void freeResult(ExternalDnsRawResult /* res */) {}
28 virtual void freeResult(ExternalDnsHostResult /* res */) {}
29
30 void lookup(const char* target, unsigned short type, ExternalDnsHandler* handler, void* userData);
31
32 virtual void lookupARecords(const char* target, ExternalDnsHandler* handler, void* userData) {}
33 virtual void lookupAAAARecords(const char* target, ExternalDnsHandler* handler, void* userData) {}
34 virtual void lookupNAPTR(const char* target, ExternalDnsHandler* handler, void* userData) {}
35 virtual void lookupSRV(const char* target, ExternalDnsHandler* handler, void* userData) {}
36 virtual char* errorMessage(long errorCode)
37 {
38 const char* msg = "Local Dns";
39
40 int len = (int)strlen(msg);
41 char* errorString = new char[len+1];
42
43 strncpy(errorString, msg, len);
44 errorString[len] = '\0';
45 return errorString;
46 }
47
48 private:
49
50 struct ares_channeldata* mChannel;
51
52 typedef std::pair<ExternalDnsHandler*, void*> Payload;
53 static ExternalDnsRawResult makeRawResult(void *arg, int status, unsigned char *abuf, int alen);
54 static ExternalDnsHandler* getHandler(void* arg);
55
56 static void localCallback(void *arg, int status, unsigned char* abuf, int alen);
57
58 static void message(const char* file, unsigned char* buf, int& len);
59 static std::map<Data, Data> files;
60 static Data mTarget;
61};
62
63}
64
65#endif
66
67/* ====================================================================
68 * The Vovida Software License, Version 1.0
69 *
70 * Copyright (c) 2000-2005 Vovida Networks, Inc. All rights reserved.
71 *
72 * Redistribution and use in source and binary forms, with or without
73 * modification, are permitted provided that the following conditions
74 * are met:
75 *
76 * 1. Redistributions of source code must retain the above copyright
77 * notice, this list of conditions and the following disclaimer.
78 *
79 * 2. Redistributions in binary form must reproduce the above copyright
80 * notice, this list of conditions and the following disclaimer in
81 * the documentation and/or other materials provided with the
82 * distribution.
83 *
84 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
85 * and "Vovida Open Communication Application Library (VOCAL)" must
86 * not be used to endorse or promote products derived from this
87 * software without prior written permission. For written
88 * permission, please contact vocal@vovida.org.
89 *
90 * 4. Products derived from this software may not be called "VOCAL", nor
91 * may "VOCAL" appear in their name, without prior written
92 * permission of Vovida Networks, Inc.
93 *
94 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
95 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
96 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
97 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
98 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
99 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
100 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
101 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
102 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
103 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
104 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
105 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
106 * DAMAGE.
107 *
108 * ====================================================================
109 *
110 * This software consists of voluntary contributions made by Vovida
111 * Networks, Inc. and many individuals on behalf of Vovida Networks,
112 * Inc. For more information on Vovida Networks, Inc., please see
113 * <http://www.vovida.org/>.
114 *
115 */
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
virtual ~LocalDns()
Definition LocalDns.cxx:48
virtual void buildFdSet(fd_set &read, fd_set &write, int &size)
Definition LocalDns.cxx:83
virtual void lookupNAPTR(const char *target, ExternalDnsHandler *handler, void *userData)
Definition LocalDns.hxx:34
virtual void lookupARecords(const char *target, ExternalDnsHandler *handler, void *userData)
Definition LocalDns.hxx:32
virtual void lookupAAAARecords(const char *target, ExternalDnsHandler *handler, void *userData)
Definition LocalDns.hxx:33
virtual void process(fd_set &read, fd_set &write)
Definition LocalDns.cxx:88
virtual char * errorMessage(long errorCode)
Definition LocalDns.hxx:36
virtual unsigned int getTimeTillNextProcessMS()
Definition LocalDns.cxx:77
virtual void freeResult(ExternalDnsHostResult)
Definition LocalDns.hxx:28
virtual void freeResult(ExternalDnsRawResult)
Definition LocalDns.hxx:27
virtual void lookupSRV(const char *target, ExternalDnsHandler *handler, void *userData)
Definition LocalDns.hxx:35
virtual int init()
Definition LocalDns.cxx:25
void lookup(const char *target, unsigned short type, ExternalDnsHandler *handler, void *userData)
Definition LocalDns.cxx:93
dcm! – add UnusedChecking(_enum) below;
void list()
Definition userAdmin.cxx:66