2 cgi.h - Routines for CGI programming
3 Copyright (c) 1996-8,2007,8 Martin Schulze <joey@infodrom.org>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software Foundation
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27 typedef struct var_s {
32 typedef struct cookie_s {
40 typedef struct file_s {
47 typedef struct cgi_s {
55 * Sets additional HTTP header lines to be printed with cgiHeader
57 int cgiSetHeader (const char *name, const char *value);
61 * Sets result type for HTTP
63 int cgiSetType (const char *type);
67 * Prints a valid CGI Header (Content-type...) etc.
73 * Set/unsets debugging
75 void cgiDebug (int level, int where);
79 * Reads in variables set via POST or stdin, reads HTTP Cookies.
85 * Returns the value of the specified variable or NULL if it's empty
88 char *cgiGetValue (s_cgi *parms, const char *name);
92 * Returns the names of all form variables.
94 char **cgiGetVariables (s_cgi *parms);
98 * Provides a valid redirect for web pages.
100 void cgiRedirect (const char *url);
104 * Returns the cookie referenced by the given name or NULL if it
105 * doesn't exist or is empty.
107 s_cookie *cgiGetCookie (s_cgi *parms, const char *name);
111 * Returns a list of names of all cookies.
113 char **cgiGetCookies (s_cgi *parms);
117 * Returns a list of names of all files.
119 char **cgiGetFiles (s_cgi *parms);
123 * Return data structure for CGI file variable
125 s_file *cgiGetFile (s_cgi *parms, const char *name);
129 * Frees a list as returned by cgiGetVariables() and cgiGetCookies()
131 void cgiFreeList (char **list);
135 * Frees the internal data structures
137 void cgiFree (s_cgi *parms);
141 * Escapes <&> in a string
143 char *cgiEscape (char *string);