version 1.1.1.1, 2012/03/08 23:40:21
|
version 1.5.4.1, 2013/01/17 14:07:19
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 47 SUCH DAMAGE.
|
Line 47 SUCH DAMAGE.
|
#define __AITWWW_H |
#define __AITWWW_H |
|
|
|
|
|
#include <sys/types.h> |
|
#include <sys/queue.h> |
|
#include <sys/uio.h> |
|
#include <elwix.h> |
|
|
|
|
|
/* URL staff ... */ |
|
|
|
typedef struct _tagURLItem { |
|
int vallen; |
|
char *value; |
|
} url_Item_t; |
|
|
|
struct tagIOURL { |
|
ait_val_t url_line; |
|
|
|
ait_val_t url_tech; |
|
ait_val_t url_user; |
|
ait_val_t url_pass; |
|
ait_val_t url_host; |
|
ait_val_t url_port; |
|
ait_val_t url_path; |
|
ait_val_t url_args; |
|
|
|
unsigned char *url_reserved; |
|
}; |
|
|
|
struct tagReqXML { |
|
unsigned char xml_line[BUFSIZ]; |
|
|
|
url_Item_t xml_namespace; |
|
union { |
|
url_Item_t container; |
|
url_Item_t path; |
|
} xml_node; |
|
url_Item_t xml_data; |
|
url_Item_t xml_attribute; |
|
url_Item_t xml_value; |
|
}; |
|
|
|
/* CGI variables */ |
|
|
struct tagCGI { |
struct tagCGI { |
char *cgi_name; | ait_val_t *cgi_name; |
char *cgi_value; | ait_val_t *cgi_value; |
|
|
SLIST_ENTRY(tagCGI) cgi_node; |
SLIST_ENTRY(tagCGI) cgi_node; |
}; |
}; |
Line 70 struct tagMIME {
|
Line 112 struct tagMIME {
|
SLIST_ENTRY(tagMIME) mime_node; |
SLIST_ENTRY(tagMIME) mime_node; |
}; |
}; |
|
|
|
typedef int (*list_cb_t)(struct tagCGI *, void *); |
|
|
|
|
|
// www_GetErrno() Get error code of last operation |
|
inline int www_GetErrno(); |
|
// www_GetError() Get error text of last operation |
|
inline const char *www_GetError(); |
|
|
|
|
/* |
/* |
* www_initCGI() - Init CGI program |
* www_initCGI() - Init CGI program |
* |
* |
Line 84 cgi_t *www_initCGI(void);
|
Line 134 cgi_t *www_initCGI(void);
|
* return: none |
* return: none |
*/ |
*/ |
void www_closeCGI(cgi_t ** __restrict cgi); |
void www_closeCGI(cgi_t ** __restrict cgi); |
|
#define www_freeAttributes www_closeCGI |
/* |
/* |
* www_parseQuery() - Parse CGI query string |
* www_parseQuery() - Parse CGI query string |
* |
* |
Line 125 int www_addValue(cgi_t * __restrict cgi, const char *n
|
Line 176 int www_addValue(cgi_t * __restrict cgi, const char *n
|
* return: -1 error, 0 not found or 1 deleted ok |
* return: -1 error, 0 not found or 1 deleted ok |
*/ |
*/ |
int www_delPair(cgi_t * __restrict cgi, const char *name); |
int www_delPair(cgi_t * __restrict cgi, const char *name); |
|
/* |
|
* www_listPairs() - Walk over CGI session variables |
|
* |
|
* @cgi = Cgi session |
|
* @func = If !=NULL call function for each element |
|
* @arg = Optional argument pass through callback |
|
* return: -1 error or >-1 number of elements |
|
*/ |
|
inline int www_listPairs(cgi_t * __restrict cgi, list_cb_t func, void *arg); |
|
|
/* |
/* |
* www_header() - Output initial html header |
* www_header() - Output initial html header |
Line 142 inline int www_header(FILE *output);
|
Line 202 inline int www_header(FILE *output);
|
*/ |
*/ |
inline cgi_t *www_parseAttributes(const char **ct); |
inline cgi_t *www_parseAttributes(const char **ct); |
/* |
/* |
* www_freeAttributes() - Free attributes | * www_getAttribute() - Get Attribute from attribute session |
* |
* |
* @attr = Attributes | * @cgi = Inited attribute session |
| * @name = Name of attribute variable |
| * return: NULL not found or !=NULL value |
| */ |
| inline ait_val_t *www_getAttribute(cgi_t * __restrict cgi, const char *name); |
| |
| |
| /* |
| * www_cmp() - Compare two string |
| * |
| * @ct = content text from www |
| * @s = string |
| * return: 0 are equal or !0 are different |
| */ |
| int www_cmp(const char *ct, const char *s); |
| /* |
| * www_cmptype() - Compare context type |
| * |
| * @ct = content text from www |
| * @type = content type |
| * return: 0 are equal or !0 are different |
| */ |
| int www_cmptype(const char *ct, const char *type); |
| /* |
| * www_getpair() - Get AV pair from WWW query string |
| * |
| * @str = query string |
| * @delim = delimiter |
| * return: NULL error or AV pair, must be e_free() after use! |
| */ |
| ait_val_t *www_getpair(char ** __restrict str, const char *delim); |
| /* |
| * www_x2c() - Hex from string to digit |
| * |
| * @str = string |
| * return: digit |
| */ |
| inline char www_x2c(const char *str); |
| /* |
| * www_unescape() - Unescape/decode WWW query string to host string |
| * |
| * @str = string |
* return: none |
* return: none |
*/ |
*/ |
inline void www_freeAttributes(cgi_t ** __restrict attr); | inline void www_unescape(char * __restrict str); |
/* |
/* |
* www_getAttribute() - Get attribute by name | * www_undot() - Undotted and clean WWW query filename |
* |
* |
* @attr = Attributes | * @pname = query filename |
* @name = Name of attribute | * return: =NULL error or !=NULL allocated valid filename, after use you must call ait_freeVar() |
* return: NULL not found or !=NULL attribute value | |
*/ |
*/ |
inline const char *www_getAttribute(cgi_t * __restrict attr, const char *name); | ait_val_t *www_undot(const char * __restrict pname); |
| |
| |
| /* |
| * www_URLInit() - Init URL structure and free old one |
| * |
| * @url = Input URL |
| * return: -1 error or 0 ok |
| */ |
| inline int www_URLInit(struct tagIOURL * __restrict url); |
| /* |
| * www_URLFree() - URL free structure |
| * |
| * @url = Input parsed URL |
| * return: none |
| */ |
| inline void www_URLFree(struct tagIOURL * __restrict url); |
| /* |
| * www_URLGet() - Parse and get data from input URL |
| * |
| * @csURL = Input URL line |
| * @url = Output parsed URL |
| * return: 0 error format not find tech:// and return URL like path; |
| * -1 error:: can`t read; >0 ok, up bits for known elements |
| */ |
| int www_URLGet(const char *csURL, struct tagIOURL * __restrict url); |
| /* |
| * www_URLGetFile() - Get file from parsed URL |
| * |
| * @url = Input parsed URL |
| * @value = Return filename, if not specified file in url path, replace with / |
| * return: -1 error, 0 filename from path, 1 filename or 2 not specified filename |
| */ |
| int www_URLGetFile(struct tagIOURL * __restrict url, ait_val_t * __restrict value); |
| |
| /* |
| * www_XMLGet() - Parse and get data from input XML request string |
| * [ns:]container[|attribute[=value]][?data] |
| * |
| * @csXML = Input XML request line |
| * @xml = Output parsed XML request |
| * return: 0 error format incorrect, -1 error:: can`t read; >0 ok readed elements bits |
| */ |
| int www_XMLGet(const char *csXML, struct tagReqXML *xml); |
| |
| /* |
| * www_b64encode() - Base64 encode function |
| * |
| * @src = source data |
| * return: NULL error or !=NULL encoded variable, after use call ait_freeVar() |
| */ |
| ait_val_t *www_b64encode(ait_val_t * __restrict src); |
| /* |
| * www_b64decode() - Base64 decode function |
| * |
| * @src = source encoded data |
| * return: NULL error or !=NULL decoded variable, after use call ait_freeVar() |
| */ |
| ait_val_t *www_b64decode(ait_val_t * __restrict src); |
|
|
|
|
#endif |
#endif |