Expose a function to getsockname() on a listener's fd.

This commit is contained in:
Nick Mathewson 2010-09-03 16:41:16 -04:00
parent 7ea8e89d5c
commit fab50488fc
2 changed files with 15 additions and 0 deletions

View File

@ -112,6 +112,11 @@ struct event_base *evconnlistener_get_base(struct evconnlistener *lev);
/** Return the socket that an evconnlistner is listening on. */
evutil_socket_t evconnlistener_get_fd(struct evconnlistener *lev);
/** Set ss to the address that an evconnlistner is listening on; returns 0
* on success, -1 on failure. */
int evconnlistener_get_address(struct evconnlistener *lev,
struct sockaddr *sa, ev_socklen_t *socklen);
#ifdef __cplusplus
}
#endif

View File

@ -261,6 +261,16 @@ event_listener_getfd(struct evconnlistener *lev)
return event_get_fd(&lev_e->listener);
}
int
evconnlistener_get_address(struct evconnlistener *lev,
struct sockaddr *sa, ev_socklen_t *socklen)
{
evutil_socket_t s = evconnlistener_get_fd(lev);
if (s <= 0)
return -1;
return getsockname(s, sa, socklen);
}
struct event_base *
evconnlistener_get_base(struct evconnlistener *lev)
{