[ https://issues.apache.org/jira/browse/PROTON-1706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16308672#comment-16308672 ]
Alan Conway commented on PROTON-1706: ------------------------------------- Simplified proposed API, since the proactor must create all the pn_netaddr_t structs in any case, there's no benefit in forcing the user to allocate an array so use a pointer chain: {code:none} /** * Get the listening addresses of a listener. * * A listener can have more than one address for several reasons: * - DNS host records may indicate more than one address * - On a multi-homed host, listening on the default host "" will listen on all local addresses. * - Some IPv4/IPV6 configurations may expand a single address into a v4/v6 pair. * * pn_netaddr_next() will iterate over all the addresses in the list. * * @param l points to the listener * @return The first listening address or NULL if there are no addresses are available. * Use pn_netaddr_next() to iterate over the list. */ PNP_EXTERN const pn_netaddr_t *pn_netaddr_listening(pn_listener_t *l); /** * @return Pointer to the next address in a list of addresses, NULL if at the end of the list or * if this address is not part of a list. */ PNP_EXTERN const pn_netaddr_t *pn_netaddr_next(const pn_netaddr_t *na); {code} > pn_listener_t provide access to actual listening port > ----------------------------------------------------- > > Key: PROTON-1706 > URL: https://issues.apache.org/jira/browse/PROTON-1706 > Project: Qpid Proton > Issue Type: Improvement > Components: proton-c > Affects Versions: proton-c-0.18.1 > Reporter: Alan Conway > Assignee: Alan Conway > Fix For: proton-c-0.20.0 > > > Allow access to the actual listening port of a pn_listener_t so that the > actual address is available when listening on port 0. > Proposed API: > {code} > /** > * Get the listening addresses of a listener. > * A listener can have more than one address for several reasons: > * - DNS host records may indicate more than one address > * - On a multi-homed host, listening on the default host "" will listen on > all local addresses. > * - Some IPv4/IPV6 configurations may expand a single address into a v4/v6 > pair. > * > * @param l points to the listener > * @param addrs an array of `pn_netaddr_t*` to be filled with pointers the > listening addresses > * Pointers are invalid after the listener closes (PN_LISTENER_CLOSE event > is handled) > * @param len is the length of the array @p addrs > * @return The actual number of addresses used for listening. This may be: > * - 0: addresses are unavailable. > * - <= @p len: all addresses were copied to @p addrs, remaining entries > were set to NULL. > * - > @p len: the first @p len addresses were copied to @p addr. > * `pn_netaddr_listen(l, NULL, 0)` returns the number of listening addresses. > */ > PNP_EXTERN const size_t pn_netaddr_listen(pn_listener_t *l, pn_netaddr_t** > addrs, size_t len); > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org