X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fresolve.h;h=8ff88c8b128ff8398b374c2f5dd78403818aece5;hb=1338ade65032e5aea4891694a61d8ee3d1c795e1;hp=716dd51f4f5b6d6b3862dfa1f34144dd0aedfb9a;hpb=b79b315dd4b5fcefb781d1e1e012f71e578a5346;p=ngircd-alex.git diff --git a/src/ngircd/resolve.h b/src/ngircd/resolve.h index 716dd51f..8ff88c8b 100644 --- a/src/ngircd/resolve.h +++ b/src/ngircd/resolve.h @@ -8,7 +8,7 @@ * (at your option) any later version. * Please read the file COPYING, README and AUTHORS for more information. * - * $Id: resolve.h,v 1.6 2003/12/27 13:01:12 alex Exp $ + * $Id: resolve.h,v 1.14 2008/02/26 22:04:17 fw Exp $ * * Asynchronous resolver (header) */ @@ -17,36 +17,25 @@ #ifndef __resolve_h__ #define __resolve_h__ +#include "array.h" +#include "tool.h" +#include "ng_ipaddr.h" -#ifdef HAVE_SYS_SELECT_H -# include -#endif -#include -#include - - -typedef struct _Res_Stat -{ - INT pid; /* PID des Child-Prozess */ - INT pipe[2]; /* Pipe fuer IPC */ +/* This struct must not be accessed directly */ +typedef struct _Res_Stat { + pid_t pid; /* PID of resolver process */ + int resolver_fd; /* pipe fd for lookup result. */ } RES_STAT; -GLOBAL fd_set Resolver_FDs; - - -GLOBAL VOID Resolve_Init PARAMS(( VOID )); - -#ifdef IDENTAUTH -GLOBAL RES_STAT *Resolve_Addr PARAMS(( struct sockaddr_in *Addr, int Sock )); -#else -GLOBAL RES_STAT *Resolve_Addr PARAMS(( struct sockaddr_in *Addr )); -#endif - -GLOBAL RES_STAT *Resolve_Name PARAMS(( CHAR *Host )); +#define Resolve_Getfd(x) ((x)->resolver_fd) +#define Resolve_INPROGRESS(x) ((x)->resolver_fd >= 0) +GLOBAL bool Resolve_Addr PARAMS(( RES_STAT *s, const ng_ipaddr_t *Addr, int identsock, void (*cbfunc)(int, short))); +GLOBAL bool Resolve_Name PARAMS(( RES_STAT *s, const char *Host, void (*cbfunc)(int, short) )); +GLOBAL size_t Resolve_Read PARAMS(( RES_STAT *s, void *buf, size_t buflen)); +GLOBAL void Resolve_Init PARAMS(( RES_STAT *s)); +GLOBAL bool Resolve_Shutdown PARAMS(( RES_STAT *s)); #endif - - /* -eof- */