DNS Class Reference

This class holds a number of static functions used for DNS related stuff. More...

#include <dns.h>

List of all members.

Public Types

enum  DNSError { DNS_COULD_NOT_CONNECT = 1, DNS_NO_HOSTS_FOUND, DNS_COULD_NOT_RESOLVE }
typedef std::map< std::string,
int > 
HostMap

Static Public Member Functions

static HostMap resolve (const std::string &service, const std::string &proto, const std::string &domain)
static HostMap resolve (const std::string &domain)
static int connect (const std::string &domain, const LogSink &logInstance)
static int connect (const std::string &domain, int port, const LogSink &logInstance)


Detailed Description

This class holds a number of static functions used for DNS related stuff.

You should not need to use these functions directly.

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.3

Definition at line 54 of file dns.h.


Member Typedef Documentation

typedef std::map<std::string, int> HostMap

A list of strings (used for server addresses) and ints (used for port numbers).

Definition at line 71 of file dns.h.


Member Enumeration Documentation

enum DNSError

Possible errors occuring while resolving and connecting.

Enumerator:
DNS_COULD_NOT_CONNECT  None of the resolved hosts could be contacted.
DNS_NO_HOSTS_FOUND  It was not possible to resolve SRV record.
DNS_COULD_NOT_RESOLVE  The given domain name could not be resolved.

Definition at line 61 of file dns.h.


Member Function Documentation

DNS::HostMap resolve ( const std::string &  service,
const std::string &  proto,
const std::string &  domain 
) [static]

This funtion resolves a service/protocol/domain tuple.

Parameters:
service The SRV service type.
proto The SRV protocol.
domain The domain to search for SRV records.
Returns:
A list of weighted hostname/port pairs from SRV records, or A records if no SRV records where found.

Definition at line 80 of file dns.cpp.

Referenced by DNS::connect(), and DNS::resolve().

DNS::HostMap resolve ( const std::string &  domain  )  [static]

This is a convenience funtion which uses resolve() to resolve SRV records for a given domain, using a service of xmpp and a proto of tcp.

Parameters:
domain The domain to resolve SRV records for.
Returns:
A list of weighted hostname/port pairs from SRV records, or A records if no SRV records where found.

Definition at line 72 of file dns.cpp.

int connect ( const std::string &  domain,
const LogSink logInstance 
) [static]

This is a convenience function which uses resolve() to get a list of hosts and connects to one of them.

Parameters:
domain The domain to resolve SRV records for.
logInstance A LogSink to use for logging.
Returns:
A file descriptor for the established connection.

Definition at line 169 of file dns.cpp.

Referenced by DNS::connect(), and Connection::connect().

int connect ( const std::string &  domain,
int  port,
const LogSink logInstance 
) [static]

This is a convenience function which uses connects to the given host and port. No SRV records are resolved. Use this function for special setups.

Parameters:
domain The domain to connect to.
port A custom port to connect to.
logInstance A LogSink to use for logging.
Returns:
A file descriptor for the established connection.

Definition at line 227 of file dns.cpp.


The documentation for this class was generated from the following files:
Generated on Tue May 1 14:20:23 2007 for gloox by  doxygen 1.5.1