-const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.139 2016/12/24 16:00:49 fabiankeil Exp $";
+const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.144 2017/06/08 13:04:34 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $
*
* Purpose : Contains wrappers for system-specific sockets code,
- * so that the rest of Junkbuster can be more
+ * so that the rest of Privoxy can be more
* OS-independent. Contains #ifdefs to make this work
* on many platforms.
*
- * Copyright : Written by and Copyright (C) 2001-2016 the
+ * Copyright : Written by and Copyright (C) 2001-2017 the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
#endif /* !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA) && !defined(__OS2__) */
#ifdef HAVE_POLL
- poll_fd[0].fd = fd;
- poll_fd[0].events = POLLOUT;
+ poll_fd[0].fd = fd;
+ poll_fd[0].events = POLLOUT;
- if (poll(poll_fd, 1, 30000) > 0)
+ retval = poll(poll_fd, 1, 30000);
+ if (retval == 0)
+ {
+ if (rp->ai_next != NULL)
+ {
+ /* Log this now as we'll try another address next */
+ log_error(LOG_LEVEL_CONNECT,
+ "Could not connect to [%s]:%s: Operation timed out.",
+ csp->http->host_ip_addr_str, service);
+ }
+ else
+ {
+ /*
+ * This is the last address, don't log this now
+ * as it would result in a duplicated log message.
+ */
+ socket_error = ETIMEDOUT;
+ }
+ }
+ else if (retval > 0)
#else
/* wait for connection to complete */
FD_ZERO(&wfds);
{
char buf[10];
int no_data_waiting;
-
#ifdef HAVE_POLL
int poll_result;
struct pollfd poll_fd[1];