diff --git a/examples/embedded_c/embedded_c.c b/examples/embedded_c/embedded_c.c index de731111..d7efd11e 100644 --- a/examples/embedded_c/embedded_c.c +++ b/examples/embedded_c/embedded_c.c @@ -156,7 +156,12 @@ FileHandler(struct mg_connection *conn, void *cbdata) struct mg_form_data_handler { - int (*field_found)(const char *key, const char *value); + int (*field_found)(const char *key, const char *value, void *user_data); + int (*file_found)(const char *key, + const char *filename, + int *disposition, + void *user_data); + void *user_data; }; @@ -166,12 +171,13 @@ FormHandler(struct mg_connection *conn, void *cbdata) /* Handler may access the request info using mg_get_request_info */ const struct mg_request_info *req_info = mg_get_request_info(conn); int ret; - struct mg_form_data_handler fdh = {0}; + struct mg_form_data_handler fdh = {0, 0, 0}; /* TODO: Checks before calling handle_form_data ? */ (void)req_info; - ret = handle_form_data(conn, &fdh); + /* TODO: Handle the return value */ + ret = mg_handle_form_data(conn, &fdh); return 1; } diff --git a/src/handle_form.inl b/src/handle_form.inl index 136338bc..36a02bbc 100644 --- a/src/handle_form.inl +++ b/src/handle_form.inl @@ -39,18 +39,24 @@ mirror_body___dev_helper(struct mg_connection *conn) struct mg_form_data_handler { - int (*field_found)(const char *key, const char *value); + int (*field_found)(const char *key, const char *value, void *user_data); + int (*file_found)(const char *key, + const char *filename, + int *disposition, + void *user_data); + void *user_data; }; int -handle_form_data(struct mg_connection *conn, struct mg_form_data_handler *fdh) +mg_handle_form_data(struct mg_connection *conn, + struct mg_form_data_handler *fdh) { const char *content_type; const char *boundary; + const char *data; int has_body_data = (conn->request_info.content_length > 0) || (conn->is_chunked); - char *data; /* There are three ways to encode data from a HTML form: * 1) method: GET (default) diff --git a/test/form.html b/test/form.html index 674eeecc..381084ce 100644 --- a/test/form.html +++ b/test/form.html @@ -102,7 +102,7 @@