1/*
2 * "$Id: cgi.h 11093 2013-07-03 20:48:42Z msweet $"
3 *
4 *   CGI support library definitions for CUPS.
5 *
6 *   Copyright 2007-2010 by Apple Inc.
7 *   Copyright 1997-2006 by Easy Software Products.
8 *
9 *   These coded instructions, statements, and computer programs are the
10 *   property of Apple Inc. and are protected by Federal copyright
11 *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
12 *   which should have been included with this file.  If this file is
13 *   file is missing or damaged, see the license at "http://www.cups.org/".
14 */
15
16#ifndef _CUPS_CGI_H_
17#  define _CUPS_CGI_H_
18
19#  include <stdio.h>
20#  include <stdlib.h>
21#  include <time.h>
22#  include <sys/stat.h>
23
24#  ifdef WIN32
25#    include <direct.h>
26#    include <io.h>
27#  else
28#    include <unistd.h>
29#  endif /* WIN32 */
30
31#  include <cups/cups.h>
32#  include <cups/array.h>
33#  include "help-index.h"
34
35
36/*
37 * C++ magic...
38 */
39
40#  ifdef __cplusplus
41extern "C" {
42#  endif /* __cplusplus */
43
44/*
45 * Types...
46 */
47
48typedef struct cgi_file_s		/**** Uploaded file data ****/
49{
50  char		tempfile[1024],		/* Temporary file containing data */
51		*name,			/* Variable name */
52		*filename,		/* Original filename */
53		*mimetype;		/* MIME media type */
54  size_t	filesize;		/* Size of uploaded file */
55} cgi_file_t;
56
57
58/*
59 * Prototypes...
60 */
61
62extern void		cgiAbort(const char *title, const char *stylesheet,
63			         const char *format, ...);
64extern int		cgiCheckVariables(const char *names);
65extern void		cgiClearVariables(void);
66extern void		*cgiCompileSearch(const char *query);
67extern void		cgiCopyTemplateFile(FILE *out, const char *tmpl);
68extern void		cgiCopyTemplateLang(const char *tmpl);
69extern int		cgiDoSearch(void *search, const char *text);
70extern void		cgiEndHTML(void);
71extern void		cgiEndMultipart(void);
72extern char		*cgiFormEncode(char *dst, const char *src,
73			               size_t dstsize);
74extern void		cgiFreeSearch(void *search);
75extern const char	*cgiGetArray(const char *name, int element);
76extern void		cgiGetAttributes(ipp_t *request, const char *tmpl);
77extern const char	*cgiGetCookie(const char *name);
78extern const cgi_file_t	*cgiGetFile(void);
79extern cups_array_t	*cgiGetIPPObjects(ipp_t *response, void *search);
80extern int		cgiGetSize(const char *name);
81extern char		*cgiGetTemplateDir(void);
82extern const char	*cgiGetVariable(const char *name);
83extern int		cgiInitialize(void);
84extern int		cgiIsPOST(void);
85extern void		cgiMoveJobs(http_t *http, const char *dest, int job_id);
86extern void		cgiPrintCommand(http_t *http, const char *dest,
87			                const char *command, const char *title);
88extern void		cgiPrintTestPage(http_t *http, const char *dest);
89extern char		*cgiRewriteURL(const char *uri, char *url, int urlsize,
90			               const char *newresource);
91extern void		cgiSetArray(const char *name, int element,
92			            const char *value);
93extern void		cgiSetCookie(const char *name, const char *value,
94			             const char *path, const char *domain,
95				     time_t expires, int secure);
96extern ipp_attribute_t	*cgiSetIPPObjectVars(ipp_attribute_t *obj,
97			                     const char *prefix, int element);
98extern int		cgiSetIPPVars(ipp_t *response, const char *filter_name,
99			              const char *filter_value,
100			              const char *prefix, int parent_el);
101extern void		cgiSetServerVersion(void);
102extern void		cgiSetSize(const char *name, int size);
103extern void		cgiSetVariable(const char *name, const char *value);
104extern void		cgiShowIPPError(const char *message);
105extern void		cgiShowJobs(http_t *http, const char *dest);
106extern void		cgiStartHTML(const char *title);
107extern void		cgiStartMultipart(void);
108extern int		cgiSupportsMultipart(void);
109extern const char	*cgiText(const char *message);
110
111#  ifdef __cplusplus
112}
113#  endif /* __cplusplus */
114
115#endif /* !_CUPS_CGI_H_ */
116
117/*
118 * End of "$Id: cgi.h 11093 2013-07-03 20:48:42Z msweet $".
119 */
120