X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=jbsockets.c;h=7d4da5e8a03a3375ca9a56aab8b64f01aaea6971;hp=c5f73c9c918e1278a683f7147f20da88a82828d3;hb=9783b8f9f84f1c44312bae5a63343bc3f9e2f98f;hpb=c75584ebcc79f939fb4ec9c8f842cef6692640c7 diff --git a/jbsockets.c b/jbsockets.c index c5f73c9c..7d4da5e8 100644 --- a/jbsockets.c +++ b/jbsockets.c @@ -1,7 +1,7 @@ -const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.1 2001/05/13 21:57:06 administrator Exp $"; +const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.6 2001/05/26 17:28:32 jongfoster Exp $"; /********************************************************************* * - * File : $Source: /home/administrator/cvs/ijb/jbsockets.c,v $ + * 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 @@ -35,6 +35,26 @@ const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.1 2001/05/13 21:57:06 adminis * * Revisions : * $Log: jbsockets.c,v $ + * Revision 1.6 2001/05/26 17:28:32 jongfoster + * Fixed LOG_LEVEL_LOG + * + * Revision 1.5 2001/05/26 15:26:15 jongfoster + * ACL feature now provides more security by immediately dropping + * connections from untrusted hosts. + * + * Revision 1.4 2001/05/26 00:37:42 jongfoster + * Cosmetic indentation correction. + * + * Revision 1.3 2001/05/25 21:57:54 jongfoster + * Now gives a warning under Windows if you try to bind + * it to a port that's already in use. + * + * Revision 1.2 2001/05/17 23:01:01 oes + * - Cleaned CRLF's from the sources and related files + * + * Revision 1.1.1.1 2001/05/15 13:58:54 oes + * Initial import of version 2.9.3 source tree + * * *********************************************************************/ @@ -75,6 +95,7 @@ const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.1 2001/05/13 21:57:06 adminis #include "project.h" #include "jbsockets.h" #include "filters.h" +#include "errlog.h" const char jbsockets_h_rcs[] = JBSOCKETS_H_VERSION; @@ -106,7 +127,7 @@ int connect_to(char *host, int portnum, struct client_state *csp) #endif /* !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA) */ #ifdef ACL_FILES - struct access_control_addr src[1], dst[1]; + struct access_control_addr dst[1]; #endif /* def ACL_FILES */ memset((char *)&inaddr, 0, sizeof inaddr); @@ -117,13 +138,10 @@ int connect_to(char *host, int portnum, struct client_state *csp) } #ifdef ACL_FILES - src->addr = csp->ip_addr_long; - src->port = 0; - dst->addr = ntohl(addr); dst->port = portnum; - if (block_acl(src, dst, csp)) + if (block_acl(dst, csp)) { errno = EPERM; return(-1); @@ -154,7 +172,7 @@ int connect_to(char *host, int portnum, struct client_state *csp) } #endif /* def TCP_NODELAY */ -#if !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA) +#if !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA) if ((flags = fcntl(fd, F_GETFL, 0)) != -1) { flags |= O_NDELAY; @@ -224,9 +242,12 @@ int connect_to(char *host, int portnum, struct client_state *csp) *********************************************************************/ int write_socket(int fd, const char *buf, int len) { - if (len <= 0) return(0); + if (len <= 0) + { + return(0); + } - /* if (DEBUG(LOG)) fwrite(buf, n, 1, logfp); */ + log_error(LOG_LEVEL_LOG, "%N", len, buf); #if defined(_WIN32) || defined(__BEOS__) || defined(AMIGA) return( send(fd, buf, len, 0)); @@ -293,8 +314,8 @@ void close_socket(int fd) { #if defined(_WIN32) || defined(__BEOS__) closesocket(fd); -#elif defined(AMIGA) - CloseSocket(fd); +#elif defined(AMIGA) + CloseSocket(fd); #else close(fd); #endif @@ -344,7 +365,15 @@ int bind_port(const char *hostnam, int portnum) return(-1); } +#ifndef _WIN32 + /* + * FIXME: This is not needed for Win32 - in fact, it stops + * duplicate instances of JunkBuster from being caught. + * Is this really needed under UNIX, or should it be taked out? + * -- Jon + */ setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one)); +#endif /* ndef _WIN32 */ if (bind (fd, (struct sockaddr *)&inaddr, sizeof(inaddr)) < 0) {