/* eurephia_struct.h -- Structures and defines used by the eurephia module * * GPLv2 - Copyright (C) 2008 David Sommerseth * * 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; version 2 * of the License. * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ /*** Structures used by the eurphia module ***/ #include #include #ifndef EUREPHIASTRUCT_H_ #define EUREPHIASTRUCT_H_ #define SESSION_NEW 1 #define SESSION_EXISTING 2 #define SESSION_REGISTERED 3 #define SESSION_LOGGEDOUT 4 typedef struct __eurephiaVALUES { unsigned int evgid; unsigned int evid; char *key; char *val; struct __eurephiaVALUES *next; } eurephiaVALUES; // // Struct which contains session unique data // typedef struct { char *sessionkey; int sessionstatus; eurephiaVALUES *sessvals; } eurephiaSESSION; // // Struct containing connection to the database we are using // typedef struct { void *dbhandle; char *dbname; eurephiaVALUES *config; } eDBconn; // // structs used by the firewall interface // typedef struct { mqd_t msgq; sem_t *semp_worker; sem_t *semp_master; char *fw_command; void *ctx; } efw_threaddata; typedef struct { efw_threaddata thrdata; pid_t fwproc_pid; } eurephiaFWINTF; // // main structure for the eurephia module context // - the same context structure is used for all OpenVPN sessions // typedef struct { void *eurephia_driver; void *eurephia_fw_intf; eDBconn *dbc; eurephiaFWINTF *fwcfg; FILE *log; int loglevel; int fatal_error; } eurephiaCTX; #endif