Re: Issuing connect(2) after select(2) on non-blocking socket
site_archiver@lists.apple.com Delivered-To: macnetworkprog@lists.apple.com User-agent: Roundcube Webmail/1.1.5 If the socket says it's ready to read or write, then I would read or write whatever you planned on reading or writing, but be prepared to handle an error. I think you will find that more robust than looking for particular errors at particular times. On 2017-06-26 15:52, Carl Hoefs wrote:
On Jun 26, 2017, at 3:37 PM, Dado Colussi <dado.colussi@gmail.com> wrote:
After the connect() returns EINPROGRESS, and after the select() indicates 1 descriptor ready for write, getsockopt() returns status=0, errno=0:
status = getsockopt(sockfd,SOL_SOCKET,SO_ERROR,&error,&len);
getsockopt() returns 0 on successful retrieval of the option value. So that's good.
The option value is stored in memory pointed to by the fourth parameter (named 'error', above). Hence the variable error == ECONNREFUSED.
Yes, it does indeed return ECONNREFUSED, errno = 61, "Interrupted system call" into my error variable! (I thought it would also set errno, but it doesn't.) Thanks; this is exactly what I was looking for! -Carl _______________________________________________ Do not post admin requests to the list. They will be ignored. Macnetworkprog mailing list (Macnetworkprog@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/macnetworkprog/tim%40ivisit.com This email sent to tim@ivisit.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Macnetworkprog mailing list (Macnetworkprog@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/macnetworkprog/site_archiver%40lists... This email sent to site_archiver@lists.apple.com
participants (1)
-
tim@ivisit.com