X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fresolve.h;h=8ff88c8b128ff8398b374c2f5dd78403818aece5;hb=e1de769ab9958f6debbd884a1555de09d1191d32;hp=b9a30d6f422f75803707e87245252aeccc805966;hpb=46ec0f24f60cf476ccad300f80a47dc31753443c;p=ngircd-alex.git diff --git a/src/ngircd/resolve.h b/src/ngircd/resolve.h index b9a30d6f..8ff88c8b 100644 --- a/src/ngircd/resolve.h +++ b/src/ngircd/resolve.h @@ -1,45 +1,41 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de) * - * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen - * der GNU General Public License (GPL), wie von der Free Software Foundation - * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 - * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. - * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste - * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * Please read the file COPYING, README and AUTHORS for more information. * - * $Id: resolve.h,v 1.1 2002/05/27 11:23:27 alex Exp $ + * $Id: resolve.h,v 1.14 2008/02/26 22:04:17 fw Exp $ * - * resolve.h: asyncroner Resolver (Header) + * Asynchronous resolver (header) */ #ifndef __resolve_h__ #define __resolve_h__ +#include "array.h" +#include "tool.h" +#include "ng_ipaddr.h" -#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 )); - -GLOBAL RES_STAT *Resolve_Addr PARAMS(( struct sockaddr_in *Addr )); -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- */