projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
If the --user argument user[.group] contains a dot, always bail out if no group has...
[privoxy.git]
/
jbsockets.c
diff --git
a/jbsockets.c
b/jbsockets.c
index
66078bd
..
680d083
100644
(file)
--- a/
jbsockets.c
+++ b/
jbsockets.c
@@
-1,4
+1,4
@@
-const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.9
4 2011/03/27 14:02:53
fabiankeil Exp $";
+const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.9
8 2011/03/27 14:08:35
fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $
@@
-157,7
+157,8
@@
jb_socket connect_to(const char *host, int portnum, struct client_state *csp)
#else
fd = no_rfc2553_connect_to(host, portnum, csp);
#endif
#else
fd = no_rfc2553_connect_to(host, portnum, csp);
#endif
- if ((fd != JB_INVALID_SOCKET) || (errno != EINVAL))
+ if ((fd != JB_INVALID_SOCKET) || (errno == EINVAL)
+ || ((csp->fwd->forward_host == NULL) && (csp->fwd->type == SOCKS_NONE)))
{
break;
}
{
break;
}
@@
-185,7
+186,12
@@
static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
int flags;
#endif
int connect_failed;
int flags;
#endif
int connect_failed;
- int socket_error;
+ /*
+ * XXX: Initializeing it here is only necessary
+ * because not all situations are properly
+ * covered yet.
+ */
+ int socket_error = 0;
#ifdef FEATURE_ACL
struct access_control_addr dst[1];
#ifdef FEATURE_ACL
struct access_control_addr dst[1];
@@
-227,6
+233,7
@@
static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
csp->http->host_ip_addr_str = malloc(NI_MAXHOST);
if (NULL == csp->http->host_ip_addr_str)
{
csp->http->host_ip_addr_str = malloc(NI_MAXHOST);
if (NULL == csp->http->host_ip_addr_str)
{
+ freeaddrinfo(result);
log_error(LOG_LEVEL_ERROR,
"Out of memory while getting the server IP address.");
return JB_INVALID_SOCKET;
log_error(LOG_LEVEL_ERROR,
"Out of memory while getting the server IP address.");
return JB_INVALID_SOCKET;
@@
-327,7
+334,7
@@
static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
memset(&timeout, 0, sizeof(timeout));
timeout.tv_sec = 30;
memset(&timeout, 0, sizeof(timeout));
timeout.tv_sec = 30;
- /* MS Windows uses int, not SOCKET, for the 1st arg of select(). W
ie
rd! */
+ /* MS Windows uses int, not SOCKET, for the 1st arg of select(). W
ei
rd! */
if ((select((int)fd + 1, NULL, &wfds, NULL, &timeout) > 0)
&& FD_ISSET(fd, &wfds))
{
if ((select((int)fd + 1, NULL, &wfds, NULL, &timeout) > 0)
&& FD_ISSET(fd, &wfds))
{
@@
-495,7
+502,7
@@
static jb_socket no_rfc2553_connect_to(const char *host, int portnum, struct cli
tv->tv_sec = 30;
tv->tv_usec = 0;
tv->tv_sec = 30;
tv->tv_usec = 0;
- /* MS Windows uses int, not SOCKET, for the 1st arg of select(). W
ie
rd! */
+ /* MS Windows uses int, not SOCKET, for the 1st arg of select(). W
ei
rd! */
if (select((int)fd + 1, NULL, &wfds, NULL, tv) <= 0)
{
close_socket(fd);
if (select((int)fd + 1, NULL, &wfds, NULL, tv) <= 0)
{
close_socket(fd);
@@
-760,7
+767,7
@@
int bind_port(const char *hostnam, int portnum, jb_socket *pfd)
#ifdef AI_ADDRCONFIG
hints.ai_flags |= AI_ADDRCONFIG;
#endif
#ifdef AI_ADDRCONFIG
hints.ai_flags |= AI_ADDRCONFIG;
#endif
- hints.ai_protocol = 0; /* Realy any stream protocol or TCP only */
+ hints.ai_protocol = 0; /* Real
l
y any stream protocol or TCP only */
hints.ai_canonname = NULL;
hints.ai_addr = NULL;
hints.ai_next = NULL;
hints.ai_canonname = NULL;
hints.ai_addr = NULL;
hints.ai_next = NULL;
@@
-1145,7
+1152,7
@@
int accept_connection(struct client_state * csp, jb_socket fd)
* Parameters :
* 1 : host = hostname to resolve
*
* Parameters :
* 1 : host = hostname to resolve
*
- * Returns : INADDR_NONE => failure, INADDR_ANY or tcp/ip address if succesful.
+ * Returns : INADDR_NONE => failure, INADDR_ANY or tcp/ip address if succes
s
ful.
*
*********************************************************************/
unsigned long resolve_hostname_to_ip(const char *host)
*
*********************************************************************/
unsigned long resolve_hostname_to_ip(const char *host)