2009-04-03 09:21:58 +00:00
|
|
|
#pragma once
|
|
|
|
|
2009-04-05 13:04:18 +00:00
|
|
|
#include <list>
|
|
|
|
#include <string>
|
2009-04-03 09:21:58 +00:00
|
|
|
#include "util/rsthreads.h"
|
|
|
|
|
|
|
|
struct sockaddr ;
|
|
|
|
|
|
|
|
class ExtAddrFinder
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ExtAddrFinder() ;
|
|
|
|
~ExtAddrFinder() ;
|
|
|
|
|
|
|
|
bool hasValidIP(struct sockaddr_in *addr) ;
|
2009-04-05 13:04:18 +00:00
|
|
|
void getIPServersList(std::list<std::string>& ip_servers) { ip_servers = _ip_servers ; }
|
2009-04-03 09:21:58 +00:00
|
|
|
|
|
|
|
void start_request() ;
|
|
|
|
|
2009-11-06 22:12:58 +00:00
|
|
|
void reset() ;
|
|
|
|
|
2009-04-05 13:04:18 +00:00
|
|
|
private:
|
|
|
|
friend void* doExtAddrSearch(void *p) ;
|
|
|
|
|
2009-10-30 00:44:04 +00:00
|
|
|
time_t *mFoundTS;
|
2009-04-03 09:21:58 +00:00
|
|
|
RsMutex _addrMtx ;
|
|
|
|
struct sockaddr_in *_addr ;
|
|
|
|
bool *_found ;
|
|
|
|
bool *_searching ;
|
2009-04-05 13:04:18 +00:00
|
|
|
std::list<std::string> _ip_servers ;
|
2009-04-03 09:21:58 +00:00
|
|
|
};
|