-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
*
* 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
+ *
*
*********************************************************************/
\f
#include "project.h"
#include "jbsockets.h"
#include "filters.h"
+#include "errlog.h"
const char jbsockets_h_rcs[] = JBSOCKETS_H_VERSION;
#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);
}
#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);
}
#endif /* def TCP_NODELAY */
-#if !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA)\r
+#if !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA)
if ((flags = fcntl(fd, F_GETFL, 0)) != -1)
{
flags |= O_NDELAY;
*********************************************************************/
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));
{
#if defined(_WIN32) || defined(__BEOS__)
closesocket(fd);
-#elif defined(AMIGA)\r
- CloseSocket(fd); \r
+#elif defined(AMIGA)
+ CloseSocket(fd);
#else
close(fd);
#endif
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)
{