Commit 8d76733f authored by Sergey Lyubka's avatar Sergey Lyubka Committed by Cesanta Bot

Make mg_conn_addr_to_str return len

Also amend api_net.js to use returned length.

PUBLISHED_FROM=38e15f9587edf28049c5b9e5f126b4db159910e8
parent fb3a5a7d
...@@ -3,8 +3,8 @@ title: "mg_conn_addr_to_str()" ...@@ -3,8 +3,8 @@ title: "mg_conn_addr_to_str()"
decl_name: "mg_conn_addr_to_str" decl_name: "mg_conn_addr_to_str"
symbol_kind: "func" symbol_kind: "func"
signature: | signature: |
void mg_conn_addr_to_str(struct mg_connection *nc, char *buf, size_t len, int mg_conn_addr_to_str(struct mg_connection *c, char *buf, size_t len,
int flags); int flags);
--- ---
Converts a connection's local or remote address into string. Converts a connection's local or remote address into string.
...@@ -17,5 +17,6 @@ see `MG_SOCK_STRINGIFY_*` definitions. ...@@ -17,5 +17,6 @@ see `MG_SOCK_STRINGIFY_*` definitions.
- MG_SOCK_STRINGIFY_REMOTE - print remote peer's IP/port, not local address - MG_SOCK_STRINGIFY_REMOTE - print remote peer's IP/port, not local address
If both port number and IP address are printed, they are separated by `:`. If both port number and IP address are printed, they are separated by `:`.
If compiled with `-DMG_ENABLE_IPV6`, IPv6 addresses are supported. If compiled with `-DMG_ENABLE_IPV6`, IPv6 addresses are supported.
Return length of the stringified address.
...@@ -3,8 +3,8 @@ title: "mg_sock_addr_to_str()" ...@@ -3,8 +3,8 @@ title: "mg_sock_addr_to_str()"
decl_name: "mg_sock_addr_to_str" decl_name: "mg_sock_addr_to_str"
symbol_kind: "func" symbol_kind: "func"
signature: | signature: |
void mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len, int mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len,
int flags); int flags);
--- ---
Convert the socket's address into string. Convert the socket's address into string.
......
...@@ -9541,10 +9541,10 @@ void mg_set_close_on_exec(sock_t sock) { ...@@ -9541,10 +9541,10 @@ void mg_set_close_on_exec(sock_t sock) {
#endif #endif
} }
void mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len, int mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len,
int flags) { int flags) {
int is_v6; int is_v6;
if (buf == NULL || len <= 0) return; if (buf == NULL || len <= 0) return 0;
memset(buf, 0, len); memset(buf, 0, len);
#if MG_ENABLE_IPV6 #if MG_ENABLE_IPV6
is_v6 = sa->sa.sa_family == AF_INET6; is_v6 = sa->sa.sa_family == AF_INET6;
...@@ -9594,18 +9594,19 @@ void mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len, ...@@ -9594,18 +9594,19 @@ void mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len,
} }
} }
return; return strlen(buf);
cleanup: cleanup:
*buf = '\0'; *buf = '\0';
return 0;
} }
void mg_conn_addr_to_str(struct mg_connection *nc, char *buf, size_t len, int mg_conn_addr_to_str(struct mg_connection *nc, char *buf, size_t len,
int flags) { int flags) {
union socket_address sa; union socket_address sa;
memset(&sa, 0, sizeof(sa)); memset(&sa, 0, sizeof(sa));
mg_if_get_conn_addr(nc, flags & MG_SOCK_STRINGIFY_REMOTE, &sa); mg_if_get_conn_addr(nc, flags & MG_SOCK_STRINGIFY_REMOTE, &sa);
mg_sock_addr_to_str(&sa, buf, len, flags); return mg_sock_addr_to_str(&sa, buf, len, flags);
} }
#if MG_ENABLE_HEXDUMP #if MG_ENABLE_HEXDUMP
......
...@@ -4001,9 +4001,10 @@ void mg_set_close_on_exec(sock_t); ...@@ -4001,9 +4001,10 @@ void mg_set_close_on_exec(sock_t);
* *
* If both port number and IP address are printed, they are separated by `:`. * If both port number and IP address are printed, they are separated by `:`.
* If compiled with `-DMG_ENABLE_IPV6`, IPv6 addresses are supported. * If compiled with `-DMG_ENABLE_IPV6`, IPv6 addresses are supported.
* Return length of the stringified address.
*/ */
void mg_conn_addr_to_str(struct mg_connection *nc, char *buf, size_t len, int mg_conn_addr_to_str(struct mg_connection *c, char *buf, size_t len,
int flags); int flags);
#if MG_NET_IF == MG_NET_IF_SOCKET #if MG_NET_IF == MG_NET_IF_SOCKET
/* Legacy interface. */ /* Legacy interface. */
void mg_sock_to_str(sock_t sock, char *buf, size_t len, int flags); void mg_sock_to_str(sock_t sock, char *buf, size_t len, int flags);
...@@ -4014,8 +4015,8 @@ void mg_sock_to_str(sock_t sock, char *buf, size_t len, int flags); ...@@ -4014,8 +4015,8 @@ void mg_sock_to_str(sock_t sock, char *buf, size_t len, int flags);
* *
* `flags` is MG_SOCK_STRINGIFY_IP and/or MG_SOCK_STRINGIFY_PORT. * `flags` is MG_SOCK_STRINGIFY_IP and/or MG_SOCK_STRINGIFY_PORT.
*/ */
void mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len, int mg_sock_addr_to_str(const union socket_address *sa, char *buf, size_t len,
int flags); int flags);
#if MG_ENABLE_HEXDUMP #if MG_ENABLE_HEXDUMP
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment