diff options
Diffstat (limited to 'cgi/cgi.h')
| -rw-r--r-- | cgi/cgi.h | 170 | 
1 files changed, 170 insertions, 0 deletions
| diff --git a/cgi/cgi.h b/cgi/cgi.h new file mode 100644 index 0000000..1001368 --- /dev/null +++ b/cgi/cgi.h @@ -0,0 +1,170 @@ +/* +*/ +#ifndef	cgi_h +#define	cgi_h + +#if	HAVE_CONFIG_H +#include	"cgi/cgi_config.h" +#endif +#include "../unicode/unicode.h" + +#ifdef __cplusplus + +extern "C" { + +#endif + +#include <string.h> + +/* +** Copyright 1998 - 2007 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +extern void fake_exit(int); + +void cgi_setup(); +void cgi_cleanup(); +const char *cgi(const char *); +char *cgi_multiple(const char *, const char *); + +char	*cgi_cookie(const char *); +void	cgi_setcookie(const char *, const char *); + +int	cgi_useragent(const char *); + +struct cgi_arglist { +	struct cgi_arglist *next; +	struct cgi_arglist *prev;	/* Used by cgi_multiple */ +	const char *argname; +	const char *argvalue; +	} ; + +extern struct cgi_arglist *cgi_arglist; + +extern void cgiurldecode(char *); +extern void cgi_put(const char *, const char *); + +extern char *cgiurlencode(const char *); +extern char *cgiurlencode_noamp(const char *); +extern char *cgiurlencode_noeq(const char *); + +#if	HAVE_UNISTD_H +#include	<unistd.h> +#endif + +int cgi_getfiles( int (*)(const char *, const char *, void *), +		int (*)(const char *, size_t, void *), +		void (*)(void *), size_t, void *); + +extern const char *cgihttpscriptptr(); +extern const char *cgihttpsscriptptr(); +extern const char *cgiextrapath(); + +extern void cgihttpscriptptr_init(); +extern void cgihttpsscriptptr_init(); + +extern const char *cgirelscriptptr(); +extern void cginocache(); +extern void cgiredirect(const char *); +extern void cgiversion(unsigned *, unsigned *); +extern int cgihasversion(unsigned, unsigned); + +struct cgi_set_cookie_info { +	const char *name; +	const char *value; + +	char *domain; +	char *path; +	int age; +	int secure; +}; + +#define cgi_set_cookie_info_init(i) (memset((i), 0, sizeof(*(i))), (i)->age=-1) +#define cgi_set_cookie_info_free(i) do { if ((i)->path) \ +			free((i)->path);		\ +		if ((i)->domain)			\ +			free((i)->domain);		\ +	} while(0) + +#define cgi_set_cookie_session(c,n,v) ( ((c)->name=(n)), ((c)->value)=(v)) +#define cgi_set_cookie_expired(c,n) ( ((c)->name=(n)), ((c)->value)="",\ +				      (c)->age=0) + +extern int cgi_set_cookie_url(struct cgi_set_cookie_info *i, +			      const char *url); + +#define cgi_set_cookie_secure(c) ((c)->secure=1) + +extern void cgi_set_cookies(struct cgi_set_cookie_info *cookies, +			    size_t n_cookies); + +extern char *cgi_get_cookie(const char *cookie_name); + +extern char *cgi_select(const char *name, +			const char *optvalues, +			const char *optlabels, +			const char *default_value, +			size_t list_size, +			const char *flags); /* "m" - multiple, "d" -disabled */ +extern char *cgi_checkbox(const char *name, +			  const char *value, +			  const char *flags); +extern char *cgi_input(const char *name, +		       const unicode_char *value, +		       int size, +		       int maxlength, +		       const char *opts); + +extern char *cgi_textarea(const char *name, +			  int rows, +			  int cols, +			  const unicode_char *value, +			  const char *wrap, +			  const char *opts); + +extern void cgiformdatatempdir(const char *); +		/* Specify directory for formdata temp file */ + +extern void cgi_daemon(int nprocs, const char *lockfile, +		       void (*postinit)(void *), +		       void (*handler)(void *), +		       void *dummy); +extern void cgi_connectdaemon(const char *sockfilename, int pass_fd); + +#define SOCKENVIRONLEN 8192 + +#define VALIDCGIVAR(p) \ +		    (strncmp((p), "DOCUMENT_", 9) == 0 || \ +		     strncmp((p), "GATEWAY_", 8) == 0 || \ +		     strncmp((p), "HTTP_", 5) == 0 || \ +		     strncmp((p), "HTTPS=", 6) == 0 || \ +		     strncmp((p), "SSL_", 4) == 0 || \ +		     strncmp((p), "QUERY_STRING=", 13) == 0 || \ +		     strncmp((p), "SQWEBMAIL_", 10) == 0 || \ +		     strncmp((p), "REMOTE_", 7) == 0 || \ +		     strncmp((p), "REQUEST_", 8) == 0 || \ +		     strncmp((p), "SCRIPT_", 7) == 0 || \ +		     strncmp((p), "SERVER_", 7) == 0 || \ +		     strncmp((p), "CONTENT_", 8) == 0 || \ +		     strncmp((p), "PATH_INFO=", 10) == 0) + +#define CGI_PASSFD 0 + +#if CGI_PASSFD_MSGACCRIGHTS +#undef CGI_PASSFD +#define CGI_PASSFD 1 +#endif + +#if CGI_PASSFD_MSGCONTROL +#undef CGI_PASSFD +#define CGI_PASSFD 1 +#endif + +#ifdef __cplusplus + +} + +#endif + +#endif | 
