diff options
Diffstat (limited to 'sys/contrib/ipfilter/netinet/ip_log.c')
-rw-r--r-- | sys/contrib/ipfilter/netinet/ip_log.c | 67 |
1 files changed, 20 insertions, 47 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_log.c b/sys/contrib/ipfilter/netinet/ip_log.c index 8adc410..5968f46 100644 --- a/sys/contrib/ipfilter/netinet/ip_log.c +++ b/sys/contrib/ipfilter/netinet/ip_log.c @@ -1,11 +1,9 @@ /* - * Copyright (C) 1997-2000 by Darren Reed. + * Copyright (C) 1997-2001 by Darren Reed. * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and due credit is given - * to the original author and the contributors. + * See the IPFILTER.LICENCE file for details on licencing. * - * $Id: ip_log.c,v 2.5.2.2 2000/08/13 03:50:41 darrenr Exp $ + * $Id: ip_log.c,v 2.5.2.5 2001/06/26 10:43:14 darrenr Exp $ */ #include <sys/param.h> #if defined(KERNEL) && !defined(_KERNEL) @@ -21,7 +19,13 @@ # endif # else # ifdef KLD_MODULE -# include <osreldate.h> +# ifndef __FreeBSD_cc_version +# include <osreldate.h> +# else +# if __FreeBSD_cc_version < 430000 +# include <osreldate.h> +# endif +# endif # endif # endif #endif @@ -45,7 +49,7 @@ # include <sys/ioctl.h> # endif # include <sys/time.h> -# if defined(_KERNEL) && !defined(linux) +# if defined(_KERNEL) # include <sys/systm.h> # endif # include <sys/uio.h> @@ -55,9 +59,7 @@ # else # include <sys/dir.h> # endif -# ifndef linux -# include <sys/mbuf.h> -# endif +# include <sys/mbuf.h> # else # include <sys/filio.h> # include <sys/cred.h> @@ -69,9 +71,7 @@ # include <sys/dditypes.h> # include <sys/cmn_err.h> # endif -# ifndef linux -# include <sys/protosw.h> -# endif +# include <sys/protosw.h> # include <sys/socket.h> # include <net/if.h> @@ -89,7 +89,7 @@ # include <sys/hashing.h> # endif # endif -# if !defined(linux) && !(defined(__sgi) && !defined(IFF_DRVRLOCK)) /*IRIX<6*/ +# if !(defined(__sgi) && !defined(IFF_DRVRLOCK)) /*IRIX<6*/ # include <netinet/in_var.h> # endif # include <netinet/in_systm.h> @@ -97,9 +97,7 @@ # include <netinet/tcp.h> # include <netinet/udp.h> # include <netinet/ip_icmp.h> -# ifndef linux -# include <netinet/ip_var.h> -# endif +# include <netinet/ip_var.h> # ifndef _KERNEL # include <syslog.h> # endif @@ -130,9 +128,6 @@ extern kcondvar_t iplwait; iplog_t **iplh[IPL_LOGMAX+1], *iplt[IPL_LOGMAX+1], *ipll[IPL_LOGMAX+1]; size_t iplused[IPL_LOGMAX+1]; static fr_info_t iplcrc[IPL_LOGMAX+1]; -# ifdef linux -static struct wait_queue *iplwait[IPL_LOGMAX+1]; -# endif /* @@ -229,9 +224,7 @@ mb_t *m; (defined(OpenBSD) && (OpenBSD >= 199603)) strncpy(ipfl.fl_ifname, ifp->if_xname, IFNAMSIZ); # else -# ifndef linux ipfl.fl_unit = (u_char)ifp->if_unit; -# endif if ((ipfl.fl_ifname[0] = ifp->if_name[0])) if ((ipfl.fl_ifname[1] = ifp->if_name[1])) if ((ipfl.fl_ifname[2] = ifp->if_name[2])) @@ -337,7 +330,7 @@ int *types, cnt; ipl->ipl_count = 1; ipl->ipl_next = NULL; ipl->ipl_dsize = len; -# if SOLARIS || defined(sun) || defined(linux) +# if SOLARIS || defined(sun) uniqtime((struct timeval *)&ipl->ipl_sec); # else # if BSD >= 199306 || defined(__FreeBSD__) || defined(__sgi) @@ -370,11 +363,7 @@ int *types, cnt; mutex_exit(&ipl_mutex); # else MUTEX_EXIT(&ipl_mutex); -# ifdef linux - wake_up_interruptible(&iplwait[dev]); -# else wakeup(&iplh[dev]); -# endif # endif return 1; } @@ -399,8 +388,7 @@ struct uio *uio; return ENXIO; if (!uio->uio_resid) return 0; - if ((uio->uio_resid < sizeof(iplog_t)) || - (uio->uio_resid > IPLLOGSIZE)) + if (uio->uio_resid < sizeof(iplog_t)) return EINVAL; /* @@ -417,19 +405,13 @@ struct uio *uio; return EINTR; } # else -# ifdef linux - interruptible_sleep_on(&iplwait[unit]); - if (current->signal & ~current->blocked) - return -EINTR; -# else MUTEX_EXIT(&ipl_mutex); - SPL_X(s); error = SLEEP(&iplh[unit], "ipl sleep"); - if (error) + if (error) { + SPL_X(s); return error; - SPL_NET(s); + } MUTEX_ENTER(&ipl_mutex); -# endif /* linux */ # endif /* SOLARIS */ } @@ -447,10 +429,8 @@ struct uio *uio; iplt[unit] = ipl->ipl_next; iplused[unit] -= dlen; MUTEX_EXIT(&ipl_mutex); - SPL_X(s); error = UIOMOVE((caddr_t)ipl, dlen, UIO_READ, uio); if (error) { - SPL_NET(s); MUTEX_ENTER(&ipl_mutex); ipl->ipl_next = iplt[unit]; iplt[unit] = ipl; @@ -458,7 +438,6 @@ struct uio *uio; break; } KFREES((caddr_t)ipl, dlen); - SPL_NET(s); MUTEX_ENTER(&ipl_mutex); } if (!iplt[unit]) { @@ -469,13 +448,7 @@ struct uio *uio; MUTEX_EXIT(&ipl_mutex); SPL_X(s); -# ifdef linux - if (!error) - return (int)copied; - return -error; -# else return error; -# endif } |