/*
- cgi.h - Some simple routines for cgi programming
- Copyright (c) 1996-8 Martin Schulze <joey@infodrom.org>
+ cgi.h - Routines for CGI programming
+ Copyright (c) 1996-8,2007,8 Martin Schulze <joey@infodrom.org>
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
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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ along with this program; if not, write to the Free Software Foundation
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef _CGI_H_
#define _CGI_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct var_s {
char *name,
*value;
*domain;
} s_cookie;
+typedef struct file_s {
+ char *name,
+ *type,
+ *filename,
+ *tmpfile;
+} s_file;
+
typedef struct cgi_s {
s_var **vars;
s_cookie **cookies;
+ s_file **files;
} s_cgi;
/* cgiSetHeader
*
* Sets additional HTTP header lines to be printed with cgiHeader
*/
-int cgiSetHeader (char *name, char *value);
+int cgiSetHeader (const char *name, const char *value);
/* cgiSetType
*
* Sets result type for HTTP
*/
-int cgiSetType (char *type);
+int cgiSetType (const char *type);
/* cgiHeader
*
/* cgiGetCookies
*
- * Returns a list of name of all cookies.
+ * Returns a list of names of all cookies.
*/
char **cgiGetCookies (s_cgi *parms);
+/* cgiGetFiles
+ *
+ * Returns a list of names of all files.
+ */
+char **cgiGetFiles (s_cgi *parms);
+
+/* cgiGetFile
+ *
+ * Return data structure for CGI file variable
+ */
+s_file *cgiGetFile (s_cgi *parms, const char *name);
+
/* cgiFreeList
*
* Frees a list as returned by cgiGetVariables() and cgiGetCookies()
*/
void cgiFree (s_cgi *parms);
+/* cgiEscape
+ *
+ * Escapes <&> in a string
+ */
+char *cgiEscape (char *string);
+
+#ifdef __cplusplus
+extern }
+#endif
+
#endif /* _CGI_H_ */