diff options
Diffstat (limited to 'cforum.h')
-rw-r--r-- | cforum.h | 97 |
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 |