-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Per the API documentation, xcm_local_addr() and xcm_remote_addr() should set errno.
In many cases in the actual implementation, where NULL is being returned, errno is not modified. This is true for all transports.
xcm_local_addr() and xcm_remote_addr() should probably be made to follow the API contract, and always set errno. In the case the error is recoverable, EAGAIN should probably be used. An alternative approach would be to just set errno to ENOENT in case the address is not available, regardless of reason. The address retrieval functions are not the proper means to discover bad connection state, so that's fine for a usability point of view.
The API documentation should make clear that failure to retrieve the local or remote address is not necessarily a terminal error (i.e., the address may be available on a later stage, e.g., after name resolution has finished).