mirror of
https://github.com/cesanta/mongoose.git
synced 2025-08-06 13:37:34 +08:00
More detailed debug log - show ip/port for sender and receiver
This commit is contained in:
parent
f7ff571c5f
commit
8ebb3bc37b
27
mongoose.c
27
mongoose.c
@ -2375,14 +2375,18 @@ int mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
||||
return len;
|
||||
}
|
||||
|
||||
char *mg_straddr(struct mg_connection *c, char *buf, size_t len) {
|
||||
char tmp[100];
|
||||
const char *fmt = c->peer.is_ip6 ? "[%s]:%d" : "%s:%d";
|
||||
mg_ntoa(&c->peer, tmp, sizeof(tmp));
|
||||
snprintf(buf, len, fmt, tmp, (int) mg_ntohs(c->peer.port));
|
||||
char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) {
|
||||
char tmp[30];
|
||||
const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d";
|
||||
mg_ntoa(a, tmp, sizeof(tmp));
|
||||
snprintf(buf, len, fmt, tmp, (int) mg_ntohs(a->port));
|
||||
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) {
|
||||
if (addr->is_ip6) {
|
||||
uint16_t *p = (uint16_t *) addr->ip6;
|
||||
@ -2971,9 +2975,18 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) {
|
||||
c->is_closing = 1; // Error, or normal termination
|
||||
} else if (n > 0) {
|
||||
if (c->is_hexdumping) {
|
||||
union usa usa;
|
||||
char t1[50] = "", t2[50] = "";
|
||||
socklen_t slen = sizeof(usa.sin);
|
||||
char *s = mg_hexdump(buf, (size_t) n);
|
||||
LOG(LL_INFO,
|
||||
("\n-- %lu %s %s %ld\n%s", c->id, c->label, r ? "<-" : "->", n, s));
|
||||
struct mg_addr a;
|
||||
memset(&usa, 0, sizeof(usa));
|
||||
memset(&a, 0, sizeof(a));
|
||||
getsockname(FD(c), &usa.sa, &slen);
|
||||
tomgaddr(&usa, &a, c->peer.is_ip6);
|
||||
LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id,
|
||||
mg_addr_to_str(&a, t1, sizeof(t1)), r ? "<-" : "->",
|
||||
mg_addr_to_str(&c->peer, t2, sizeof(t2)), c->label, n, s));
|
||||
free(s);
|
||||
}
|
||||
if (r) {
|
||||
|
14
src/net.c
14
src/net.c
@ -19,14 +19,18 @@ int mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
||||
return len;
|
||||
}
|
||||
|
||||
char *mg_straddr(struct mg_connection *c, char *buf, size_t len) {
|
||||
char tmp[100];
|
||||
const char *fmt = c->peer.is_ip6 ? "[%s]:%d" : "%s:%d";
|
||||
mg_ntoa(&c->peer, tmp, sizeof(tmp));
|
||||
snprintf(buf, len, fmt, tmp, (int) mg_ntohs(c->peer.port));
|
||||
char *mg_addr_to_str(struct mg_addr *a, char *buf, size_t len) {
|
||||
char tmp[30];
|
||||
const char *fmt = a->is_ip6 ? "[%s]:%d" : "%s:%d";
|
||||
mg_ntoa(a, tmp, sizeof(tmp));
|
||||
snprintf(buf, len, fmt, tmp, (int) mg_ntohs(a->port));
|
||||
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) {
|
||||
if (addr->is_ip6) {
|
||||
uint16_t *p = (uint16_t *) addr->ip6;
|
||||
|
@ -72,6 +72,7 @@ bool mg_send(struct mg_connection *, const void *, size_t);
|
||||
int mg_printf(struct mg_connection *, const char *fmt, ...);
|
||||
int mg_vprintf(struct mg_connection *, const char *fmt, va_list ap);
|
||||
char *mg_straddr(struct mg_connection *, 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);
|
||||
char *mg_ntoa(const struct mg_addr *addr, char *buf, size_t len);
|
||||
|
||||
|
13
src/sock.c
13
src/sock.c
@ -112,9 +112,18 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) {
|
||||
c->is_closing = 1; // Error, or normal termination
|
||||
} else if (n > 0) {
|
||||
if (c->is_hexdumping) {
|
||||
union usa usa;
|
||||
char t1[50] = "", t2[50] = "";
|
||||
socklen_t slen = sizeof(usa.sin);
|
||||
char *s = mg_hexdump(buf, (size_t) n);
|
||||
LOG(LL_INFO,
|
||||
("\n-- %lu %s %s %ld\n%s", c->id, c->label, r ? "<-" : "->", n, s));
|
||||
struct mg_addr a;
|
||||
memset(&usa, 0, sizeof(usa));
|
||||
memset(&a, 0, sizeof(a));
|
||||
getsockname(FD(c), &usa.sa, &slen);
|
||||
tomgaddr(&usa, &a, c->peer.is_ip6);
|
||||
LOG(LL_INFO, ("\n-- %lu %s %s %s %s %ld\n%s", c->id,
|
||||
mg_addr_to_str(&a, t1, sizeof(t1)), r ? "<-" : "->",
|
||||
mg_addr_to_str(&c->peer, t2, sizeof(t2)), c->label, n, s));
|
||||
free(s);
|
||||
}
|
||||
if (r) {
|
||||
|
Loading…
Reference in New Issue
Block a user