Added param names to mongoose headers

PUBLISHED_FROM=07bd8163c4e1df49ab3dc7a1640efa2adff34e33
This commit is contained in:
Dmitry Frank 2015-12-22 07:30:04 +00:00 committed by Sergey Lyubka
parent 910aee7f7b
commit 0fe2dd9b48
2 changed files with 61 additions and 49 deletions

View File

@ -77,7 +77,8 @@ MG_INTERNAL int mg_parse_address(const char *str, union socket_address *sa,
int *proto, char *host, size_t host_len);
MG_INTERNAL void mg_call(struct mg_connection *nc,
mg_event_handler_t ev_handler, int ev, void *ev_data);
MG_INTERNAL void mg_forward(struct mg_connection *, struct mg_connection *);
MG_INTERNAL void mg_forward(struct mg_connection *from,
struct mg_connection *to);
MG_INTERNAL void mg_add_conn(struct mg_mgr *mgr, struct mg_connection *c);
MG_INTERNAL void mg_remove_conn(struct mg_connection *c);
MG_INTERNAL size_t recv_avail_size(struct mg_connection *conn, size_t max);
@ -86,7 +87,8 @@ MG_INTERNAL struct mg_connection *mg_create_connection(
struct mg_add_sock_opts opts);
#ifndef MG_DISABLE_FILESYSTEM
MG_INTERNAL int find_index_file(char *, size_t, const char *, cs_stat_t *);
MG_INTERNAL int find_index_file(char *path, size_t path_len, const char *list,
cs_stat_t *stp);
#endif
#ifdef _WIN32
@ -119,8 +121,8 @@ struct ctl_msg {
};
/* Forward declarations for testing. */
extern void *(*test_malloc)(size_t);
extern void *(*test_calloc)(size_t, size_t);
extern void *(*test_malloc)(size_t size);
extern void *(*test_calloc)(size_t count, size_t size);
#endif /* MG_INTERNAL_HEADER_INCLUDED */
#ifdef NS_MODULE_LINES

View File

@ -1630,7 +1630,7 @@ void mg_send_http_chunk(struct mg_connection *nc, const char *buf, size_t len);
* Send printf-formatted HTTP chunk.
* Functionality is similar to `mg_send_http_chunk()`.
*/
void mg_printf_http_chunk(struct mg_connection *, const char *, ...);
void mg_printf_http_chunk(struct mg_connection *nc, const char *fmt, ...);
/*
* Send response status line.
@ -1667,7 +1667,7 @@ void mg_send_head(struct mg_connection *n, int status_code,
/*
* Send printf-formatted HTTP chunk, escaping HTML tags.
*/
void mg_printf_html_escape(struct mg_connection *, const char *, ...);
void mg_printf_html_escape(struct mg_connection *nc, const char *fmt, ...);
/* Websocket opcodes, from http://tools.ietf.org/html/rfc6455 */
#define WEBSOCKET_OP_CONTINUE 0
@ -1775,7 +1775,8 @@ size_t mg_parse_multipart(const char *buf, size_t buf_len, char *var_name,
* of a fetched variable. If not found, 0 is returned. `buf` must be
* valid url-encoded buffer. If destination is too small, `-1` is returned.
*/
int mg_get_http_var(const struct mg_str *, const char *, char *dst, size_t);
int mg_get_http_var(const struct mg_str *buf, const char *name, char *dst,
size_t dst_len);
/*
* Decode URL-encoded string.
@ -1814,7 +1815,7 @@ int mg_http_create_digest_auth_header(char *buf, size_t buf_len,
* NULL, "var_1=value_1&var_2=value_2");
* ----
*/
struct mg_connection *mg_connect_http(struct mg_mgr *,
struct mg_connection *mg_connect_http(struct mg_mgr *mgr,
mg_event_handler_t event_handler,
const char *url,
const char *extra_headers,
@ -1941,8 +1942,8 @@ struct mg_serve_http_opts {
* }
* ----
*/
void mg_serve_http(struct mg_connection *, struct http_message *,
struct mg_serve_http_opts);
void mg_serve_http(struct mg_connection *nc, struct http_message *hm,
struct mg_serve_http_opts opts);
#ifdef __cplusplus
}
@ -2062,9 +2063,10 @@ int mg_rpc_create_error(char *buf, int len, struct mg_rpc_request *req,
* - #define JSON_RPC_INTERNAL_ERROR (-32603)
* - #define JSON_RPC_SERVER_ERROR (-32000)
*/
int mg_rpc_create_std_error(char *, int, struct mg_rpc_request *, int code);
int mg_rpc_create_std_error(char *buf, int len, struct mg_rpc_request *req,
int code);
typedef int (*mg_rpc_handler_t)(char *buf, int len, struct mg_rpc_request *);
typedef int (*mg_rpc_handler_t)(char *buf, int len, struct mg_rpc_request *req);
/*
* Dispatches a JSON-RPC request.
@ -2208,13 +2210,13 @@ extern "C" {
* - MG_EV_MQTT_PUBCOMP
* - MG_EV_MQTT_SUBACK
*/
void mg_set_protocol_mqtt(struct mg_connection *);
void mg_set_protocol_mqtt(struct mg_connection *nc);
/* Send MQTT handshake. */
void mg_send_mqtt_handshake(struct mg_connection *nc, const char *client_id);
/* Send MQTT handshake with optional parameters. */
void mg_send_mqtt_handshake_opt(struct mg_connection *, const char *client_id,
void mg_send_mqtt_handshake_opt(struct mg_connection *nc, const char *client_id,
struct mg_send_mqtt_handshake_opts);
/* Publish a message to a given topic. */
@ -2235,34 +2237,35 @@ void mg_mqtt_unsubscribe(struct mg_connection *nc, char **topics,
void mg_mqtt_disconnect(struct mg_connection *nc);
/* Send a CONNACK command with a given `return_code`. */
void mg_mqtt_connack(struct mg_connection *, uint8_t);
void mg_mqtt_connack(struct mg_connection *nc, uint8_t return_code);
/* Send a PUBACK command with a given `message_id`. */
void mg_mqtt_puback(struct mg_connection *, uint16_t);
void mg_mqtt_puback(struct mg_connection *nc, uint16_t message_id);
/* Send a PUBREC command with a given `message_id`. */
void mg_mqtt_pubrec(struct mg_connection *, uint16_t);
void mg_mqtt_pubrec(struct mg_connection *nc, uint16_t message_id);
/* Send a PUBREL command with a given `message_id`. */
void mg_mqtt_pubrel(struct mg_connection *, uint16_t);
void mg_mqtt_pubrel(struct mg_connection *nc, uint16_t message_id);
/* Send a PUBCOMP command with a given `message_id`. */
void mg_mqtt_pubcomp(struct mg_connection *, uint16_t);
void mg_mqtt_pubcomp(struct mg_connection *nc, uint16_t message_id);
/*
* Send a SUBACK command with a given `message_id`
* and a sequence of granted QoSs.
*/
void mg_mqtt_suback(struct mg_connection *, uint8_t *, size_t, uint16_t);
void mg_mqtt_suback(struct mg_connection *nc, uint8_t *qoss, size_t qoss_len,
uint16_t message_id);
/* Send a UNSUBACK command with a given `message_id`. */
void mg_mqtt_unsuback(struct mg_connection *, uint16_t);
void mg_mqtt_unsuback(struct mg_connection *nc, uint16_t message_id);
/* Send a PINGREQ command. */
void mg_mqtt_ping(struct mg_connection *);
void mg_mqtt_ping(struct mg_connection *nc);
/* Send a PINGRESP command. */
void mg_mqtt_pong(struct mg_connection *);
void mg_mqtt_pong(struct mg_connection *nc);
/*
* Extract the next topic expression from a SUBSCRIBE command payload.
@ -2271,8 +2274,8 @@ void mg_mqtt_pong(struct mg_connection *);
* Return the pos of the next topic expression or -1 when the list
* of topics is exhausted.
*/
int mg_mqtt_next_subscribe_topic(struct mg_mqtt_message *, struct mg_str *,
uint8_t *, int);
int mg_mqtt_next_subscribe_topic(struct mg_mqtt_message *msg,
struct mg_str *topic, uint8_t *qos, int pos);
#ifdef __cplusplus
}
@ -2331,7 +2334,7 @@ struct mg_mqtt_broker {
};
/* Initialize a MQTT broker. */
void mg_mqtt_broker_init(struct mg_mqtt_broker *, void *);
void mg_mqtt_broker_init(struct mg_mqtt_broker *brk, void *user_data);
/*
* Process a MQTT broker message.
@ -2359,7 +2362,7 @@ void mg_mqtt_broker_init(struct mg_mqtt_broker *, void *);
* Since only the MG_EV_ACCEPT message is processed by the listening socket,
* for most events the `user_data` will thus point to a `mg_mqtt_session`.
*/
void mg_mqtt_broker(struct mg_connection *, int, void *);
void mg_mqtt_broker(struct mg_connection *brk, int ev, void *data);
/*
* Iterate over all mqtt sessions connections. Example:
@ -2369,8 +2372,8 @@ void mg_mqtt_broker(struct mg_connection *, int, void *);
* // Do something
* }
*/
struct mg_mqtt_session *mg_mqtt_next(struct mg_mqtt_broker *,
struct mg_mqtt_session *);
struct mg_mqtt_session *mg_mqtt_next(struct mg_mqtt_broker *brk,
struct mg_mqtt_session *s);
#ifdef __cplusplus
}
@ -2433,7 +2436,7 @@ struct mg_dns_message {
};
struct mg_dns_resource_record *mg_dns_next_record(
struct mg_dns_message *, int, struct mg_dns_resource_record *);
struct mg_dns_message *msg, int query, struct mg_dns_resource_record *prev);
/*
* Parse the record data from a DNS resource record.
@ -2446,20 +2449,23 @@ struct mg_dns_resource_record *mg_dns_next_record(
*
* TODO(mkm): MX
*/
int mg_dns_parse_record_data(struct mg_dns_message *,
struct mg_dns_resource_record *, void *, size_t);
int mg_dns_parse_record_data(struct mg_dns_message *msg,
struct mg_dns_resource_record *rr, void *data,
size_t data_len);
/*
* Send a DNS query to the remote end.
*/
void mg_send_dns_query(struct mg_connection *, const char *, int);
void mg_send_dns_query(struct mg_connection *nc, const char *name,
int query_type);
/*
* Insert a DNS header to an IO buffer.
*
* Return number of bytes inserted.
*/
int mg_dns_insert_header(struct mbuf *, size_t, struct mg_dns_message *);
int mg_dns_insert_header(struct mbuf *io, size_t pos,
struct mg_dns_message *msg);
/*
* Append already encoded body from an existing message.
@ -2469,7 +2475,7 @@ int mg_dns_insert_header(struct mbuf *, size_t, struct mg_dns_message *);
*
* Return number of appened bytes.
*/
int mg_dns_copy_body(struct mbuf *, struct mg_dns_message *);
int mg_dns_copy_body(struct mbuf *io, struct mg_dns_message *msg);
/*
* Encode and append a DNS resource record to an IO buffer.
@ -2487,11 +2493,12 @@ int mg_dns_copy_body(struct mbuf *, struct mg_dns_message *);
*
* Return the number of bytes appened or -1 in case of error.
*/
int mg_dns_encode_record(struct mbuf *, struct mg_dns_resource_record *,
const char *, size_t, const void *, size_t);
int mg_dns_encode_record(struct mbuf *io, struct mg_dns_resource_record *rr,
const char *name, size_t nlen, const void *rdata,
size_t rlen);
/* Low-level: parses a DNS response. */
int mg_parse_dns(const char *, int, struct mg_dns_message *);
int mg_parse_dns(const char *buf, int len, struct mg_dns_message *msg);
/*
* Uncompress a DNS compressed name.
@ -2506,8 +2513,8 @@ int mg_parse_dns(const char *, int, struct mg_dns_message *);
* If `dst_len` is 0 `dst` can be NULL.
* Return the uncompressed name length.
*/
size_t mg_dns_uncompress_name(struct mg_dns_message *, struct mg_str *, char *,
int);
size_t mg_dns_uncompress_name(struct mg_dns_message *msg, struct mg_str *name,
char *dst, int dst_len);
/*
* Attach built-in DNS event handler to the given listening connection.
@ -2521,7 +2528,7 @@ size_t mg_dns_uncompress_name(struct mg_dns_message *, struct mg_str *, char *,
* https://github.com/cesanta/mongoose/tree/master/examples/captive_dns_server[captive_dns_server]
* example on how to handle DNS request and send DNS reply.
*/
void mg_set_protocol_dns(struct mg_connection *);
void mg_set_protocol_dns(struct mg_connection *nc);
#ifdef __cplusplus
}
@ -2585,7 +2592,8 @@ struct mg_dns_reply {
* mg_dns_send_reply(nc, &reply);
* -----
*/
struct mg_dns_reply mg_dns_create_reply(struct mbuf *, struct mg_dns_message *);
struct mg_dns_reply mg_dns_create_reply(struct mbuf *io,
struct mg_dns_message *msg);
/*
* Append a DNS reply record to the IO buffer and to the DNS message.
@ -2595,8 +2603,10 @@ struct mg_dns_reply mg_dns_create_reply(struct mbuf *, struct mg_dns_message *);
*
* Returns -1 on error.
*/
int mg_dns_reply_record(struct mg_dns_reply *, struct mg_dns_resource_record *,
const char *, int, int, const void *, size_t);
int mg_dns_reply_record(struct mg_dns_reply *reply,
struct mg_dns_resource_record *question,
const char *name, int rtype, int ttl, const void *rdata,
size_t rdata_len);
/*
* Send a DNS reply through a connection.
@ -2610,7 +2620,7 @@ int mg_dns_reply_record(struct mg_dns_reply *, struct mg_dns_resource_record *,
* Once sent, the IO buffer will be trimmed unless the reply IO buffer
* is the connection's send buffer and the connection is not in UDP mode.
*/
void mg_dns_send_reply(struct mg_connection *, struct mg_dns_reply *);
void mg_dns_send_reply(struct mg_connection *nc, struct mg_dns_reply *r);
#ifdef __cplusplus
}
@ -2656,8 +2666,8 @@ struct mg_resolve_async_opts {
};
/* See `mg_resolve_async_opt()` */
int mg_resolve_async(struct mg_mgr *, const char *, int, mg_resolve_callback_t,
void *data);
int mg_resolve_async(struct mg_mgr *mgr, const char *name, int query,
mg_resolve_callback_t cb, void *data);
/*
* Resolved a DNS name asynchronously.
@ -2680,8 +2690,8 @@ int mg_resolve_async(struct mg_mgr *, const char *, int, mg_resolve_callback_t,
* mg_dns_parse_record_data(msg, rr, &ina, sizeof(ina));
* ----
*/
int mg_resolve_async_opt(struct mg_mgr *, const char *, int,
mg_resolve_callback_t, void *data,
int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query,
mg_resolve_callback_t cb, void *data,
struct mg_resolve_async_opts opts);
/*