diff options
-rw-r--r-- | network.c | 9 | ||||
-rw-r--r-- | network.h | 1 |
2 files changed, 10 insertions, 0 deletions
@@ -19,6 +19,15 @@ const char *addr_to_str(struct sockaddr *sa, socklen_t len) { return str; } +struct sockaddr *get_sock_addr(int socket) { + struct sockaddr *sa; + socklen_t sock_len = sizeof(struct sockaddr); + getsockname(socket, NULL, &sock_len); + sa = calloc(1, sock_len); + getsockname(socket, sa, &sock_len); + return sa; +} + int create_socket(struct sockaddr *sa, size_t sock_len) { const int one = 1; /* Create a new listen socket. */ @@ -32,6 +32,7 @@ struct packet { }; extern const char *addr_to_str(struct sockaddr *sa, socklen_t len); +extern struct sockaddr *get_sock_addr(int socket); extern int create_socket(struct sockaddr *sa, size_t sock_len); #endif |