Annotation of libaitwww/inc/aitwww.h, revision 1.1
1.1 ! misho 1: /*************************************************************************
! 2: * (C) 2012 AITNET ltd - Sofia/Bulgaria - <misho@aitnet.org>
! 3: * by Michael Pounov <misho@elwix.org>
! 4: *
! 5: * $Author: misho $
! 6: * $Id: array.c,v 1.7 2012/02/02 21:32:42 misho Exp $
! 7: *
! 8: **************************************************************************
! 9: The ELWIX and AITNET software is distributed under the following
! 10: terms:
! 11:
! 12: All of the documentation and software included in the ELWIX and AITNET
! 13: Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
! 14:
! 15: Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
! 16: by Michael Pounov <misho@elwix.org>. All rights reserved.
! 17:
! 18: Redistribution and use in source and binary forms, with or without
! 19: modification, are permitted provided that the following conditions
! 20: are met:
! 21: 1. Redistributions of source code must retain the above copyright
! 22: notice, this list of conditions and the following disclaimer.
! 23: 2. Redistributions in binary form must reproduce the above copyright
! 24: notice, this list of conditions and the following disclaimer in the
! 25: documentation and/or other materials provided with the distribution.
! 26: 3. All advertising materials mentioning features or use of this software
! 27: must display the following acknowledgement:
! 28: This product includes software developed by Michael Pounov <misho@elwix.org>
! 29: ELWIX - Embedded LightWeight unIX and its contributors.
! 30: 4. Neither the name of AITNET nor the names of its contributors
! 31: may be used to endorse or promote products derived from this software
! 32: without specific prior written permission.
! 33:
! 34: THIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND
! 35: ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 36: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 37: ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
! 38: FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 39: DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 40: OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 41: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 42: LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 43: OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 44: SUCH DAMAGE.
! 45: */
! 46: #ifndef __AITWWW_H
! 47: #define __AITWWW_H
! 48:
! 49:
! 50: struct tagCGI {
! 51: char *cgi_name;
! 52: char *cgi_value;
! 53:
! 54: SLIST_ENTRY(tagCGI) cgi_node;
! 55: };
! 56: typedef SLIST_HEAD(, tagCGI) cgi_t;
! 57:
! 58: struct tagMIME;
! 59: typedef SLIST_HEAD(, tagMIME) mime_t;
! 60:
! 61: struct tagMIME {
! 62: cgi_t mime_header;
! 63:
! 64: struct iovec mime_body;
! 65: struct iovec mime_prolog;
! 66: struct iovec mime_epilog;
! 67:
! 68: mime_t *mime_attach;
! 69:
! 70: SLIST_ENTRY(tagMIME) mime_node;
! 71: };
! 72:
! 73:
! 74: /*
! 75: * www_initCGI() - Init CGI program
! 76: *
! 77: * return: NULL error or allocated cgi session
! 78: */
! 79: cgi_t *www_initCGI(void);
! 80: /*
! 81: * www_closeCGI() - Close and free all CGI resources
! 82: *
! 83: * @cgi = Inited cgi session
! 84: * return: none
! 85: */
! 86: void www_closeCGI(cgi_t ** __restrict cgi);
! 87: /*
! 88: * www_parseQuery() - Parse CGI query string
! 89: *
! 90: * @str = String
! 91: * return: NULL error or allocated cgi session
! 92: */
! 93: cgi_t *www_parseQuery(const char *str);
! 94: /*
! 95: * www_parseMultiPart() - Parse Multi part POST CGI query string
! 96: *
! 97: * @str = String
! 98: * @ctlen = Content length
! 99: * @ct = Content type
! 100: * return: NULL error or allocated cgi session
! 101: */
! 102: cgi_t *www_parseMultiPart(const char *str, int ctlen, const char *ct);
! 103: /*
! 104: * www_getValue() - Get Value from CGI session
! 105: *
! 106: * @cgi = Inited cgi session
! 107: * @name = Name of cgi variable
! 108: * return: NULL not found or !=NULL value
! 109: */
! 110: inline const char *www_getValue(cgi_t * __restrict cgi, const char *name);
! 111: /*
! 112: * www_addValue() - Add new or update if exists CGI variable
! 113: *
! 114: * @cgi = Inited cgi session
! 115: * @name = Name of cgi variable
! 116: * @value = Value of cgi variable
! 117: * return: -1 error, 0 add new one or 1 updated variable
! 118: */
! 119: int www_addValue(cgi_t * __restrict cgi, const char *name, const char *value);
! 120: /*
! 121: * www_delPair() - Delete CGI variable from session
! 122: *
! 123: * @cgi = Inited cgi session
! 124: * @name = Name of cgi variable
! 125: * return: -1 error, 0 not found or 1 deleted ok
! 126: */
! 127: int www_delPair(cgi_t * __restrict cgi, const char *name);
! 128:
! 129: /*
! 130: * www_header() - Output initial html header
! 131: *
! 132: * @output = file handle
! 133: * return: <1 error or >0 writed bytes
! 134: */
! 135: inline int www_header(FILE *output);
! 136:
! 137: /*
! 138: * www_parseAttributes() - Parse attributes
! 139: *
! 140: * @ct = Content type
! 141: * return: NULL error or !=NULL attributes
! 142: */
! 143: inline cgi_t *www_parseAttributes(const char **ct);
! 144: /*
! 145: * www_freeAttributes() - Free attributes
! 146: *
! 147: * @attr = Attributes
! 148: * return: none
! 149: */
! 150: inline void www_freeAttributes(cgi_t ** __restrict attr);
! 151: /*
! 152: * www_getAttribute() - Get attribute by name
! 153: *
! 154: * @attr = Attributes
! 155: * @name = Name of attribute
! 156: * return: NULL not found or !=NULL attribute value
! 157: */
! 158: inline const char *www_getAttribute(cgi_t * __restrict attr, const char *name);
! 159:
! 160:
! 161: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>