diff --git a/examples/embedded_c/embedded_c.c b/examples/embedded_c/embedded_c.c index 4a658062..6d83c63d 100644 --- a/examples/embedded_c/embedded_c.c +++ b/examples/embedded_c/embedded_c.c @@ -155,22 +155,25 @@ FileHandler(struct mg_connection *conn, void *cbdata) } +/**********************/ +/* proposed interface */ + enum { FORM_DISPOSITION_SKIP = 0x0, FORM_DISPOSITION_GET = 0x1, FORM_DISPOSITION_STORE = 0x2, - FORM_DISPOSITION_READ = 0x4, + FORM_DISPOSITION_READ = 0x3, FORM_DISPOSITION_ABORT = 0x10 }; struct mg_form_data_handler { int (*field_found)(const char *key, - size_t keylen, const char *filename, + char *path, + size_t pathlen, void *user_data); int (*field_get)(const char *key, - size_t keylen, const char *filename, const char *value, size_t valuelen, @@ -178,10 +181,15 @@ struct mg_form_data_handler { void *user_data; }; +int mg_handle_form_data(struct mg_connection *conn, + struct mg_form_data_handler *fdh); + +/* end of interface */ +/********************/ + int field_found(const char *key, - size_t keylen, const char *filename, char *path, size_t pathlen, @@ -189,15 +197,13 @@ field_found(const char *key, { struct mg_connection *conn = (struct mg_connection *)user_data; - mg_write(conn, key, keylen); - mg_printf(conn, ":\r\n"); + mg_printf(conn, "%s:\r\n", key); return FORM_DISPOSITION_GET; } int field_get(const char *key, - size_t keylen, const char *filename, const char *value, size_t valuelen, @@ -205,8 +211,7 @@ field_get(const char *key, { struct mg_connection *conn = (struct mg_connection *)user_data; - mg_write(conn, key, keylen); - mg_printf(conn, " = "); + mg_printf(conn, "%s = ", key); mg_write(conn, value, valuelen); mg_printf(conn, "\r\n\r\n"); diff --git a/src/handle_form.inl b/src/handle_form.inl index fec7edc7..67304877 100644 --- a/src/handle_form.inl +++ b/src/handle_form.inl @@ -38,13 +38,11 @@ enum { struct mg_form_data_handler { int (*field_found)(const char *key, - size_t keylen, const char *filename, char *path, size_t pathlen, void *user_data); int (*field_get)(const char *key, - size_t keylen, const char *filename, const char *value, size_t valuelen, @@ -95,12 +93,8 @@ url_encoded_field_found(const char *key, filename_dec[0] = 0; } - return fdh->field_found(key_dec, - (size_t)key_dec_len, - filename_dec, - path, - path_len, - fdh->user_data); + return fdh->field_found( + key_dec, filename_dec, path, path_len, fdh->user_data); } @@ -300,7 +294,7 @@ mg_handle_form_data(struct mg_connection *conn, vallen = next - val; next++; } else { - vallen = (size_t)strlen(val); + vallen = (ptrdiff_t)strlen(val); next = val + vallen; }