File: cgi.h

package info (click to toggle)
cgilib 0.5-4
  • links: PTS
  • area: main
  • in suites: sarge, woody
  • size: 140 kB
  • ctags: 60
  • sloc: ansic: 652; makefile: 97; sh: 10
file content (115 lines) | stat: -rw-r--r-- 2,491 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
    cgi.h - Some simple routines for cgi programming
    Copyright (c) 1996-8  Martin Schulze <joey@infodrom.north.de>

    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; either version 2 of the License, or
    (at your option) any later version.

    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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
 */

#ifndef _CGI_H_
#define _CGI_H_

typedef struct var_s {
	char	*name,
		*value;
} s_var;

typedef struct cookie_s {
	char	*version,
		*name,
		*value,
		*path,
		*domain;
} s_cookie;

typedef struct cgi_s {
	s_var **vars;
	s_cookie **cookies;
} s_cgi;

/* cgiSetHeader
 * 
 *  Sets additional HTTP header lines to be printed with cgiHeader
 */
int cgiSetHeader (char *name, char *value);

/* cgiSetType
 * 
 *  Sets result type for HTTP
 */
int cgiSetType (char *type);

/* cgiHeader
 * 
 *  Prints a valid CGI Header (Content-type...) etc.
 */
void cgiHeader ();

/* cgiDebug
 * 
 *  Set/unsets debugging
 */
void cgiDebug (int level, int where);

/* cgiInit
 *
 *  Reads in variables set via POST or stdin, reads HTTP Cookies.
 */
s_cgi *cgiInit ();

/* cgiGetValue
 *
 *  Returns the value of the specified variable or NULL if it's empty
 *  or doesn't exist.
 */
char *cgiGetValue (s_cgi *parms, const char *name);

/* cgiGetVariables
 *
 *  Returns the names of all form variables.
 */
char **cgiGetVariables (s_cgi *parms);

/* cgiRedirect
 *
 *  Provides a valid redirect for web pages.
 */
void cgiRedirect (const char *url);

/* cgiGetCookie
 *
 *  Returns the cookie referenced by the given name or NULL if it
 *  doesn't exist or is empty.
 */
s_cookie *cgiGetCookie (s_cgi *parms, const char *name);

/* cgiGetCookies
 *
 * Returns a list of name of all cookies.
 */
char **cgiGetCookies (s_cgi *parms);

/* cgiFreeList
 *
 * Frees a list as returned by cgiGetVariables() and cgiGetCookies()
 */
void cgiFreeList (char **list);

/* cgiFree
 *
 * Frees the internal data structures
 */
void cgiFree (s_cgi *parms);

#endif /* _CGI_H_ */