#define __USERS_H__
#include <string>
-
-#ifdef THREADED_DNS
-#include <pthread.h>
-#endif
-
#include "inspircd_config.h"
#include "socket.h"
#include "channels.h"
irc::string channel;
};
+
+
+/** Derived from Resolver, and performs user forward/reverse lookups.
+ */
class UserResolver : public Resolver
{
private:
+ /** User this class is 'attached' to.
+ */
userrec* bound_user;
int bound_fd;
+ bool fwd;
public:
- UserResolver(userrec* user, std::string to_resolve, bool forward) : Resolver(to_resolve, forward), bound_user(user) { };
+ UserResolver(userrec* user, std::string to_resolve, bool forward);
void OnLookupComplete(const std::string &result);
- void OnError(ResolverError e);
+ void OnError(ResolverError e, const std::string &errormessage);
};
/** IPV4 ip address
*/
- insp_inaddr ip4;
+ sockaddr* ip;
+
+ /** Initialize the clients sockaddr
+ */
+ void SetSockAddr(int protocol_family, const char* ip, int port);
+
+ /** Get port number from sockaddr
+ */
+ int GetPort();
+
+ /** Get protocol family from sockaddr
+ */
+ int GetProtocolFamily();
+
+ /** Get IP string from sockaddr
+ */
+ const char* GetIPString();
/* Write error string
*/
/** Default destructor
*/
virtual ~userrec();
-
-#ifdef THREADED_DNS
- /** Thread used for threaded lookups
- */
- pthread_t dnsthread;
-#endif
};
/** Used to hold WHOWAS information