summaryrefslogtreecommitdiffstats
path: root/database/postgresql/prepared-sql.h
diff options
context:
space:
mode:
Diffstat (limited to 'database/postgresql/prepared-sql.h')
-rw-r--r--database/postgresql/prepared-sql.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/database/postgresql/prepared-sql.h b/database/postgresql/prepared-sql.h
new file mode 100644
index 0000000..0d09f20
--- /dev/null
+++ b/database/postgresql/prepared-sql.h
@@ -0,0 +1,72 @@
+/* prepared-sql.h -- PostgreSQL database driver for eurephia
+ *
+ * GPLv2 only - Copyright (C) 2012
+ * David Sommerseth <dazo@users.sourceforge.net>
+ *
+ * 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 <dazo@users.sourceforge.net>
+ * @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 <stdarg.h>
+#include <eurephia_context.h>
+
+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
+} ePG_prepID;
+
+typedef struct _ePGprepParam_s {
+ ePG_prepID prepid;
+ int index;
+ char **params;
+} ePGprepParams;
+
+int ePGprepStatementGetID(ePG_prepID prepid);
+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);
+PGresult * ePGprepExec(eurephiaCTX *ctx, ePGprepParams *qry_args);
+
+#endif