X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fusers.h;h=c81ad988b7785429841bd78058e3a3c3140755e5;hb=be1e2e4ee5eb8b990692e6f5ae20931abe4c9e3c;hp=c91b2635a55e6cb82efa0b274ce979ef5025fb15;hpb=c80508b28be5947648f59710e6653f793a73bd76;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/users.h b/include/users.h index c91b2635a..c81ad988b 100644 --- a/include/users.h +++ b/include/users.h @@ -29,6 +29,7 @@ #include "inspstring.h" #include "connection.h" #include "hashcomp.h" +#include "dns.h" #include "cull_list.h" enum ChanStatus { @@ -68,6 +69,21 @@ class Invited : public classbase irc::string channel; }; +class UserResolver : public Resolver +{ + private: + userrec* bound_user; + int bound_fd; + public: + UserResolver(userrec* user, std::string to_resolve, bool forward) : Resolver(to_resolve, forward), bound_user(user) + { + this->bound_fd = user->fd; + } + + void OnLookupComplete(const std::string &result); + void OnError(ResolverError e); +}; + /** Holds information relevent to <connect allow> and <connect deny> tags in the config file. */ @@ -146,6 +162,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.