mirror of
https://github.com/lammertb/libhttp.git
synced 2026-01-03 16:02:30 +03:00
Alternative to mg_upload (Step 13/?)
This commit is contained in:
@@ -22,7 +22,6 @@
|
||||
/********************/
|
||||
/* EXPERIMENTAL !!! */
|
||||
/********************/
|
||||
#ifdef USE_EXPERIMENTAL
|
||||
|
||||
void
|
||||
mirror_body___dev_helper(struct mg_connection *conn)
|
||||
@@ -42,24 +41,33 @@ mirror_body___dev_helper(struct mg_connection *conn)
|
||||
struct mg_form_data_handler {
|
||||
int (*field_found)(const char *key,
|
||||
size_t keylen,
|
||||
const char *value,
|
||||
size_t vallen,
|
||||
const char *filename,
|
||||
int *disposition,
|
||||
void *user_data);
|
||||
int (*file_found)(const char *key,
|
||||
size_t keylen,
|
||||
const char *filename,
|
||||
int *disposition,
|
||||
void *user_data);
|
||||
void *user_data;
|
||||
};
|
||||
|
||||
|
||||
static int
|
||||
field_found(const char *key,
|
||||
size_t keylen,
|
||||
const char *value,
|
||||
size_t vallen,
|
||||
struct mg_form_data_handler *fdh)
|
||||
{
|
||||
/* Call callback */
|
||||
mg_url_decode(data, (size_t)keylen, ) return field_found(
|
||||
data, (size_t)keylen, val, (size_t)vallen, fdh->user_data);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
mg_handle_form_data(struct mg_connection *conn,
|
||||
struct mg_form_data_handler *fdh)
|
||||
{
|
||||
const char *content_type;
|
||||
const char *boundary;
|
||||
int disposition;
|
||||
|
||||
int has_body_data =
|
||||
(conn->request_info.content_length > 0) || (conn->is_chunked);
|
||||
@@ -101,6 +109,9 @@ mg_handle_form_data(struct mg_connection *conn,
|
||||
break;
|
||||
}
|
||||
keylen = val - data;
|
||||
|
||||
field_found(data, (size_t)keylen, &disposition, fdh);
|
||||
|
||||
val++;
|
||||
next = strchr(val, '&');
|
||||
if (next) {
|
||||
@@ -112,8 +123,7 @@ mg_handle_form_data(struct mg_connection *conn,
|
||||
}
|
||||
|
||||
/* Call callback */
|
||||
fdh->field_found(
|
||||
data, (size_t)keylen, val, (size_t)vallen, fdh->user_data);
|
||||
//field_found(data, (size_t)keylen, val, (size_t)vallen, fdh);
|
||||
|
||||
/* Proceed to next entry */
|
||||
data = next;
|
||||
@@ -206,5 +216,3 @@ mg_handle_form_data(struct mg_connection *conn,
|
||||
/* Unknown Content-Type */
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user