chttp.h File Reference

#include <cybergarage/typedef.h>
#include <cybergarage/util/cstring.h>
#include <cybergarage/util/clist.h>
#include <cybergarage/util/cthread.h>
#include <cybergarage/util/ctime.h>
#include <cybergarage/net/csocket.h>
#include <cybergarage/net/curl.h>

Data Structures

struct  _CgHttpHeader
struct  _CgHttpPacket
struct  _CgHttpResponse
struct  _CgHttpRequest
struct  _CgHttpServer

Defines

#define CG_HTTP_READLINE_BUFSIZE   512
#define CG_HTTP_SEVERNAME_MAXLEN   64
#define CG_HTTP_DATE_MAXLEN   128
#define CG_HTTP_REQUESTLINE_DELIM   "\r\n "
#define CG_HTTP_STATUSLINE_DELIM   "\r\n "
#define CG_HTTP_HEADERLINE_DELIM   "\r\n :"
#define CG_HTTP_CR   "\r"
#define CG_HTTP_LF   "\n"
#define CG_HTTP_CRLF   "\r\n"
#define CG_HTTP_SP   " "
#define CG_HTTP_COLON   ":"
#define CG_HTTP_VER10   "HTTP/1.0"
#define CG_HTTP_VER11   "HTTP/1.1"
#define CG_HTTP_DEFAULT_PORT   80
#define CG_HTTP_STATUS_CONTINUE   100
#define CG_HTTP_STATUS_OK   200
#define CG_HTTP_STATUS_PARTIAL_CONTENT   206
#define CG_HTTP_STATUS_BAD_REQUEST   400
#define CG_HTTP_STATUS_NOT_FOUND   404
#define CG_HTTP_STATUS_METHOD_NOT_ALLOWED   405
#define CG_HTTP_STATUS_PRECONDITION_FAILED   412
#define CG_HTTP_STATUS_INVALID_RANGE   416
#define CG_HTTP_STATUS_INTERNAL_SERVER_ERROR   500
#define CG_HTTP_POST   "POST"
#define CG_HTTP_GET   "GET"
#define CG_HTTP_HEAD   "HEAD"
#define CG_HTTP_HOST   "HOST"
#define CG_HTTP_DATE   "Date"
#define CG_HTTP_CACHE_CONTROL   "Cache-Control"
#define CG_HTTP_NO_CACHE   "no-cache"
#define CG_HTTP_MAX_AGE   "max-age"
#define CG_HTTP_CONNECTION   "Connection"
#define CG_HTTP_CLOSE   "close"
#define CG_HTTP_KEEP_ALIVE   "Keep-Alive"
#define CG_HTTP_CONTENT_TYPE   "Content-Type"
#define CG_HTTP_CONTENT_LENGTH   "Content-Length"
#define CG_HTTP_CONTENT_RANGE   "Content-Range"
#define CG_HTTP_CONTENT_RANGE_BYTES   "bytes"
#define CG_HTTP_LOCATION   "Location"
#define CG_HTTP_SERVER   "Server"
#define CG_HTTP_RANGE   "Range"
#define CG_HTTP_TRANSFER_ENCODING   "Transfer-Encoding"
#define CG_HTTP_CHUNKED   "Chunked"
#define CG_HTTP_SOAP_ACTION   "SOAPACTION"
#define CG_HTTP_SOAP_ACTION_WITH_NS   "01-SOAPACTION"
#define CG_HTTP_SOAP_MAN_VALUE   "\"http://schemas.xmlsoap.org/soap/envelope/\"; ns=01"
#define CG_HTTP_MPOST   "M-POST"
#define CG_HTTP_MSEARCH   "M-SEARCH"
#define CG_HTTP_NOTIFY   "NOTIFY"
#define CG_HTTP_SUBSCRIBE   "SUBSCRIBE"
#define CG_HTTP_UNSUBSCRIBE   "UNSUBSCRIBE"
#define CG_HTTP_ST   "ST"
#define CG_HTTP_MX   "MX"
#define CG_HTTP_MAN   "MAN"
#define CG_HTTP_NT   "NT"
#define CG_HTTP_NTS   "NTS"
#define CG_HTTP_USN   "USN"
#define CG_HTTP_EXT   "EXT"
#define CG_HTTP_SID   "SID"
#define CG_HTTP_SEQ   "SEQ"
#define CG_HTTP_CALLBACK   "CALLBACK"
#define CG_HTTP_TIMEOUT   "TIMEOUT"
#define CG_HTTP_CURL_CONNECTTIMEOUT   2
#define CG_HTTP_CONN_TIMEOUT   30
#define CG_HTTP_SERVER_READ_TIMEOUT   120
#define CG_HTTP_REASON_100   "Continue"
#define CG_HTTP_REASON_101   "Switching Protocols"
#define CG_HTTP_REASON_200   "OK"
#define CG_HTTP_REASON_201   "Created"
#define CG_HTTP_REASON_202   "Accepted"
#define CG_HTTP_REASON_203   "Non-Authoritative Information"
#define CG_HTTP_REASON_204   "No Content"
#define CG_HTTP_REASON_205   "Reset Content"
#define CG_HTTP_REASON_206   "Partial Content"
#define CG_HTTP_REASON_300   "Multiple Choices"
#define CG_HTTP_REASON_301   "Moved Permanently"
#define CG_HTTP_REASON_302   "Found"
#define CG_HTTP_REASON_303   "See Other"
#define CG_HTTP_REASON_304   "Not Modified"
#define CG_HTTP_REASON_305   "Use Proxy"
#define CG_HTTP_REASON_307   "Temporary Redirect"
#define CG_HTTP_REASON_400   "Bad Request"
#define CG_HTTP_REASON_401   "Unauthorized"
#define CG_HTTP_REASON_402   "Payment Required"
#define CG_HTTP_REASON_403   "Forbidden"
#define CG_HTTP_REASON_404   "Not Found"
#define CG_HTTP_REASON_405   "Method Not Allowed"
#define CG_HTTP_REASON_406   "Not Acceptable"
#define CG_HTTP_REASON_407   "Proxy Authentication Required"
#define CG_HTTP_REASON_408   "Request Time-out"
#define CG_HTTP_REASON_409   "Conflict"
#define CG_HTTP_REASON_410   "Gone"
#define CG_HTTP_REASON_411   "Length Required"
#define CG_HTTP_REASON_412   "Precondition Failed"
#define CG_HTTP_REASON_413   "Request Entity Too Large"
#define CG_HTTP_REASON_414   "Request-URI Too Large"
#define CG_HTTP_REASON_415   "Unsupported Media Type"
#define CG_HTTP_REASON_416   "Requested range not satisfiable"
#define CG_HTTP_REASON_417   "Expectation Failed"
#define CG_HTTP_REASON_500   "Internal Server Error"
#define CG_HTTP_REASON_501   "Not Implemented"
#define CG_HTTP_REASON_502   "Bad Gateway"
#define CG_HTTP_REASON_503   "Service Unavailable"
#define CG_HTTP_REASON_504   "Gateway Time-out"
#define CG_HTTP_REASON_505   "HTTP Version not supported"
#define cg_http_header_next(header)   (CgHttpHeader *)cg_list_next((CgList *)header)
#define cg_http_headerlist_clear(headerList)   cg_list_clear((CgList *)headerList, (CG_LIST_DESTRUCTORFUNC)cg_http_header_delete)
#define cg_http_headerlist_size(headerList)   cg_list_size((CgList *)headerList)
#define cg_http_headerlist_gets(headerList)   (CgHttpHeader *)cg_list_next((CgList *)headerList)
#define cg_http_headerlist_add(headerList, header)   cg_list_add((CgList *)headerList, (CgList *)header)
#define cg_http_packet_deleteallheaders(httpPkt)   cg_http_headerlist_gets((httpPkt)->headerList)
#define cg_http_packet_getnheaders(httpPkt)   cg_http_headerlist_size((httpPkt)->headerList)
#define cg_http_packet_getheaders(httpPkt)   cg_http_headerlist_gets((httpPkt)->headerList)
#define cg_http_packet_getheader(httpPkt, name)   cg_http_headerlist_get((httpPkt)->headerList, (name))
#define cg_http_packet_hasheader(httpPkt, name)   ((cg_http_headerlist_get((httpPkt)->headerList, (name)) != NULL) ? TRUE : FALSE)
#define cg_http_packet_addheader(httpPkt, header)   cg_http_headerlist_add((httpPkt)->headerList, (header))
#define cg_http_packet_setcontent(httpPkt, value)   cg_string_setvalue(httpPkt->content, value)
#define cg_http_packet_setncontent(httpPkt, value, len)   cg_string_setnvalue(httpPkt->content, value, len)
#define cg_http_packet_appendncontent(httpPkt, value, len)   cg_string_naddvalue(httpPkt->content, value, len)
#define cg_http_packet_setcontentpointer(httpPkt, value)   cg_string_setpointervalue(httpPkt->content, value)
#define cg_http_packet_getcontent(httpPkt)   cg_string_getvalue(httpPkt->content)
#define cg_http_packet_setcontentlength(httpPkt, value)   cg_http_packet_setheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH,value)
#define cg_http_packet_getcontentlength(httpPkt)   cg_http_packet_getheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH)
#define cg_http_packet_setconnection(httpPkt, value)   cg_http_packet_setheadervalue(httpPkt,CG_HTTP_CONNECTION, value)
#define cg_http_packet_getconnection(httpPkt)   cg_http_packet_getheadervalue(httpPkt,CG_HTTP_CONNECTION)
#define cg_http_packet_iskeepaliveconnection(httpPkt)   (cg_strcaseeq(cg_http_packet_getconnection(httpPkt), CG_HTTP_CLOSE) == FALSE)
#define cg_http_packet_settransferencoding(httpPkt, value)   cg_http_packet_setheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING, value)
#define cg_http_packet_gettransferencoding(httpPkt)   cg_http_packet_getheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING)
#define cg_http_packet_ischunked(httpPkt)   cg_strcaseeq(cg_http_packet_gettransferencoding(httpPkt), CG_HTTP_CHUNKED)
#define cg_http_packet_gethost(httpPkt)   cg_http_packet_getheaderlong(httpPkt,CG_HTTP_HOST)
#define cg_http_request_postokequest(httpReq)   cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_OK)
#define cg_http_request_postbadrequest(httpReq)   cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_BAD_REQUEST)
#define cg_http_request_ismethod(httpReq, value)   cg_streq(cg_http_request_getmethod(httpReq), value)
#define cg_http_request_isgetrequest(httpReq)   cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_GET)
#define cg_http_request_ispostrequest(httpReq)
#define cg_http_request_isheadrequest(httpReq)   cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_HEAD)
#define cg_http_request_issubscriberequest(httpReq)   cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_SUBSCRIBE)
#define cg_http_request_isunsubscriberequest(httpReq)   cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_UNSUBSCRIBE)
#define cg_http_request_isnotifyrequest(httpReq)   cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_NOTIFY)
#define cg_http_request_issoapaction(httpReq)
#define cg_http_request_setcontent(httpReq, value)   cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value)
#define cg_http_request_setncontent(httpReq, value, len)   cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value,len)
#define cg_http_request_appendncontent(httpPkt, value, len)   cg_http_packet_appendncontent(httpPkt, value, len)
#define cg_http_request_setcontentpointer(httpReq, value)   cg_http_packet_setcontentpointer(((CgHttpPacket*)httpReq),value)
#define cg_http_request_getcontent(httpReq)   cg_http_packet_getcontent(((CgHttpPacket*)httpReq))
#define cg_http_request_getheaders(httpReq)   cg_http_packet_getheaders((CgHttpPacket*)httpReq)
#define cg_http_request_getheader(httpReq, name)   cg_http_packet_getheader((CgHttpPacket*)httpReq,name)
#define cg_http_request_setheadervalue(httpReq, name, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,name,value)
#define cg_http_request_setheaderinteger(httpReq, name, value)   cg_http_packet_setheaderinteger((CgHttpPacket*)httpReq,name,value)
#define cg_http_request_setheaderlong(httpReq, name, value)   cg_http_packet_setheaderlong((CgHttpPacket*)httpReq,name,value)
#define cg_http_request_getheadervalue(httpReq, name)   cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,name)
#define cg_http_request_getheaderinteger(httpReq, name)   cg_http_packet_getheaderinteger((CgHttpPacket*)httpReq,name)
#define cg_http_request_getheaderlong(httpReq, name)   cg_http_packet_getheaderlong((CgHttpPacket*)httpReq,name)
#define cg_http_request_setuserdata(httpReq, value)   (httpReq->userData = value)
#define cg_http_request_getuserdata(httpReq)   (httpReq->userData)
#define cg_http_request_getlocaladdress(httpReq)   cg_socket_getaddress(httpReq->sock)
#define cg_http_request_getlocalport(httpReq)   cg_socket_getport(httpReq->sock)
#define cg_http_request_setcontentlength(httpReq, value)   cg_http_packet_setcontentlength((CgHttpPacket*)httpReq, value)
#define cg_http_request_getcontentlength(httpReq)   cg_http_packet_getcontentlength((CgHttpPacket*)httpReq)
#define cg_http_request_setcontenttype(httpReq, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE,value)
#define cg_http_request_getcontenttype(httpReq)   cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE)
#define cg_http_request_setconnection(httpReq, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION, value)
#define cg_http_request_getconnection(httpReq)   cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION)
#define cg_http_request_iskeepaliveconnection(httpReq)   cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpReq)
#define cg_http_request_settransferencoding(httpReq, value)   cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value)
#define cg_http_request_gettransferencoding(httpReq)   cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq)
#define cg_http_request_ischunked(httpReq)   cg_http_packet_ischunked((CgHttpPacket*)httpReq)
#define cg_http_request_sethost(httpReq, addr, port)   cg_http_packet_sethost((CgHttpPacket*)httpReq,addr,port)
#define cg_http_request_gethost(httpReq)   cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_HOST)
#define cg_http_request_setdate(httpReq, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE,value)
#define cg_http_request_getdate(httpReq)   cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE)
#define cg_http_request_getposturl(httpReq)   (httpReq->postURL)
#define cg_http_response_issuccessful(httpRes)   (cg_http_response_getstatuscode(httpRes) >= 200 && cg_http_response_getstatuscode(httpRes) < 300 )
#define cg_http_response_setcontent(httpRes, value)   cg_http_packet_setcontent(((CgHttpPacket*)httpRes),value)
#define cg_http_response_setncontent(httpRes, value, len)   cg_http_packet_setncontent(((CgHttpPacket*)httpRes),value, len)
#define cg_http_response_appendncontent(httpRes, value, len)   cg_http_packet_appendncontent(((CgHttpPacket*) httpRes), value, len)
#define cg_http_response_setcontentpointer(httpRes, value)   cg_http_packet_setcontentpointer(((CgHttpPacket*)httpRes),value)
#define cg_http_response_getcontent(httpRes)   cg_http_packet_getcontent(((CgHttpPacket*)httpRes))
#define cg_http_response_getheaders(p)   cg_http_packet_getheaders((CgHttpPacket*)p)
#define cg_http_response_getheader(p, n)   cg_http_packet_getheader((CgHttpPacket*)p,n)
#define cg_http_response_setheadervalue(httpRes, n, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,n,value)
#define cg_http_response_setheaderinteger(httpRes, n, value)   cg_http_packet_setheaderinteger((CgHttpPacket*)httpRes,n,value)
#define cg_http_response_setheaderlong(httpRes, n, value)   cg_http_packet_setheaderlong((CgHttpPacket*)httpRes,n,value)
#define cg_http_response_getheadervalue(httpRes, n)   cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,n)
#define cg_http_response_getheaderinteger(httpRes, n)   cg_http_packet_getheaderinteger((CgHttpPacket*)httpRes,n)
#define cg_http_response_getheaderlong(httpRes, n)   cg_http_packet_getheaderlong((CgHttpPacket*)httpRes,n)
#define cg_http_response_setuserdata(httpRes, value)   (httpRes->userData = value)
#define cg_http_response_getuserdata(httpRes)   (httpRes->userData)
#define cg_http_response_setcontentlength(httpRes, value)   cg_http_packet_setcontentlength((CgHttpPacket*)httpRes, value)
#define cg_http_response_getcontentlength(httpRes)   cg_http_packet_getcontentlength((CgHttpPacket*)httpRes)
#define cg_http_response_setcontenttype(httpRes, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE,value)
#define cg_http_response_getcontenttype(httpRes)   cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE)
#define cg_http_response_setconnection(httpRes, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONNECTION, value)
#define cg_http_response_getconnection(httpRes)   cg_http_packet_getheadervalue((CgHttpPacket*)httpRes, CG_HTTP_CONNECTION)
#define cg_http_response_iskeepaliveconnection(httpRes)   cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpRes)
#define cg_http_response_sethost(httpRes, addr, port)   cg_http_packet_sethost((CgHttpPacket*)httpRes,addr,port)
#define cg_http_response_gethost(httpRes)   cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_HOST)
#define cg_http_response_setdate(httpRes, value)   cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE,value)
#define cg_http_response_getdate(httpRes)   cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE)
#define cg_http_server_next(httpServer)   (CgHttpServer *)cg_list_next((CgList *)httpServer)
#define cg_http_server_isopened(httpServer)   ((httpServer->sock != NULL) ? TRUE : FALSE)
#define cg_http_server_setuserdata(httpServer, value)   (httpServer->userData = value)
#define cg_http_server_getuserdata(httpServer)   (httpServer->userData)
#define cg_http_serverlist_clear(httpServerList)   cg_list_clear((CgList *)httpServerList, (CG_LIST_DESTRUCTORFUNC)cg_http_server_delete)
#define cg_http_serverlist_size(httpServerList)   cg_list_size((CgList *)httpServerList)
#define cg_http_serverlist_gets(httpServerList)   (CgHttpServer *)cg_list_next((CgList *)httpServerList)
#define cg_http_serverlist_add(httpServerList, httpServer)   cg_list_add((CgList *)httpServerList, (CgList *)httpServer)

Typedefs

typedef _CgHttpHeader CgHttpHeader
typedef _CgHttpHeader CgHttpHeaderList
typedef _CgHttpPacket CgHttpPacket
typedef _CgHttpResponse CgHttpResponse
typedef _CgHttpRequest CgHttpRequest
typedef void(*) CG_HTTP_LISTENER (CgHttpRequest *)
typedef _CgHttpServer CgHttpServer
typedef _CgHttpServer CgHttpServerList

Functions

const char * cg_http_statuscode2reasonphrase (const int code)
CgHttpHeadercg_http_header_new ()
void cg_http_header_delete (CgHttpHeader *header)
void cg_http_header_setname (CgHttpHeader *header, char *name)
char * cg_http_header_getname (CgHttpHeader *header)
void cg_http_header_setvalue (CgHttpHeader *header, char *value)
char * cg_http_header_getvalue (CgHttpHeader *header)
CgHttpHeaderListcg_http_headerlist_new ()
void cg_http_headerlist_delete (CgHttpHeaderList *headerList)
CgHttpHeadercg_http_headerlist_get (CgHttpHeaderList *headerList, char *name)
void cg_http_headerlist_set (CgHttpHeaderList *headerList, char *name, char *value)
char * cg_http_headerlist_getvalue (CgHttpHeaderList *headerList, char *name)
CgHttpPacketcg_http_packet_new ()
void cg_http_packet_delete (CgHttpPacket *httpPkt)
void cg_http_packet_init (CgHttpPacket *httpPkt)
void cg_http_packet_clean (CgHttpPacket *httpPkt)
void cg_http_packet_clear (CgHttpPacket *httpPkt)
void cg_http_packet_setheadervalue (CgHttpPacket *httpPkt, char *name, char *value)
void cg_http_packet_setheaderinteger (CgHttpPacket *httpPkt, char *name, int value)
void cg_http_packet_setheaderlong (CgHttpPacket *httpPkt, char *name, long value)
char * cg_http_packet_getheadervalue (CgHttpPacket *httpPkt, char *name)
int cg_http_packet_getheaderinteger (CgHttpPacket *httpPkt, char *name)
long cg_http_packet_getheaderlong (CgHttpPacket *httpPkt, char *name)
int cg_http_packet_getheadersize (CgHttpPacket *httpPkt)
void cg_http_packet_post (CgHttpPacket *httpPkt, CgSocket *sock)
void cg_http_packet_read_headers (CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize)
BOOL cg_http_packet_read_body (CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize)
BOOL cg_http_packet_read (CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize)
void cg_http_packet_sethost (CgHttpPacket *httpPkt, char *addr, int port)
void cg_http_packet_copy (CgHttpPacket *destHttpPkt, CgHttpPacket *srcHttpPkt)
void cg_http_packet_print (CgHttpPacket *httpPkt)
CgHttpRequestcg_http_request_new ()
void cg_http_request_delete (CgHttpRequest *httpReq)
void cg_http_request_clear (CgHttpRequest *httpReq)
void cg_http_request_setmethod (CgHttpRequest *httpReq, char *method)
char * cg_http_request_getmethod (CgHttpRequest *httpReq)
void cg_http_request_setversion (CgHttpRequest *httpReq, char *version)
char * cg_http_request_getversion (CgHttpRequest *httpReqest)
void cg_http_request_seturi (CgHttpRequest *httpReq, char *uri)
char * cg_http_request_geturi (CgHttpRequest *httpReq)
void cg_http_request_setsocket (CgHttpRequest *httpReq, CgSocket *sock)
CgSocketcg_http_request_getsocket (CgHttpRequest *httpReq)
CgHttpResponsecg_http_request_post (CgHttpRequest *httpReq, char *ipaddr, int port)
BOOL cg_http_request_read (CgHttpRequest *httpReq, CgSocket *sock)
BOOL cg_http_request_postresponse (CgHttpRequest *httpReq, CgHttpResponse *httpRes)
BOOL cg_http_request_poststatuscode (CgHttpRequest *httpReq, int httpStatCode)
void cg_http_request_copy (CgHttpRequest *destHttpReq, CgHttpRequest *srcHttpReq)
void cg_http_request_print (CgHttpRequest *httpReq)
CgHttpResponsecg_http_response_new ()
void cg_http_response_delete (CgHttpResponse *httpRes)
void cg_http_response_clear (CgHttpResponse *httpRes)
void cg_http_response_setversion (CgHttpResponse *httpRes, char *version)
char * cg_http_response_getversion (CgHttpResponse *httpRes)
void cg_http_response_setreasonphrase (CgHttpResponse *httpRes, char *value)
char * cg_http_response_getreasonphrase (CgHttpResponse *httpRes)
void cg_http_response_setstatuscode (CgHttpResponse *httpRes, int code)
int cg_http_response_getstatuscode (CgHttpResponse *httpRes)
BOOL cg_http_response_read (CgHttpResponse *httpRes, CgSocket *sock)
void cg_http_response_copy (CgHttpResponse *destHttpRes, CgHttpResponse *srcHttpRes)
void cg_http_response_print (CgHttpResponse *httpRes)
CgHttpServercg_http_server_new ()
void cg_http_server_delete (CgHttpServer *httpServer)
BOOL cg_http_server_open (CgHttpServer *httpServer, int bindPort, char *bindAddr)
BOOL cg_http_server_close (CgHttpServer *httpServer)
BOOL cg_http_server_accept (CgHttpServer *httpServer)
BOOL cg_http_server_start (CgHttpServer *httpServer)
BOOL cg_http_server_stop (CgHttpServer *httpServer)
void cg_http_server_setlistener (CgHttpServer *httpServer, CG_HTTP_LISTENER listener)
char * cg_http_getservername (char *buf, int bufSize)
CgHttpServerListcg_http_serverlist_new ()
void cg_http_serverlist_delete (CgHttpServerList *httpServerList)
BOOL cg_http_serverlist_open (CgHttpServerList *httpServerList, int port)
BOOL cg_http_serverlist_close (CgHttpServerList *httpServerList)
BOOL cg_http_serverlist_start (CgHttpServerList *httpServerList)
BOOL cg_http_serverlist_stop (CgHttpServerList *httpServerList)
void cg_http_serverlist_setlistener (CgHttpServerList *httpServerList, CG_HTTP_LISTENER listener)
void cg_http_serverlist_setuserdata (CgHttpServerList *httpServerList, void *value)
char * cg_http_getdate (CgSysTime sysTime, char *buf, int bufSize)
BOOL cg_http_persistentconnection_init (void)
void cg_http_persistentconnection_clear (void)
void cg_http_persistentconnection_lock (void)
void cg_http_persistentconnection_unlock (void)
void * cg_http_persistentconnection_get (char *host, int port)
BOOL cg_http_persistentconnection_put (char *host, int port, void *data)

Define Documentation

#define CG_HTTP_CACHE_CONTROL   "Cache-Control"

#define CG_HTTP_CALLBACK   "CALLBACK"

#define CG_HTTP_CHUNKED   "Chunked"

#define CG_HTTP_CLOSE   "close"

#define CG_HTTP_COLON   ":"

#define CG_HTTP_CONN_TIMEOUT   30

#define CG_HTTP_CONNECTION   "Connection"

#define CG_HTTP_CONTENT_LENGTH   "Content-Length"

#define CG_HTTP_CONTENT_RANGE   "Content-Range"

#define CG_HTTP_CONTENT_RANGE_BYTES   "bytes"

#define CG_HTTP_CONTENT_TYPE   "Content-Type"

#define CG_HTTP_CR   "\r"

#define CG_HTTP_CRLF   "\r\n"

#define CG_HTTP_CURL_CONNECTTIMEOUT   2

#define CG_HTTP_DATE   "Date"

#define CG_HTTP_DATE_MAXLEN   128

#define CG_HTTP_DEFAULT_PORT   80

#define CG_HTTP_EXT   "EXT"

#define CG_HTTP_GET   "GET"

#define CG_HTTP_HEAD   "HEAD"

#define cg_http_header_next ( header   )     (CgHttpHeader *)cg_list_next((CgList *)header)

#define CG_HTTP_HEADERLINE_DELIM   "\r\n :"

#define cg_http_headerlist_add ( headerList,
header   )     cg_list_add((CgList *)headerList, (CgList *)header)

#define cg_http_headerlist_clear ( headerList   )     cg_list_clear((CgList *)headerList, (CG_LIST_DESTRUCTORFUNC)cg_http_header_delete)

#define cg_http_headerlist_gets ( headerList   )     (CgHttpHeader *)cg_list_next((CgList *)headerList)

#define cg_http_headerlist_size ( headerList   )     cg_list_size((CgList *)headerList)

#define CG_HTTP_HOST   "HOST"

#define CG_HTTP_KEEP_ALIVE   "Keep-Alive"

#define CG_HTTP_LF   "\n"

#define CG_HTTP_LOCATION   "Location"

#define CG_HTTP_MAN   "MAN"

#define CG_HTTP_MAX_AGE   "max-age"

#define CG_HTTP_MPOST   "M-POST"

#define CG_HTTP_MSEARCH   "M-SEARCH"

#define CG_HTTP_MX   "MX"

#define CG_HTTP_NO_CACHE   "no-cache"

#define CG_HTTP_NOTIFY   "NOTIFY"

#define CG_HTTP_NT   "NT"

#define CG_HTTP_NTS   "NTS"

#define cg_http_packet_addheader ( httpPkt,
header   )     cg_http_headerlist_add((httpPkt)->headerList, (header))

#define cg_http_packet_appendncontent ( httpPkt,
value,
len   )     cg_string_naddvalue(httpPkt->content, value, len)

#define cg_http_packet_deleteallheaders ( httpPkt   )     cg_http_headerlist_gets((httpPkt)->headerList)

#define cg_http_packet_getconnection ( httpPkt   )     cg_http_packet_getheadervalue(httpPkt,CG_HTTP_CONNECTION)

#define cg_http_packet_getcontent ( httpPkt   )     cg_string_getvalue(httpPkt->content)

#define cg_http_packet_getcontentlength ( httpPkt   )     cg_http_packet_getheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH)

#define cg_http_packet_getheader ( httpPkt,
name   )     cg_http_headerlist_get((httpPkt)->headerList, (name))

#define cg_http_packet_getheaders ( httpPkt   )     cg_http_headerlist_gets((httpPkt)->headerList)

#define cg_http_packet_gethost ( httpPkt   )     cg_http_packet_getheaderlong(httpPkt,CG_HTTP_HOST)

#define cg_http_packet_getnheaders ( httpPkt   )     cg_http_headerlist_size((httpPkt)->headerList)

#define cg_http_packet_gettransferencoding ( httpPkt   )     cg_http_packet_getheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING)

#define cg_http_packet_hasheader ( httpPkt,
name   )     ((cg_http_headerlist_get((httpPkt)->headerList, (name)) != NULL) ? TRUE : FALSE)

#define cg_http_packet_ischunked ( httpPkt   )     cg_strcaseeq(cg_http_packet_gettransferencoding(httpPkt), CG_HTTP_CHUNKED)

#define cg_http_packet_iskeepaliveconnection ( httpPkt   )     (cg_strcaseeq(cg_http_packet_getconnection(httpPkt), CG_HTTP_CLOSE) == FALSE)

#define cg_http_packet_setconnection ( httpPkt,
value   )     cg_http_packet_setheadervalue(httpPkt,CG_HTTP_CONNECTION, value)

#define cg_http_packet_setcontent ( httpPkt,
value   )     cg_string_setvalue(httpPkt->content, value)

#define cg_http_packet_setcontentlength ( httpPkt,
value   )     cg_http_packet_setheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH,value)

#define cg_http_packet_setcontentpointer ( httpPkt,
value   )     cg_string_setpointervalue(httpPkt->content, value)

#define cg_http_packet_setncontent ( httpPkt,
value,
len   )     cg_string_setnvalue(httpPkt->content, value, len)

#define cg_http_packet_settransferencoding ( httpPkt,
value   )     cg_http_packet_setheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING, value)

#define CG_HTTP_POST   "POST"

#define CG_HTTP_RANGE   "Range"

#define CG_HTTP_READLINE_BUFSIZE   512

#define CG_HTTP_REASON_100   "Continue"

#define CG_HTTP_REASON_101   "Switching Protocols"

#define CG_HTTP_REASON_200   "OK"

#define CG_HTTP_REASON_201   "Created"

#define CG_HTTP_REASON_202   "Accepted"

#define CG_HTTP_REASON_203   "Non-Authoritative Information"

#define CG_HTTP_REASON_204   "No Content"

#define CG_HTTP_REASON_205   "Reset Content"

#define CG_HTTP_REASON_206   "Partial Content"

#define CG_HTTP_REASON_300   "Multiple Choices"

#define CG_HTTP_REASON_301   "Moved Permanently"

#define CG_HTTP_REASON_302   "Found"

#define CG_HTTP_REASON_303   "See Other"

#define CG_HTTP_REASON_304   "Not Modified"

#define CG_HTTP_REASON_305   "Use Proxy"

#define CG_HTTP_REASON_307   "Temporary Redirect"

#define CG_HTTP_REASON_400   "Bad Request"

#define CG_HTTP_REASON_401   "Unauthorized"

#define CG_HTTP_REASON_402   "Payment Required"

#define CG_HTTP_REASON_403   "Forbidden"

#define CG_HTTP_REASON_404   "Not Found"

#define CG_HTTP_REASON_405   "Method Not Allowed"

#define CG_HTTP_REASON_406   "Not Acceptable"

#define CG_HTTP_REASON_407   "Proxy Authentication Required"

#define CG_HTTP_REASON_408   "Request Time-out"

#define CG_HTTP_REASON_409   "Conflict"

#define CG_HTTP_REASON_410   "Gone"

#define CG_HTTP_REASON_411   "Length Required"

#define CG_HTTP_REASON_412   "Precondition Failed"

#define CG_HTTP_REASON_413   "Request Entity Too Large"

#define CG_HTTP_REASON_414   "Request-URI Too Large"

#define CG_HTTP_REASON_415   "Unsupported Media Type"

#define CG_HTTP_REASON_416   "Requested range not satisfiable"

#define CG_HTTP_REASON_417   "Expectation Failed"

#define CG_HTTP_REASON_500   "Internal Server Error"

#define CG_HTTP_REASON_501   "Not Implemented"

#define CG_HTTP_REASON_502   "Bad Gateway"

#define CG_HTTP_REASON_503   "Service Unavailable"

#define CG_HTTP_REASON_504   "Gateway Time-out"

#define CG_HTTP_REASON_505   "HTTP Version not supported"

#define cg_http_request_appendncontent ( httpPkt,
value,
len   )     cg_http_packet_appendncontent(httpPkt, value, len)

#define cg_http_request_getconnection ( httpReq   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION)

#define cg_http_request_getcontent ( httpReq   )     cg_http_packet_getcontent(((CgHttpPacket*)httpReq))

#define cg_http_request_getcontentlength ( httpReq   )     cg_http_packet_getcontentlength((CgHttpPacket*)httpReq)

#define cg_http_request_getcontenttype ( httpReq   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE)

#define cg_http_request_getdate ( httpReq   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE)

#define cg_http_request_getheader ( httpReq,
name   )     cg_http_packet_getheader((CgHttpPacket*)httpReq,name)

#define cg_http_request_getheaderinteger ( httpReq,
name   )     cg_http_packet_getheaderinteger((CgHttpPacket*)httpReq,name)

#define cg_http_request_getheaderlong ( httpReq,
name   )     cg_http_packet_getheaderlong((CgHttpPacket*)httpReq,name)

#define cg_http_request_getheaders ( httpReq   )     cg_http_packet_getheaders((CgHttpPacket*)httpReq)

#define cg_http_request_getheadervalue ( httpReq,
name   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,name)

#define cg_http_request_gethost ( httpReq   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_HOST)

#define cg_http_request_getlocaladdress ( httpReq   )     cg_socket_getaddress(httpReq->sock)

#define cg_http_request_getlocalport ( httpReq   )     cg_socket_getport(httpReq->sock)

#define cg_http_request_getposturl ( httpReq   )     (httpReq->postURL)

#define cg_http_request_gettransferencoding ( httpReq   )     cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq)

#define cg_http_request_getuserdata ( httpReq   )     (httpReq->userData)

#define cg_http_request_ischunked ( httpReq   )     cg_http_packet_ischunked((CgHttpPacket*)httpReq)

#define cg_http_request_isgetrequest ( httpReq   )     cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_GET)

#define cg_http_request_isheadrequest ( httpReq   )     cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_HEAD)

#define cg_http_request_iskeepaliveconnection ( httpReq   )     cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpReq)

#define cg_http_request_ismethod ( httpReq,
value   )     cg_streq(cg_http_request_getmethod(httpReq), value)

#define cg_http_request_isnotifyrequest ( httpReq   )     cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_NOTIFY)

#define cg_http_request_ispostrequest ( httpReq   ) 

Value:

#define cg_http_request_issoapaction ( httpReq   ) 

Value:

#define cg_http_request_issubscriberequest ( httpReq   )     cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_SUBSCRIBE)

#define cg_http_request_isunsubscriberequest ( httpReq   )     cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_UNSUBSCRIBE)

#define cg_http_request_postbadrequest ( httpReq   )     cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_BAD_REQUEST)

#define cg_http_request_postokequest ( httpReq   )     cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_OK)

#define cg_http_request_setconnection ( httpReq,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION, value)

#define cg_http_request_setcontent ( httpReq,
value   )     cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value)

#define cg_http_request_setcontentlength ( httpReq,
value   )     cg_http_packet_setcontentlength((CgHttpPacket*)httpReq, value)

#define cg_http_request_setcontentpointer ( httpReq,
value   )     cg_http_packet_setcontentpointer(((CgHttpPacket*)httpReq),value)

#define cg_http_request_setcontenttype ( httpReq,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE,value)

#define cg_http_request_setdate ( httpReq,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE,value)

#define cg_http_request_setheaderinteger ( httpReq,
name,
value   )     cg_http_packet_setheaderinteger((CgHttpPacket*)httpReq,name,value)

#define cg_http_request_setheaderlong ( httpReq,
name,
value   )     cg_http_packet_setheaderlong((CgHttpPacket*)httpReq,name,value)

#define cg_http_request_setheadervalue ( httpReq,
name,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,name,value)

#define cg_http_request_sethost ( httpReq,
addr,
port   )     cg_http_packet_sethost((CgHttpPacket*)httpReq,addr,port)

#define cg_http_request_setncontent ( httpReq,
value,
len   )     cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value,len)

#define cg_http_request_settransferencoding ( httpReq,
value   )     cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value)

#define cg_http_request_setuserdata ( httpReq,
value   )     (httpReq->userData = value)

#define CG_HTTP_REQUESTLINE_DELIM   "\r\n "

#define cg_http_response_appendncontent ( httpRes,
value,
len   )     cg_http_packet_appendncontent(((CgHttpPacket*) httpRes), value, len)

#define cg_http_response_getconnection ( httpRes   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpRes, CG_HTTP_CONNECTION)

#define cg_http_response_getcontent ( httpRes   )     cg_http_packet_getcontent(((CgHttpPacket*)httpRes))

#define cg_http_response_getcontentlength ( httpRes   )     cg_http_packet_getcontentlength((CgHttpPacket*)httpRes)

#define cg_http_response_getcontenttype ( httpRes   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE)

#define cg_http_response_getdate ( httpRes   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE)

#define cg_http_response_getheader ( p,
 )     cg_http_packet_getheader((CgHttpPacket*)p,n)

#define cg_http_response_getheaderinteger ( httpRes,
 )     cg_http_packet_getheaderinteger((CgHttpPacket*)httpRes,n)

#define cg_http_response_getheaderlong ( httpRes,
 )     cg_http_packet_getheaderlong((CgHttpPacket*)httpRes,n)

#define cg_http_response_getheaders (  )     cg_http_packet_getheaders((CgHttpPacket*)p)

#define cg_http_response_getheadervalue ( httpRes,
 )     cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,n)

#define cg_http_response_gethost ( httpRes   )     cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_HOST)

#define cg_http_response_getuserdata ( httpRes   )     (httpRes->userData)

#define cg_http_response_iskeepaliveconnection ( httpRes   )     cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpRes)

#define cg_http_response_issuccessful ( httpRes   )     (cg_http_response_getstatuscode(httpRes) >= 200 && cg_http_response_getstatuscode(httpRes) < 300 )

#define cg_http_response_setconnection ( httpRes,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONNECTION, value)

#define cg_http_response_setcontent ( httpRes,
value   )     cg_http_packet_setcontent(((CgHttpPacket*)httpRes),value)

#define cg_http_response_setcontentlength ( httpRes,
value   )     cg_http_packet_setcontentlength((CgHttpPacket*)httpRes, value)

#define cg_http_response_setcontentpointer ( httpRes,
value   )     cg_http_packet_setcontentpointer(((CgHttpPacket*)httpRes),value)

#define cg_http_response_setcontenttype ( httpRes,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE,value)

#define cg_http_response_setdate ( httpRes,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE,value)

#define cg_http_response_setheaderinteger ( httpRes,
n,
value   )     cg_http_packet_setheaderinteger((CgHttpPacket*)httpRes,n,value)

#define cg_http_response_setheaderlong ( httpRes,
n,
value   )     cg_http_packet_setheaderlong((CgHttpPacket*)httpRes,n,value)

#define cg_http_response_setheadervalue ( httpRes,
n,
value   )     cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,n,value)

#define cg_http_response_sethost ( httpRes,
addr,
port   )     cg_http_packet_sethost((CgHttpPacket*)httpRes,addr,port)

#define cg_http_response_setncontent ( httpRes,
value,
len   )     cg_http_packet_setncontent(((CgHttpPacket*)httpRes),value, len)

#define cg_http_response_setuserdata ( httpRes,
value   )     (httpRes->userData = value)

#define CG_HTTP_SEQ   "SEQ"

#define CG_HTTP_SERVER   "Server"

#define cg_http_server_getuserdata ( httpServer   )     (httpServer->userData)

#define cg_http_server_isopened ( httpServer   )     ((httpServer->sock != NULL) ? TRUE : FALSE)

#define cg_http_server_next ( httpServer   )     (CgHttpServer *)cg_list_next((CgList *)httpServer)

#define CG_HTTP_SERVER_READ_TIMEOUT   120

#define cg_http_server_setuserdata ( httpServer,
value   )     (httpServer->userData = value)

#define cg_http_serverlist_add ( httpServerList,
httpServer   )     cg_list_add((CgList *)httpServerList, (CgList *)httpServer)

#define cg_http_serverlist_clear ( httpServerList   )     cg_list_clear((CgList *)httpServerList, (CG_LIST_DESTRUCTORFUNC)cg_http_server_delete)

#define cg_http_serverlist_gets ( httpServerList   )     (CgHttpServer *)cg_list_next((CgList *)httpServerList)

#define cg_http_serverlist_size ( httpServerList   )     cg_list_size((CgList *)httpServerList)

#define CG_HTTP_SEVERNAME_MAXLEN   64

#define CG_HTTP_SID   "SID"

#define CG_HTTP_SOAP_ACTION   "SOAPACTION"

#define CG_HTTP_SOAP_ACTION_WITH_NS   "01-SOAPACTION"

#define CG_HTTP_SOAP_MAN_VALUE   "\"http://schemas.xmlsoap.org/soap/envelope/\"; ns=01"

#define CG_HTTP_SP   " "

#define CG_HTTP_ST   "ST"

#define CG_HTTP_STATUS_BAD_REQUEST   400

#define CG_HTTP_STATUS_CONTINUE   100

#define CG_HTTP_STATUS_INTERNAL_SERVER_ERROR   500

#define CG_HTTP_STATUS_INVALID_RANGE   416

#define CG_HTTP_STATUS_METHOD_NOT_ALLOWED   405

#define CG_HTTP_STATUS_NOT_FOUND   404

#define CG_HTTP_STATUS_OK   200

#define CG_HTTP_STATUS_PARTIAL_CONTENT   206

#define CG_HTTP_STATUS_PRECONDITION_FAILED   412

#define CG_HTTP_STATUSLINE_DELIM   "\r\n "

#define CG_HTTP_SUBSCRIBE   "SUBSCRIBE"

#define CG_HTTP_TIMEOUT   "TIMEOUT"

#define CG_HTTP_TRANSFER_ENCODING   "Transfer-Encoding"

#define CG_HTTP_UNSUBSCRIBE   "UNSUBSCRIBE"

#define CG_HTTP_USN   "USN"

#define CG_HTTP_VER10   "HTTP/1.0"

#define CG_HTTP_VER11   "HTTP/1.1"


Typedef Documentation

typedef void(*) CG_HTTP_LISTENER(CgHttpRequest *)

typedef struct _CgHttpHeader CgHttpHeader

typedef struct _CgHttpHeader CgHttpHeaderList

typedef struct _CgHttpPacket CgHttpPacket

typedef struct _CgHttpRequest CgHttpRequest

typedef struct _CgHttpResponse CgHttpResponse

typedef struct _CgHttpServer CgHttpServer

typedef struct _CgHttpServer CgHttpServerList


Function Documentation

char* cg_http_getdate ( CgSysTime  sysTime,
char *  buf,
int  bufSize 
)

char* cg_http_getservername ( char *  buf,
int  bufSize 
)

void cg_http_header_delete ( CgHttpHeader header  ) 

char* cg_http_header_getname ( CgHttpHeader header  ) 

char* cg_http_header_getvalue ( CgHttpHeader header  ) 

CgHttpHeader* cg_http_header_new (  ) 

void cg_http_header_setname ( CgHttpHeader header,
char *  name 
)

void cg_http_header_setvalue ( CgHttpHeader header,
char *  value 
)

void cg_http_headerlist_delete ( CgHttpHeaderList headerList  ) 

CgHttpHeader* cg_http_headerlist_get ( CgHttpHeaderList headerList,
char *  name 
)

char* cg_http_headerlist_getvalue ( CgHttpHeaderList headerList,
char *  name 
)

CgHttpHeaderList* cg_http_headerlist_new (  ) 

void cg_http_headerlist_set ( CgHttpHeaderList headerList,
char *  name,
char *  value 
)

void cg_http_packet_clean ( CgHttpPacket httpPkt  ) 

void cg_http_packet_clear ( CgHttpPacket httpPkt  ) 

void cg_http_packet_copy ( CgHttpPacket destHttpPkt,
CgHttpPacket srcHttpPkt 
)

void cg_http_packet_delete ( CgHttpPacket httpPkt  ) 

int cg_http_packet_getheaderinteger ( CgHttpPacket httpPkt,
char *  name 
)

long cg_http_packet_getheaderlong ( CgHttpPacket httpPkt,
char *  name 
)

int cg_http_packet_getheadersize ( CgHttpPacket httpPkt  ) 

char* cg_http_packet_getheadervalue ( CgHttpPacket httpPkt,
char *  name 
)

void cg_http_packet_init ( CgHttpPacket httpPkt  ) 

CgHttpPacket* cg_http_packet_new (  ) 

void cg_http_packet_post ( CgHttpPacket httpPkt,
CgSocket sock 
)

void cg_http_packet_print ( CgHttpPacket httpPkt  ) 

BOOL cg_http_packet_read ( CgHttpPacket httpPkt,
CgSocket sock,
char *  lineBuf,
int  lineBufSize 
)

BOOL cg_http_packet_read_body ( CgHttpPacket httpPkt,
CgSocket sock,
char *  lineBuf,
int  lineBufSize 
)

void cg_http_packet_read_headers ( CgHttpPacket httpPkt,
CgSocket sock,
char *  lineBuf,
int  lineBufSize 
)

void cg_http_packet_setheaderinteger ( CgHttpPacket httpPkt,
char *  name,
int  value 
)

void cg_http_packet_setheaderlong ( CgHttpPacket httpPkt,
char *  name,
long  value 
)

void cg_http_packet_setheadervalue ( CgHttpPacket httpPkt,
char *  name,
char *  value 
)

void cg_http_packet_sethost ( CgHttpPacket httpPkt,
char *  addr,
int  port 
)

void cg_http_persistentconnection_clear ( void   ) 

Clear persistent connection cache and free all memory

void* cg_http_persistentconnection_get ( char *  host,
int  port 
)

Get persistent connection from cache

BOOL cg_http_persistentconnection_init ( void   ) 

Initialize persistent connection cache. Can be called many times

void cg_http_persistentconnection_lock ( void   ) 

Lock persistent connection cache. Required for getting, putting and using persistent connection from cache

BOOL cg_http_persistentconnection_put ( char *  host,
int  port,
void *  data 
)

Put connection to persistent connection cache

void cg_http_persistentconnection_unlock ( void   ) 

Unlock persistent connection cache.

void cg_http_request_clear ( CgHttpRequest httpReq  ) 

void cg_http_request_copy ( CgHttpRequest destHttpReq,
CgHttpRequest srcHttpReq 
)

void cg_http_request_delete ( CgHttpRequest httpReq  ) 

char* cg_http_request_getmethod ( CgHttpRequest httpReq  ) 

CgSocket* cg_http_request_getsocket ( CgHttpRequest httpReq  ) 

char* cg_http_request_geturi ( CgHttpRequest httpReq  ) 

char* cg_http_request_getversion ( CgHttpRequest httpReqest  ) 

CgHttpRequest* cg_http_request_new (  ) 

CgHttpResponse* cg_http_request_post ( CgHttpRequest httpReq,
char *  ipaddr,
int  port 
)

BOOL cg_http_request_postresponse ( CgHttpRequest httpReq,
CgHttpResponse httpRes 
)

BOOL cg_http_request_poststatuscode ( CgHttpRequest httpReq,
int  httpStatCode 
)

void cg_http_request_print ( CgHttpRequest httpReq  ) 

BOOL cg_http_request_read ( CgHttpRequest httpReq,
CgSocket sock 
)

void cg_http_request_setmethod ( CgHttpRequest httpReq,
char *  method 
)

void cg_http_request_setsocket ( CgHttpRequest httpReq,
CgSocket sock 
)

void cg_http_request_seturi ( CgHttpRequest httpReq,
char *  uri 
)

void cg_http_request_setversion ( CgHttpRequest httpReq,
char *  version 
)

void cg_http_response_clear ( CgHttpResponse httpRes  ) 

void cg_http_response_copy ( CgHttpResponse destHttpRes,
CgHttpResponse srcHttpRes 
)

void cg_http_response_delete ( CgHttpResponse httpRes  ) 

char* cg_http_response_getreasonphrase ( CgHttpResponse httpRes  ) 

int cg_http_response_getstatuscode ( CgHttpResponse httpRes  ) 

char* cg_http_response_getversion ( CgHttpResponse httpRes  ) 

CgHttpResponse* cg_http_response_new (  ) 

void cg_http_response_print ( CgHttpResponse httpRes  ) 

BOOL cg_http_response_read ( CgHttpResponse httpRes,
CgSocket sock 
)

void cg_http_response_setreasonphrase ( CgHttpResponse httpRes,
char *  value 
)

void cg_http_response_setstatuscode ( CgHttpResponse httpRes,
int  code 
)

void cg_http_response_setversion ( CgHttpResponse httpRes,
char *  version 
)

BOOL cg_http_server_accept ( CgHttpServer httpServer  ) 

BOOL cg_http_server_close ( CgHttpServer httpServer  ) 

void cg_http_server_delete ( CgHttpServer httpServer  ) 

CgHttpServer* cg_http_server_new (  ) 

BOOL cg_http_server_open ( CgHttpServer httpServer,
int  bindPort,
char *  bindAddr 
)

void cg_http_server_setlistener ( CgHttpServer httpServer,
CG_HTTP_LISTENER  listener 
)

BOOL cg_http_server_start ( CgHttpServer httpServer  ) 

BOOL cg_http_server_stop ( CgHttpServer httpServer  ) 

BOOL cg_http_serverlist_close ( CgHttpServerList httpServerList  ) 

void cg_http_serverlist_delete ( CgHttpServerList httpServerList  ) 

CgHttpServerList* cg_http_serverlist_new (  ) 

BOOL cg_http_serverlist_open ( CgHttpServerList httpServerList,
int  port 
)

void cg_http_serverlist_setlistener ( CgHttpServerList httpServerList,
CG_HTTP_LISTENER  listener 
)

void cg_http_serverlist_setuserdata ( CgHttpServerList httpServerList,
void *  value 
)

BOOL cg_http_serverlist_start ( CgHttpServerList httpServerList  ) 

BOOL cg_http_serverlist_stop ( CgHttpServerList httpServerList  ) 

const char* cg_http_statuscode2reasonphrase ( const int  code  ) 

Convert an HTTP status code to a reason phrase (ex. 200 -> "OK")

Parameters:
code The HTTP status code to convert
Returns:
The reason phrase (do not modify the pointer's contents)


Generated on Tue Aug 8 14:56:29 2006 for CyberLinkC by  doxygen 1.4.7