aboutsummaryrefslogtreecommitdiff
path: root/iauth/a_struct_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'iauth/a_struct_def.h')
-rw-r--r--iauth/a_struct_def.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/iauth/a_struct_def.h b/iauth/a_struct_def.h
new file mode 100644
index 0000000..d71b166
--- /dev/null
+++ b/iauth/a_struct_def.h
@@ -0,0 +1,72 @@
+/************************************************************************
+ * IRC - Internet Relay Chat, iauth/a_struct_def.h
+ * Copyright (C) 1998 Christophe Kalt
+ *
+ * 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 1, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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.
+ */
+
+
+typedef struct AuthData anAuthData;
+
+#define INBUFSIZE 4096 /* I/O buffer size */
+#define MAXI 16 /* maximum number of instances */
+#define BDSIZE ((MAXI + 7) / 8) /* bit data size */
+
+struct AuthData
+{
+ /* the following are set by a_io.c and may be read by modules */
+ char user[USERLEN+1]; /* username */
+ char passwd[PASSWDLEN+1]; /* password */
+ char host[HOSTLEN+1]; /* hostname */
+ char itsip[HOSTLEN+1]; /* client ip */
+ u_short itsport; /* client port */
+ char ourip[HOSTLEN+1]; /* our ip */
+ u_short ourport; /* our port */
+ u_int state; /* state (general) */
+
+ /* the following are set by modules */
+ char *authuser; /* authenticated username */
+ u_char authfrom; /* where we got authuser from */
+
+ /* the following are for use by a_io.c only */
+ char idone[BDSIZE]; /* keeping track of instances' work */
+ u_char ileft; /* time saver, anything left? */
+
+ /* the following are shared by a_io.c & modules */
+ char *inbuffer; /* input buffer */
+ u_int buflen; /* length of data in buffer */
+ int rfd, wfd; /* fd's */
+ AnInstance *instance; /* the module instanciation working */
+ u_int mod_status; /* used by the module only! */
+ time_t timeout; /* timeout */
+};
+
+#define A_ACTIVE 0x0001 /* entry is active */
+#define A_START 0x0002 /* go through modules from beginning */
+#define A_DONE 0x0004 /* nothing left to be done */
+#define A_IGNORE 0x0010 /* ignore subsequent messages from ircd */
+#define A_LATE 0x0080 /* ircd is no longer waiting for a reply */
+
+#define A_GOTU 0x0100 /* got username (from ircd) */
+#define A_GOTP 0x0200 /* got password (from ircd) */
+#define A_GOTH 0x0400 /* got hostname (from ircd) */
+#define A_NOH 0x0800 /* no hostname available */
+
+#define A_UNIX 0x1000 /* authuser is suitable for use by ircd */
+#define A_DENY 0x8000 /* connection should be denied access */
+
+#define SetBit(v,n) v[n/8] |= (1 << (n % 8))
+#define UnsetBit(v,n) v[n/8] &= ~(1 << (n % 8))
+#define CheckBit(v,n) (v[n/8] & (1 << (n % 8)))