• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * CGI support library definitions for CUPS.
3  *
4  * Copyright © 2007-2019 by Apple Inc.
5  * Copyright © 1997-2006 by Easy Software Products.
6  *
7  * Licensed under Apache License v2.0.  See the file "LICENSE" for more
8  * information.
9  */
10 
11 #ifndef _CUPS_CGI_H_
12 #  define _CUPS_CGI_H_
13 
14 #  include <stdio.h>
15 #  include <stdlib.h>
16 #  include <time.h>
17 #  include <sys/stat.h>
18 
19 #  ifdef _WIN32
20 #    include <direct.h>
21 #    include <io.h>
22 #  else
23 #    include <unistd.h>
24 #  endif /* _WIN32 */
25 
26 #  include <cups/cups.h>
27 #  include <cups/array.h>
28 #  include "help-index.h"
29 
30 
31 /*
32  * C++ magic...
33  */
34 
35 #  ifdef __cplusplus
36 extern "C" {
37 #  endif /* __cplusplus */
38 
39 /*
40  * Types...
41  */
42 
43 typedef struct cgi_file_s		/**** Uploaded file data ****/
44 {
45   char		tempfile[1024],		/* Temporary file containing data */
46 		*name,			/* Variable name */
47 		*filename,		/* Original filename */
48 		*mimetype;		/* MIME media type */
49   size_t	filesize;		/* Size of uploaded file */
50 } cgi_file_t;
51 
52 
53 /*
54  * Prototypes...
55  */
56 
57 extern void		cgiAbort(const char *title, const char *stylesheet,
58 			         const char *format, ...);
59 extern int		cgiCheckVariables(const char *names);
60 extern void		cgiClearVariables(void);
61 extern void		*cgiCompileSearch(const char *query);
62 extern void		cgiCopyTemplateFile(FILE *out, const char *tmpl);
63 extern void		cgiCopyTemplateLang(const char *tmpl);
64 extern int		cgiDoSearch(void *search, const char *text);
65 extern void		cgiEndHTML(void);
66 extern void		cgiEndMultipart(void);
67 extern char		*cgiFormEncode(char *dst, const char *src,
68 			               size_t dstsize);
69 extern void		cgiFreeSearch(void *search);
70 extern char		*cgiGetArray(const char *name, int element);
71 extern void		cgiGetAttributes(ipp_t *request, const char *tmpl);
72 extern const char	*cgiGetCookie(const char *name);
73 extern const cgi_file_t	*cgiGetFile(void);
74 extern cups_array_t	*cgiGetIPPObjects(ipp_t *response, void *search);
75 extern int		cgiGetSize(const char *name);
76 extern char		*cgiGetTemplateDir(void);
77 extern char		*cgiGetVariable(const char *name);
78 extern int		cgiInitialize(void);
79 extern int		cgiIsPOST(void);
80 extern void		cgiMoveJobs(http_t *http, const char *dest, int job_id);
81 extern void		cgiPrintCommand(http_t *http, const char *dest,
82 			                const char *command, const char *title);
83 extern void		cgiPrintTestPage(http_t *http, const char *dest);
84 extern char		*cgiRewriteURL(const char *uri, char *url, int urlsize,
85 			               const char *newresource);
86 extern void		cgiSetArray(const char *name, int element,
87 			            const char *value);
88 extern void		cgiSetCookie(const char *name, const char *value,
89 			             const char *path, const char *domain,
90 				     time_t expires, int secure);
91 extern ipp_attribute_t	*cgiSetIPPObjectVars(ipp_attribute_t *obj,
92 			                     const char *prefix, int element);
93 extern int		cgiSetIPPVars(ipp_t *response, const char *filter_name,
94 			              const char *filter_value,
95 			              const char *prefix, int parent_el);
96 extern void		cgiSetServerVersion(void);
97 extern void		cgiSetSize(const char *name, int size);
98 extern void		cgiSetVariable(const char *name, const char *value);
99 extern void		cgiShowIPPError(const char *message);
100 extern void		cgiShowJobs(http_t *http, const char *dest);
101 extern void		cgiStartHTML(const char *title);
102 extern void		cgiStartMultipart(void);
103 extern int		cgiSupportsMultipart(void);
104 extern const char	*cgiText(const char *message);
105 
106 #  ifdef __cplusplus
107 }
108 #  endif /* __cplusplus */
109 
110 #endif /* !_CUPS_CGI_H_ */
111