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:
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user