1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-07-31 08:24:23 +03:00

Alternative to mg_upload (Step 14/?)

This commit is contained in:
bel
2016-01-15 00:00:08 +01:00
parent 1dc88bc5ef
commit 4e960e5fa4
2 changed files with 17 additions and 20 deletions

View File

@ -158,14 +158,9 @@ FileHandler(struct mg_connection *conn, void *cbdata)
struct mg_form_data_handler { struct mg_form_data_handler {
int (*field_found)(const char *key, int (*field_found)(const char *key,
size_t keylen, size_t keylen,
const char *value, const char *filename,
size_t vallen, int *disposition,
void *user_data); void *user_data);
int (*file_found)(const char *key,
size_t keylen,
const char *filename,
int *disposition,
void *user_data);
void *user_data; void *user_data;
}; };
@ -173,15 +168,16 @@ struct mg_form_data_handler {
int int
field_found(const char *key, field_found(const char *key,
size_t keylen, size_t keylen,
const char *value, const char *filename,
size_t vallen, int *disposition,
void *user_data) void *user_data)
{ {
struct mg_connection *conn = (struct mg_connection *)user_data; struct mg_connection *conn = (struct mg_connection *)user_data;
mg_write(conn, key, keylen); mg_write(conn, key, keylen);
mg_printf(conn, " = "); mg_printf(conn, " = ");
mg_write(conn, value, vallen); // mg_write(conn, value, vallen);
// TODO: disposition = skip/store/read/abort
mg_printf(conn, "\r\n"); mg_printf(conn, "\r\n");
return 0; return 0;

View File

@ -49,15 +49,15 @@ struct mg_form_data_handler {
static int static int
field_found(const char *key, url_encoded_field_found(const char *key,
size_t keylen, size_t keylen,
const char *value, const char *filename,
size_t vallen, int *disposition,
struct mg_form_data_handler *fdh) struct mg_form_data_handler *fdh)
{ {
/* Call callback */ /* Call callback */
mg_url_decode(data, (size_t)keylen, ) return field_found( /* TODO: mg_url_decode(key, (size_t)keylen, ) */
data, (size_t)keylen, val, (size_t)vallen, fdh->user_data); return fdh->field_found(key, keylen, filename, disposition, fdh->user_data);
} }
@ -67,7 +67,7 @@ mg_handle_form_data(struct mg_connection *conn,
{ {
const char *content_type; const char *content_type;
const char *boundary; const char *boundary;
int disposition; int disposition;
int has_body_data = int has_body_data =
(conn->request_info.content_length > 0) || (conn->is_chunked); (conn->request_info.content_length > 0) || (conn->is_chunked);
@ -110,7 +110,8 @@ mg_handle_form_data(struct mg_connection *conn,
} }
keylen = val - data; keylen = val - data;
field_found(data, (size_t)keylen, &disposition, fdh); url_encoded_field_found(
data, (size_t)keylen, NULL, &disposition, fdh);
val++; val++;
next = strchr(val, '&'); next = strchr(val, '&');
@ -123,7 +124,7 @@ mg_handle_form_data(struct mg_connection *conn,
} }
/* Call callback */ /* Call callback */
//field_found(data, (size_t)keylen, val, (size_t)vallen, fdh); // field_found(data, (size_t)keylen, val, (size_t)vallen, fdh);
/* Proceed to next entry */ /* Proceed to next entry */
data = next; data = next;