kre_http.c File Reference

kREproxy HTTP management interface implementation More...

#include "kre_http.h"

Functions

int kre_http_get_request (char *bu, size_t s, struct kre_http_request *req, struct kre_thread *thr)
 Get HTTP request from client to buffer bu and return count of received bytes or error or should stop flag.
int kre_http_transfer_response (char *bu, size_t s, struct kre_thread *thr)
 Transfer response from dst host to client host using buffer bu.
void kre_http_set_response (char *bu, size_t size, int code)
 Build response in bu based on http_error number.
void kre_http_get_meth_from_buf (struct kre_http_request *req, char *b, size_t size)
 Get HTTP method from b parameter.
void kre_http_get_content_length (struct kre_http_request *req, char *b, size_t size)
 Get HTTP Content-Length if exsists value.
void kre_http_get_uri (struct kre_http_request *req, char *b, size_t size)
 Get URI from HTTP request ( from buffer b ).
void kre_http_get_host (struct kre_http_request *req, char *b, size_t size)
 Get Host from HTTP request b.
int kre_http_get_req_from_buf (struct kre_http_request *req, char *bu, size_t size)
 Get all needed field from request buf and save to req structure.


Detailed Description

kREproxy HTTP management interface implementation


Function Documentation

void kre_http_get_content_length ( struct kre_http_request req,
char *  b,
size_t  size 
)

Get HTTP Content-Length if exsists value.

Parameters:
req Place where contetn length value is saved if not exsixts 0 value is saved.
b Buffor with http request.
size Size of buffer.

void kre_http_get_host ( struct kre_http_request req,
char *  b,
size_t  size 
)

Get Host from HTTP request b.

Parameters:
req Place to save host.
b Buffer with request.
size Size of buffer b.

void kre_http_get_meth_from_buf ( struct kre_http_request req,
char *  b,
size_t  size 
)

Get HTTP method from b parameter.

Parameters:
req Place to save http method.
b Buffor with http request.
size Size of buffer.

int kre_http_get_req_from_buf ( struct kre_http_request req,
char *  bu,
size_t  size 
)

Get all needed field from request buf and save to req structure.

Parameters:
req Place to save request field.
bu Source request buffor.
size Size of buffer.
Returns:
0 if everything is ok or -EINVAL, -1, or req->state ( KRE_HTTP_BAD_REQUEST, ... ).

int kre_http_get_request ( char *  bu,
size_t  s,
struct kre_http_request req,
struct kre_thread cur 
)

Get HTTP request from client to buffer bu and return count of received bytes or error or should stop flag.

Parameters:
bu Buffer where http request will go.
s Size of buffer.
req Place to save HTTP request in specific kre format.
cur Curent kre thread with csock.
Returns:
-KRE_HTTP_ERROR | -KRE_HTTP_SHOULD_STOP | count of received bytes.

void kre_http_get_uri ( struct kre_http_request req,
char *  b,
size_t  size 
)

Get URI from HTTP request ( from buffer b ).

Parameters:
req Place to save uri.
b Buffer with request.
size Size of buffer.

void kre_http_set_response ( char *  bu,
size_t  size,
int  code 
)

Build response in bu based on http_error number.

Parameters:
bu Buffer where new response is build.
size Max size of buffer.
code KRE_HTTP_( response code ) for example KRE_HTTP_BAD_REQUEST, KRE_HTTP_INTERNAL_SERVER_ERROR, ... , KRE_HTTP_SERVER_IS_BUSY,..

int kre_http_transfer_response ( char *  bu,
size_t  s,
struct kre_thread thr 
)

Transfer response from dst host to client host using buffer bu.

Parameters:
bu Buffer using during transfering.
s Size of buffer bu.
thr Thread structure with alocated and connecting dstsock and csock socket.
Returns:
Error code or 0.


Generated on Fri Feb 20 19:46:05 2009 for kREproxy by  doxygen 1.5.8