X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=inline;f=gateway.c;h=a8da953d5f357fbc6a868a63bc0faf0336e1050f;hb=7726b37a51a3b1e0725c6c7e7b549569a0b30f26;hp=bb4c6fe78aaebb2f2e43dce454f771f27574e16d;hpb=ce406e45881121798801c9d6fa7a0fffcb0d725d;p=privoxy.git diff --git a/gateway.c b/gateway.c index bb4c6fe7..a8da953d 100644 --- a/gateway.c +++ b/gateway.c @@ -1,4 +1,4 @@ -const char gateway_rcs[] = "$Id: gateway.c,v 1.68 2011/02/14 16:03:03 fabiankeil Exp $"; +const char gateway_rcs[] = "$Id: gateway.c,v 1.72 2011/03/27 14:00:36 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/gateway.c,v $ @@ -88,11 +88,12 @@ static jb_socket socks5_connect(const struct forward_spec *fwd, int target_port, struct client_state *csp); - -#define SOCKS_REQUEST_GRANTED 90 -#define SOCKS_REQUEST_REJECT 91 -#define SOCKS_REQUEST_IDENT_FAILED 92 -#define SOCKS_REQUEST_IDENT_CONFLICT 93 +enum { + SOCKS4_REQUEST_GRANTED = 90, + SOCKS4_REQUEST_REJECT = 91, + SOCKS4_REQUEST_IDENT_FAILED = 92, + SOCKS4_REQUEST_IDENT_CONFLICT = 93 +}; enum { SOCKS5_REQUEST_GRANTED = 0, @@ -808,12 +809,8 @@ static jb_socket socks4_connect(const struct forward_spec * fwd, if (sfd == JB_INVALID_SOCKET) { - /* - * XXX: connect_to should fill in the exact reason. - * Most likely resolving the IP of the forwarder failed. - */ - errstr = "connect_to failed: see logfile for details"; - err = 1; + /* The error an its reason have already been logged by connect_to() */ + return(JB_INVALID_SOCKET); } else if (!data_is_available(sfd, csp->config->socket_timeout)) { @@ -852,18 +849,18 @@ static jb_socket socks4_connect(const struct forward_spec * fwd, switch (s->cd) { - case SOCKS_REQUEST_GRANTED: + case SOCKS4_REQUEST_GRANTED: return(sfd); - case SOCKS_REQUEST_REJECT: + case SOCKS4_REQUEST_REJECT: errstr = "SOCKS request rejected or failed."; errno = EINVAL; break; - case SOCKS_REQUEST_IDENT_FAILED: + case SOCKS4_REQUEST_IDENT_FAILED: errstr = "SOCKS request rejected because " "SOCKS server cannot connect to identd on the client."; errno = EACCES; break; - case SOCKS_REQUEST_IDENT_CONFLICT: + case SOCKS4_REQUEST_IDENT_CONFLICT: errstr = "SOCKS request rejected because " "the client program and identd report " "different user-ids."; @@ -1102,7 +1099,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd, } else if (server_size > 20) { - /* This is somewhat unexpected but doesn't realy matter. */ + /* This is somewhat unexpected but doesn't really matter. */ log_error(LOG_LEVEL_CONNECT, "socks5_connect: read %d bytes " "from socks server. Would have accepted up to %d.", server_size, sizeof(sbuf));