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];
|
||||
static char result[256];
|
||||
get_addr_name(name, sizeof(name), peername);
|
||||
snprintf(result, sizeof(result), "%s:%d", name, ntohs(peername->sin_port));
|
||||
return result;
|
||||
snprintf(result.bytes, result.len, "%s:%d", name, ntohs(peername->sin_port));
|
||||
}
|
||||
|
||||
static void accept_connection(int servfd, short what, void *arg) {
|
||||
|
|
2
net.h
2
net.h
|
@ -2,7 +2,7 @@
|
|||
#define cmsg_net_h
|
||||
|
||||
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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue