X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fresolve.h;h=9fd16bee645bebac9980732cccc76d9e92a3906b;hb=4e56e5341f632827af3810e26cd59ac0c15b642b;hp=2956fac14b07b68160cebe7feb9c66c1c6261900;hpb=3012c232eb6174232e0daa004b8ecc88d903aabe;p=ngircd-alex.git diff --git a/src/ngircd/resolve.h b/src/ngircd/resolve.h index 2956fac1..9fd16bee 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.7 2004/05/11 00:01:11 alex Exp $ + * $Id: resolve.h,v 1.14 2008/02/26 22:04:17 fw Exp $ * * Asynchronous resolver (header) */ @@ -17,39 +17,26 @@ #ifndef __resolve_h__ #define __resolve_h__ - -#ifdef HAVE_SYS_SELECT_H -# include -#endif -#include +#include "array.h" +#include "tool.h" +#include "ng_ipaddr.h" #include - -typedef struct _Res_Stat -{ - INT pid; /* PID des Child-Prozess */ - INT pipe[2]; /* Pipe fuer IPC */ - INT stage; /* Hostname/IP(0) or IDENT(1)? */ - INT bufpos; /* Position in buffer */ - CHAR buffer[HOST_LEN]; /* Buffer */ +/* 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- */