aboutsummaryrefslogtreecommitdiff
path: root/cforum.h
diff options
context:
space:
mode:
Diffstat (limited to 'cforum.h')
-rw-r--r--cforum.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/cforum.h b/cforum.h
new file mode 100644
index 0000000..13d0d30
--- /dev/null
+++ b/cforum.h
@@ -0,0 +1,97 @@
+#include <sqlite3.h>
+
+/***** Types *****/
+
+enum method{
+ GET,
+ POST
+};
+
+struct att{
+ int id;
+ int post;
+ int bytes; /* Size of data. */
+ char *name;
+ char *desc;
+ char *mime;
+ char *data;
+};
+
+struct post{
+ int id;
+ int parent;
+ int user;
+ int created;
+ int edited;
+ char *subject;
+ char *text;
+};
+
+struct user{
+ int id;
+ int created;
+ char *name;
+ char *full;
+ char *hash;
+};
+
+struct query{
+ int method;
+ int length; /* Content length. */
+ char *string;
+};
+
+struct site{
+ char *name;
+};
+
+/***** Functions *****/
+
+/* ctl.c */
+void newatt(void);
+void newpost(void);
+void newuser(void);
+void showatt(int);
+void showfront(void);
+void showpost(int);
+void showuser(int);
+
+/* db.c */
+int addatt(struct att *);
+int adduser(struct user *);
+struct att *getatt(sqlite3_stmt *);
+struct post *getpost(sqlite3_stmt *);
+struct user *getuser(sqlite3_stmt *);
+struct att *nextatt(sqlite3_stmt *);
+struct post *nextpost(sqlite3_stmt *);
+struct user *nextuser(sqlite3_stmt *);
+sqlite3_stmt *selectbyint(char *, char *, int);
+
+/* err.c */
+void srverr(char *);
+
+/* query.c */
+char *nextparam(enum method, int *, int);
+void setquery(void);
+char *split(char *);
+int urldecode(char *, int);
+
+/***** Definitions *****/
+
+#define TRUNCATED(s) s[-1]
+
+/* Maximum allowed Content-Length for various forms. */
+#define MAXATTDATA 4096
+#define MAXUSERDATA 512
+#define MAXPOSTDATA 4096
+
+/* Maximum size of user information, incl. NUL. */
+#define MAXUSERNAME 40
+#define MAXUSERFULL 128
+#define MAXUSERPASS 128
+
+/***** Variables *****/
+
+sqlite3 *db;
+struct query query;
+struct site site; \ No newline at end of file