mirror of
https://github.com/lammertb/libhttp.git
synced 2025-07-29 21:01:13 +03:00
Alternative to mg_upload (Step 12/?)
This commit is contained in:
@ -177,6 +177,13 @@ field_found(const char *key,
|
|||||||
size_t vallen,
|
size_t vallen,
|
||||||
void *user_data)
|
void *user_data)
|
||||||
{
|
{
|
||||||
|
struct mg_connection *conn = (struct mg_connection *)user_data;
|
||||||
|
|
||||||
|
mg_write(conn, key, keylen);
|
||||||
|
mg_printf(conn, " = ");
|
||||||
|
mg_write(conn, value, vallen);
|
||||||
|
mg_printf(conn, "\r\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,6 +199,9 @@ FormHandler(struct mg_connection *conn, void *cbdata)
|
|||||||
/* TODO: Checks before calling handle_form_data ? */
|
/* TODO: Checks before calling handle_form_data ? */
|
||||||
(void)req_info;
|
(void)req_info;
|
||||||
|
|
||||||
|
mg_printf(conn, "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n");
|
||||||
|
fdh.user_data = (void *)conn;
|
||||||
|
|
||||||
/* TODO: Handle the return value */
|
/* TODO: Handle the return value */
|
||||||
ret = mg_handle_form_data(conn, &fdh);
|
ret = mg_handle_form_data(conn, &fdh);
|
||||||
|
|
||||||
|
@ -108,6 +108,7 @@ mg_handle_form_data(struct mg_connection *conn,
|
|||||||
next++;
|
next++;
|
||||||
} else {
|
} else {
|
||||||
vallen = strlen(val);
|
vallen = strlen(val);
|
||||||
|
next = val + vallen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call callback */
|
/* Call callback */
|
||||||
@ -115,7 +116,7 @@ mg_handle_form_data(struct mg_connection *conn,
|
|||||||
data, (size_t)keylen, val, (size_t)vallen, fdh->user_data);
|
data, (size_t)keylen, val, (size_t)vallen, fdh->user_data);
|
||||||
|
|
||||||
/* Proceed to next entry */
|
/* Proceed to next entry */
|
||||||
data = val + vallen;
|
data = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -135,7 +136,7 @@ mg_handle_form_data(struct mg_connection *conn,
|
|||||||
int buf_fill = 0;
|
int buf_fill = 0;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
/* TODO(high): Handle (text) fields with data > sizeof(buf). */
|
||||||
const char *val;
|
const char *val;
|
||||||
const char *next;
|
const char *next;
|
||||||
ptrdiff_t keylen, vallen;
|
ptrdiff_t keylen, vallen;
|
||||||
|
Reference in New Issue
Block a user