X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fs_auth.h;h=e286d1e7a3f4e30e36ef162f4618fe01ffed9175;hb=refs%2Fheads%2Fupstream-ssl;hp=30feea0ac8a10ae8a6dac31954ed75f701656833;hpb=ae91ef6320f611af74e70a0db2620c338fbaa7d5;p=ircu2.10.12-pk.git diff --git a/include/s_auth.h b/include/s_auth.h index 30feea0..e286d1e 100644 --- a/include/s_auth.h +++ b/include/s_auth.h @@ -14,8 +14,10 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id$ + */ +/** @file + * @brief Interface for DNS and ident lookups. + * @version $Id$ */ #ifndef INCLUDED_s_auth_h #define INCLUDED_s_auth_h @@ -23,53 +25,31 @@ #include #define INCLUDED_sys_types_h #endif -#ifndef INCLUDED_config_h -#include "config.h" +#ifndef INCLUDED_ircd_events_h +#include "ircd_events.h" #endif struct Client; - -struct AuthRequest { - struct AuthRequest* next; /* linked list node ptr */ - struct AuthRequest* prev; /* linked list node ptr */ - struct Client* client; /* pointer to client struct for request */ - unsigned int flags; /* current state of request */ - int fd; /* file descriptor for auth queries */ - int index; /* select / poll index */ - time_t timeout; /* time when query expires */ -}; - -/* - * flag values for AuthRequest - * NAMESPACE: AM_xxx - Authentication Module - */ -#define AM_AUTH_CONNECTING 0x01 -#define AM_AUTH_PENDING 0x02 -#define AM_DNS_PENDING 0x04 - -#define SetDNSPending(x) ((x)->flags |= AM_DNS_PENDING) -#define ClearDNSPending(x) ((x)->flags &= ~AM_DNS_PENDING) -#define IsDNSPending(x) ((x)->flags & AM_DNS_PENDING) - -#define SetAuthConnect(x) ((x)->flags |= AM_AUTH_CONNECTING) -#define ClearAuthConnect(x) ((x)->flags &= ~AM_AUTH_CONNECTING) -#define IsAuthConnect(x) ((x)->flags & AM_AUTH_CONNECTING) - -#define SetAuthPending(x) ((x)->flags |= AM_AUTH_PENDING) -#define ClearAuthPending(x) ((x)->flags &= AM_AUTH_PENDING) -#define IsAuthPending(x) ((x)->flags & AM_AUTH_PENDING) - -#define ClearAuth(x) ((x)->flags &= ~(AM_AUTH_PENDING | AM_AUTH_CONNECTING)) -#define IsDoingAuth(x) ((x)->flags & (AM_AUTH_PENDING | AM_AUTH_CONNECTING)) - - -extern struct AuthRequest* AuthPollList; /* GLOBAL - auth queries pending io */ +struct AuthRequest; +struct StatDesc; extern void start_auth(struct Client *); -extern void timeout_auth_queries(time_t now); -extern void read_auth_reply(struct AuthRequest* req); -extern void send_auth_query(struct AuthRequest* req); -extern void remove_auth_request(struct AuthRequest *req); +extern int auth_ping_timeout(struct Client *); +extern int auth_set_pong(struct AuthRequest *auth, unsigned int cookie); +extern int auth_set_user(struct AuthRequest *auth, const char *username, const char *hostname, const char *servername, const char *userinfo); +extern int auth_set_nick(struct AuthRequest *auth, const char *nickname); +extern int auth_set_password(struct AuthRequest *auth, const char *password); +extern int auth_cap_start(struct AuthRequest *auth); +extern int auth_cap_done(struct AuthRequest *auth); +extern void destroy_auth_request(struct AuthRequest *req); + +extern int auth_spawn(int argc, char *argv[]); +extern void auth_send_exit(struct Client *cptr); +extern void auth_send_xreply(struct Client *sptr, const char *routing, const char *reply); +extern void auth_mark_closing(void); +extern void auth_close_unused(void); +extern void report_iauth_conf(struct Client *cptr, const struct StatDesc *sd, char *param); +extern void report_iauth_stats(struct Client *cptr, const struct StatDesc *sd, char *param); #endif /* INCLUDED_s_auth_h */