endpoint_name needs to be reentrant and stack-safe
This commit is contained in:
parent
0a895ac5c0
commit
63ee4ecea3
6
net.c
6
net.c
|
@ -38,12 +38,10 @@ void get_addr_name(char *namebuf, size_t buflen, struct sockaddr_in const *sin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char const *endpoint_name(struct sockaddr_in const *peername) {
|
void endpoint_name(struct sockaddr_in const *peername, cmsg_bytes_t result) {
|
||||||
char name[256];
|
char name[256];
|
||||||
static char result[256];
|
|
||||||
get_addr_name(name, sizeof(name), peername);
|
get_addr_name(name, sizeof(name), peername);
|
||||||
snprintf(result, sizeof(result), "%s:%d", name, ntohs(peername->sin_port));
|
snprintf(result.bytes, result.len, "%s:%d", name, ntohs(peername->sin_port));
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void accept_connection(int servfd, short what, void *arg) {
|
static void accept_connection(int servfd, short what, void *arg) {
|
||||||
|
|
2
net.h
2
net.h
|
@ -2,7 +2,7 @@
|
||||||
#define cmsg_net_h
|
#define cmsg_net_h
|
||||||
|
|
||||||
extern void get_addr_name(char *namebuf, size_t buflen, struct sockaddr_in const *sin);
|
extern void get_addr_name(char *namebuf, size_t buflen, struct sockaddr_in const *sin);
|
||||||
extern char const *endpoint_name(struct sockaddr_in const *peername);
|
extern void endpoint_name(struct sockaddr_in const *peername, cmsg_bytes_t result);
|
||||||
|
|
||||||
extern void start_net(int listen_port);
|
extern void start_net(int listen_port);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue