Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
mongoose
Commits
0fe2dd9b
Commit
0fe2dd9b
authored
Dec 22, 2015
by
Dmitry Frank
Committed by
Sergey Lyubka
Dec 22, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added param names to mongoose headers
PUBLISHED_FROM=07bd8163c4e1df49ab3dc7a1640efa2adff34e33
parent
910aee7f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
49 deletions
+61
-49
mongoose.c
mongoose.c
+6
-4
mongoose.h
mongoose.h
+55
-45
No files found.
mongoose.c
View file @
0fe2dd9b
...
...
@@ -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
...
...
mongoose.h
View file @
0fe2dd9b
...
...
@@ -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
);
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment