X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fs_auth.h;h=14c55a1210b7d55832906e19d5ccd6888138eedc;hb=3d59398668e6f0977c147c5efeefe7582d05b25b;hp=d9aee6d8821e131b5467b9b8150cd37fc75f234d;hpb=fda30451cac5936729c683d38a700f4928812c6f;p=ircu2.10.12-pk.git diff --git a/include/s_auth.h b/include/s_auth.h index d9aee6d..14c55a1 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 @@ -28,52 +30,25 @@ #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 */ - struct Socket socket; /* socket descriptor for auth queries */ - struct Timer timeout; /* timeout timer for auth queries */ -}; - -/* - * 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 AM_SOCKET 0x40 /* socket structure not destroyed */ -#define AM_TIMEOUT 0x80 /* timer structure not destroyed */ - -#define AM_FREE_MASK (AM_SOCKET | AM_TIMEOUT) - -#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 read_auth_reply(struct AuthRequest* req); -extern void send_auth_query(struct AuthRequest* req); -extern void destroy_auth_request(struct AuthRequest *req, int send_reports); +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_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 */