]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Remove dnsqueue
[user/henk/code/inspircd.git] / include / users.h
index c91b2635a55e6cb82efa0b274ce979ef5025fb15..ea87004859879ad7a550ed1bcaf008497c2b47f2 100644 (file)
 #define __USERS_H__ 
 
 #include <string>
-
-#ifdef THREADED_DNS
-#include <pthread.h>
-#endif
-
 #include "inspircd_config.h" 
 #include "socket.h"
 #include "channels.h"
 #include "inspstring.h"
 #include "connection.h"
 #include "hashcomp.h"
+#include "dns.h"
 #include "cull_list.h"
 
 enum ChanStatus {
@@ -69,6 +65,24 @@ class Invited : public classbase
 };
 
 
+
+/** 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;
+ public:
+       UserResolver(userrec* user, std::string to_resolve, bool forward);
+
+       void OnLookupComplete(const std::string &result);
+       void OnError(ResolverError e);
+};
+
+
 /** Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
  */
 class ConnectClass : public classbase
@@ -146,6 +160,13 @@ class userrec : public connection
         */
        InvitedList invites;
  public:
+       /** Resolvers for looking up this users hostname
+        */
+       UserResolver* res_forward;
+       UserResolver* res_reverse;
+       std::string stored_host;
+
+       void StartDNSLookup();
        
        /** The users nickname.
         * An invalid nickname indicates an unregistered connection prior to the NICK command.
@@ -396,12 +417,6 @@ class userrec : public connection
        /** Default destructor
         */
        virtual ~userrec();
-
-#ifdef THREADED_DNS
-       /** Thread used for threaded lookups
-        */
-       pthread_t dnsthread;
-#endif
 };
 
 /** Used to hold WHOWAS information