/* prepared-sql.h -- PostgreSQL database driver for eurephia * * GPLv2 only - Copyright (C) 2012 * 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. * */ /** * @file prepared-sql.h * @author David Sommerseth * @date 2012-01-15 * * @brief eurephia database driver for the PostgreSQL database. * The infrastructure needed for prepared SQL statements */ #ifndef _PREPARED_SQL_H #define _PREPARED_SQL_H #include #include typedef enum { PREPSQL_NONE = 0, PREPSQL_TLS_AUTH, PREPSQL_USERPWD_AUTH, PREPSQL_BLACKLIST_ATTEMPTUPD, PREPSQL_USERS_LASTACC_UPD, PREPSQL_USERS_GETUID, PREPSQL_ATTEMPTS_RESET, PREPSQL_ATTEMPTS_INCR, PREPSQL_ATTEMPTS_REG_CERT, PREPSQL_ATTEMPTS_REG_USERNAME, PREPSQL_ATTEMPTS_REG_IPADDR, PREPSQL_BLACKLIST_CHECK_CERT, PREPSQL_BLACKLIST_CHECK_USERNAME, PREPSQL_BLACKLIST_CHECK_IPADDR, PREPSQL_BLACKLIST_REG_CERT, PREPSQL_BLACKLIST_REG_USERNAME, PREPSQL_BLACKLIST_REG_IPADDR, PREPSQL_SESSIONKEY_GETSEED_SESSION, PREPSQL_SESSIONKEY_GETSEED_AUTH, PREPSQL_SESSIONKEY_GETMAC, PREPSQL_SESSIONKEY_UNIQ_ADMIN, PREPSQL_SESSIONKEY_UNIQ_PLAUTH, PREPSQL_SESSIONKEY_REGISTER, PREPSQL_SESSIONKEY_REMOVE, PREPSQL_SESSIONVARS_LOAD, PREPSQL_SESSIONVARS_STORE_NEW, PREPSQL_SESSIONVARS_STORE_UPDATE, PREPSQL_SESSIONVARS_STORE_DELETE, PREPSQL_SESSIONS_DESTROY_LASTLOG, PREPSQL_SESSIONS_DESTROY_SESS, PREPSQL_REGISTER_LOGIN, PREPSQL_REGISTER_LOGOUT, PREPSQL_MACHISTORY_REGISTER, PREPSQL_MACHISTORY_LASTLOG, PREPSQL_FIREWALL_GETPROFILE, PREPSQL_ADMIN_AUTHUSER, PREPSQL_ADMIN_AUTHSESS, PREPSQL_ADMIN_REGLOGIN, PREPSQL_ADMIN_REGLOGOUT, PREPSQL_ADMIN_CHECKACL, PREPSQL_ADMIN_ADMLOG_LASTACT, PREPSQL_ADMIN_ADMLOG_LOGOUT } ePG_prepID; typedef struct _ePGprepParam_s { ePG_prepID prepid; int index; char **params; } ePGprepParams; const char const * ePGprepStatementGetName(eurephiaCTX *ctx, ePG_prepID prepid); int ePGprepLoadStatements(eurephiaCTX *ctx); ePGprepParams * ePGprepParamsAlloc(eurephiaCTX *ctx, ePG_prepID prepid); int ePGprepParamsAddArgument(eurephiaCTX *ctx, ePGprepParams *prms, const char *arg); int ePGprepParamsAddArgumentInt(eurephiaCTX *ctx, ePGprepParams *prms, const int arg); int ePGprepParamsAddArgumentChar(eurephiaCTX *ctx, ePGprepParams *prms, const char arg); PGresult * ePGprepExec(eurephiaCTX *ctx, ePGprepParams *qry_args); #endif