Added support for reading raw PUT/POST data from HTTP request
This commit is contained in:
@@ -203,6 +203,14 @@ static char* get_query_data(private_request_t *this, char *name)
|
|||||||
return hdf_get_valuef(this->hdf, "Query.%s", name);
|
return hdf_get_valuef(this->hdf, "Query.%s", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of request_t.read_data.
|
||||||
|
*/
|
||||||
|
static int read_data(private_request_t *this, char *buf, int len)
|
||||||
|
{
|
||||||
|
return FCGX_GetStr(buf, len, this->req.in);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of request_t.get_base.
|
* Implementation of request_t.get_base.
|
||||||
*/
|
*/
|
||||||
@@ -407,6 +415,7 @@ request_t *request_create(int fd, bool debug)
|
|||||||
this->public.add_cookie = (void(*)(request_t*, char *name, char *value))add_cookie;
|
this->public.add_cookie = (void(*)(request_t*, char *name, char *value))add_cookie;
|
||||||
this->public.get_cookie = (char*(*)(request_t*,char*))get_cookie;
|
this->public.get_cookie = (char*(*)(request_t*,char*))get_cookie;
|
||||||
this->public.get_query_data = (char*(*)(request_t*, char *name))get_query_data;
|
this->public.get_query_data = (char*(*)(request_t*, char *name))get_query_data;
|
||||||
|
this->public.read_data = (int(*)(request_t*, char*, int))read_data;
|
||||||
this->public.session_closed = (bool(*)(request_t*))session_closed;
|
this->public.session_closed = (bool(*)(request_t*))session_closed;
|
||||||
this->public.close_session = (void(*)(request_t*))close_session;
|
this->public.close_session = (void(*)(request_t*))close_session;
|
||||||
this->public.redirect = (void(*)(request_t*, char *fmt,...))redirect;
|
this->public.redirect = (void(*)(request_t*, char *fmt,...))redirect;
|
||||||
|
|||||||
@@ -85,6 +85,15 @@ struct request_t {
|
|||||||
*/
|
*/
|
||||||
char* (*get_query_data)(request_t *this, char *name);
|
char* (*get_query_data)(request_t *this, char *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read raw POST/PUT data from HTTP request.
|
||||||
|
*
|
||||||
|
* @param buf buffer to read data into
|
||||||
|
* @param len size of the supplied buffer
|
||||||
|
* @return number of bytes read, < 0 on error
|
||||||
|
*/
|
||||||
|
int (*read_data)(request_t *this, char *buf, int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close the session and it's context after handling.
|
* Close the session and it's context after handling.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user