Change mg_straddr() API

This commit is contained in:
Sergey Lyubka 2022-01-05 19:09:11 +00:00
parent ff811f287a
commit fc3c08e411
6 changed files with 24 additions and 32 deletions

View File

@ -628,13 +628,13 @@ void foo(struct mg_connection *c, const char *fmt, ...) {
### mg\_straddr ### mg\_straddr
```c ```c
char *mg_straddr(struct mg_connection *c, char *buf, size_t len); char *mg_straddr(struct mg_addr *addr, char *buf, size_t len);
``` ```
Write stringified IP address, associated with given connection to `buf` (maximum size `len`) Write stringified IP address, associated with given connection to `buf` (maximum size `len`)
Parameters: Parameters:
- `c` - A connection pointer - `addr` - A address pointer
- `buf` - A pointer to a buffer that will hold stringified address - `buf` - A pointer to a buffer that will hold stringified address
- `len` - A buffer size - `len` - A buffer size
@ -643,8 +643,8 @@ Return value: `buf` value
Usage example: Usage example:
```c ```c
char buf[1024]; char buf[100];
mg_straddr(c, buf, sizeof(buf)); // `buf` is now IP address string, like "127.0.0.1:8080" LOG(LL_INFO, ("%s", mg_straddr(&c->peer, buf, sizeof(buf))));
``` ```
### mg\_mkpipe() ### mg\_mkpipe()

View File

@ -2375,7 +2375,7 @@ int mg_printf(struct mg_connection *c, const char *fmt, ...) {
return len; return len;
} }
char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) { char *mg_straddr(struct mg_addr *a, char *buf, size_t len) {
char tmp[30]; char tmp[30];
const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d"; const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d";
mg_ntoa(a, tmp, sizeof(tmp)); mg_ntoa(a, tmp, sizeof(tmp));
@ -2383,10 +2383,6 @@ char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) {
return buf; return buf;
} }
char *mg_straddr(struct mg_connection *c, char *buf, size_t len) {
return mg_addr_to_str(&c->peer, buf, len);
}
char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len) { char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len) {
if (addr->is_ip6) { if (addr->is_ip6) {
uint16_t *p = (uint16_t *) addr->ip6; uint16_t *p = (uint16_t *) addr->ip6;
@ -2985,8 +2981,8 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) {
getsockname(FD(c), &usa.sa, &slen); getsockname(FD(c), &usa.sa, &slen);
tomgaddr(&usa, &a, c->peer.is_ip6); tomgaddr(&usa, &a, c->peer.is_ip6);
LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id, LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id,
mg_addr_to_str(&a, t1, sizeof(t1)), r ? "<-" : "->", mg_straddr(&a, t1, sizeof(t1)), r ? "<-" : "->",
mg_addr_to_str(&c->peer, t2, sizeof(t2)), c->label, n, s)); mg_straddr(&c->peer, t2, sizeof(t2)), c->label, n, s));
free(s); free(s);
(void) t1, (void) t2; // Silence warnings for MG_ENABLE_LOG=0 (void) t1, (void) t2; // Silence warnings for MG_ENABLE_LOG=0
} }
@ -3200,10 +3196,10 @@ static void setsockopts(struct mg_connection *c) {
} }
void mg_connect_resolved(struct mg_connection *c) { void mg_connect_resolved(struct mg_connection *c) {
char buf[40]; // char buf[40];
int type = c->is_udp ? SOCK_DGRAM : SOCK_STREAM; int type = c->is_udp ? SOCK_DGRAM : SOCK_STREAM;
int rc, af = c->peer.is_ip6 ? AF_INET6 : AF_INET; int rc, af = c->peer.is_ip6 ? AF_INET6 : AF_INET;
mg_straddr(c, buf, sizeof(buf)); // mg_straddr(&c->peer, buf, sizeof(buf));
c->fd = S2PTR(socket(af, type, 0)); c->fd = S2PTR(socket(af, type, 0));
if (FD(c) == INVALID_SOCKET) { if (FD(c) == INVALID_SOCKET) {
mg_error(c, "socket(): %d", MG_SOCK_ERRNO); mg_error(c, "socket(): %d", MG_SOCK_ERRNO);
@ -3266,7 +3262,7 @@ static void accept_conn(struct mg_mgr *mgr, struct mg_connection *lsn) {
} else { } else {
char buf[40]; char buf[40];
tomgaddr(&usa, &c->peer, sa_len != sizeof(usa.sin)); tomgaddr(&usa, &c->peer, sa_len != sizeof(usa.sin));
mg_straddr(c, buf, sizeof(buf)); mg_straddr(&c->peer, buf, sizeof(buf));
LOG(LL_DEBUG, ("%lu accepted %s", c->id, buf)); LOG(LL_DEBUG, ("%lu accepted %s", c->id, buf));
mg_set_non_blocking_mode(FD(c)); mg_set_non_blocking_mode(FD(c));
setsockopts(c); setsockopts(c);
@ -3428,8 +3424,9 @@ static void connect_conn(struct mg_connection *c) {
if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0; if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0;
c->is_connecting = 0; c->is_connecting = 0;
if (rc) { if (rc) {
char buf[40]; char buf[50];
mg_error(c, "error connecting to %s", mg_straddr(c, buf, sizeof(buf))); mg_error(c, "error connecting to %s",
mg_straddr(&c->peer, buf, sizeof(buf)));
} else { } else {
if (c->is_tls_hs) mg_tls_handshake(c); if (c->is_tls_hs) mg_tls_handshake(c);
mg_call(c, MG_EV_CONNECT, NULL); mg_call(c, MG_EV_CONNECT, NULL);

View File

@ -860,8 +860,7 @@ void mg_connect_resolved(struct mg_connection *);
bool mg_send(struct mg_connection *, const void *, size_t); bool mg_send(struct mg_connection *, const void *, size_t);
int mg_printf(struct mg_connection *, const char *fmt, ...); int mg_printf(struct mg_connection *, const char *fmt, ...);
int mg_vprintf(struct mg_connection *, const char *fmt, va_list ap); int mg_vprintf(struct mg_connection *, const char *fmt, va_list ap);
char *mg_straddr(struct mg_connection *, char *, size_t); char *mg_straddr(struct mg_addr *, char *, size_t);
char *mg_addr_to_str(struct mg_addr *, char *, size_t);
bool mg_aton(struct mg_str str, struct mg_addr *addr); bool mg_aton(struct mg_str str, struct mg_addr *addr);
char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len); char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len);

View File

@ -19,7 +19,7 @@ int mg_printf(struct mg_connection *c, const char *fmt, ...) {
return len; return len;
} }
char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) { char *mg_straddr(struct mg_addr *a, char *buf, size_t len) {
char tmp[30]; char tmp[30];
const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d"; const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d";
mg_ntoa(a, tmp, sizeof(tmp)); mg_ntoa(a, tmp, sizeof(tmp));
@ -27,10 +27,6 @@ char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) {
return buf; return buf;
} }
char *mg_straddr(struct mg_connection *c, char *buf, size_t len) {
return mg_addr_to_str(&c->peer, buf, len);
}
char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len) { char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len) {
if (addr->is_ip6) { if (addr->is_ip6) {
uint16_t *p = (uint16_t *) addr->ip6; uint16_t *p = (uint16_t *) addr->ip6;

View File

@ -71,8 +71,7 @@ void mg_connect_resolved(struct mg_connection *);
bool mg_send(struct mg_connection *, const void *, size_t); bool mg_send(struct mg_connection *, const void *, size_t);
int mg_printf(struct mg_connection *, const char *fmt, ...); int mg_printf(struct mg_connection *, const char *fmt, ...);
int mg_vprintf(struct mg_connection *, const char *fmt, va_list ap); int mg_vprintf(struct mg_connection *, const char *fmt, va_list ap);
char *mg_straddr(struct mg_connection *, char *, size_t); char *mg_straddr(struct mg_addr *, char *, size_t);
char *mg_addr_to_str(struct mg_addr *, char *, size_t);
bool mg_aton(struct mg_str str, struct mg_addr *addr); bool mg_aton(struct mg_str str, struct mg_addr *addr);
char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len); char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len);

View File

@ -122,8 +122,8 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) {
getsockname(FD(c), &usa.sa, &slen); getsockname(FD(c), &usa.sa, &slen);
tomgaddr(&usa, &a, c->peer.is_ip6); tomgaddr(&usa, &a, c->peer.is_ip6);
LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id, LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id,
mg_addr_to_str(&a, t1, sizeof(t1)), r ? "<-" : "->", mg_straddr(&a, t1, sizeof(t1)), r ? "<-" : "->",
mg_addr_to_str(&c->peer, t2, sizeof(t2)), c->label, n, s)); mg_straddr(&c->peer, t2, sizeof(t2)), c->label, n, s));
free(s); free(s);
(void) t1, (void) t2; // Silence warnings for MG_ENABLE_LOG=0 (void) t1, (void) t2; // Silence warnings for MG_ENABLE_LOG=0
} }
@ -337,10 +337,10 @@ static void setsockopts(struct mg_connection *c) {
} }
void mg_connect_resolved(struct mg_connection *c) { void mg_connect_resolved(struct mg_connection *c) {
char buf[40]; // char buf[40];
int type = c->is_udp ? SOCK_DGRAM : SOCK_STREAM; int type = c->is_udp ? SOCK_DGRAM : SOCK_STREAM;
int rc, af = c->peer.is_ip6 ? AF_INET6 : AF_INET; int rc, af = c->peer.is_ip6 ? AF_INET6 : AF_INET;
mg_straddr(c, buf, sizeof(buf)); // mg_straddr(&c->peer, buf, sizeof(buf));
c->fd = S2PTR(socket(af, type, 0)); c->fd = S2PTR(socket(af, type, 0));
if (FD(c) == INVALID_SOCKET) { if (FD(c) == INVALID_SOCKET) {
mg_error(c, "socket(): %d", MG_SOCK_ERRNO); mg_error(c, "socket(): %d", MG_SOCK_ERRNO);
@ -403,7 +403,7 @@ static void accept_conn(struct mg_mgr *mgr, struct mg_connection *lsn) {
} else { } else {
char buf[40]; char buf[40];
tomgaddr(&usa, &c->peer, sa_len != sizeof(usa.sin)); tomgaddr(&usa, &c->peer, sa_len != sizeof(usa.sin));
mg_straddr(c, buf, sizeof(buf)); mg_straddr(&c->peer, buf, sizeof(buf));
LOG(LL_DEBUG, ("%lu accepted %s", c->id, buf)); LOG(LL_DEBUG, ("%lu accepted %s", c->id, buf));
mg_set_non_blocking_mode(FD(c)); mg_set_non_blocking_mode(FD(c));
setsockopts(c); setsockopts(c);
@ -565,8 +565,9 @@ static void connect_conn(struct mg_connection *c) {
if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0; if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0;
c->is_connecting = 0; c->is_connecting = 0;
if (rc) { if (rc) {
char buf[40]; char buf[50];
mg_error(c, "error connecting to %s", mg_straddr(c, buf, sizeof(buf))); mg_error(c, "error connecting to %s",
mg_straddr(&c->peer, buf, sizeof(buf)));
} else { } else {
if (c->is_tls_hs) mg_tls_handshake(c); if (c->is_tls_hs) mg_tls_handshake(c);
mg_call(c, MG_EV_CONNECT, NULL); mg_call(c, MG_EV_CONNECT, NULL);