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