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 116 117 118 119
|
/**
** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp.
** VeriFone Inc./Hewlett-Packard. All Rights Reserved.
** Kevin Hughes, kev@kevcom.com 3/11/94
** Kent Landfield, kent@landfield.com 4/6/97
**
** This program and library is free software; you can redistribute it and/or
** modify it under the terms of the GNU (Library) General Public License
** as published by the Free Software Foundation; either version 2
** of the License, or 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 (Library) General Public License for more details.
**
** You should have received a copy of the GNU (Library) General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
**/
/**
** This file is part of the LIBCGI library
**
*/
#ifndef CGI_H
#define CGI_H
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include "../config.h"
#ifdef NO_MACRO
#undef isspace
#undef isdigit
#undef isalpha
#undef isupper
#undef islower
#undef isxdigit
#undef isalnum
#undef ispunct
#undef isprint
#undef isgraph
#undef iscntrl
#undef isascii
#endif
#define MCODE_GET 1
#define MCODE_POST 2
#define MCODE_PUT 3
#define MCODE_HEAD 4
typedef struct {
char *server_software;
char *server_name;
char *gateway_interface;
char *server_protocol;
char *server_port;
char *request_method;
char *http_accept;
char *path_info;
char *path_translated;
char *script_name;
char *query_string;
char *remote_host;
char *remote_addr;
char *remote_user;
char *auth_type;
char *remote_ident;
char *content_type;
int content_length;
} cgi_info;
typedef struct festruct {
char *name;
char *val;
struct festruct *next;
} form_entry;
/* Prototypes */
/* ---------- */
int get_cgi_info(cgi_info *);
int syn_base_url(char *, cgi_info *);
int syn_mimeheader(char *, char *);
int mcode(cgi_info *);
char *trim(char *);
char *strmaxcpy(char *, char *, int);
char *sanitize(char *, char *);
char *parmval(form_entry *, char *);
int print_base_url(cgi_info *);
int print_mimeheader(const char *);
void print_doc_begin(char *);
void print_doc_end(char *);
void print_logo(void);
void print_sel_list(char *, char **, char *);
void print_submit(char *);
void print_input_blank(char *, unsigned int, unsigned int, char *);
form_entry *get_form_entries(cgi_info *);
void free_form_entries(form_entry *);
form_entry *get_fes_from_string(char *);
form_entry *get_fes_from_stream(int, FILE *);
unsigned char dd2c(char, char);
void dump_cgi_info(cgi_info *);
#ifdef lint
int isspace(int);
int isalnum(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, int);
#endif
#endif
|