mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-12 14:29:28 +00:00
fix conflicts
This commit is contained in:
parent
3cc13eb5b1
commit
fe646be69a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=60850
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 1998 by Darren Reed & Guido van Rooij.
|
||||
* Copyright (C) 1998-2000 by Darren Reed & Guido van Rooij.
|
||||
*
|
||||
* Redistribution and use in source and binary forms are permitted
|
||||
* provided that this notice is preserved and due credit is given
|
||||
@ -20,7 +20,7 @@ static const char rcsid[] = "@(#)$FreeBSD$";
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
#endif
|
||||
#if defined(_KERNEL) && (__FreeBSD_version >= 220000)
|
||||
#if (defined(KERNEL) || defined(_KERNEL)) && (__FreeBSD_version >= 220000)
|
||||
# include <sys/filio.h>
|
||||
# include <sys/fcntl.h>
|
||||
#else
|
||||
@ -124,11 +124,12 @@ static struct wait_queue *ipfauthwait = NULL;
|
||||
int fr_authsize = FR_NUMAUTH;
|
||||
int fr_authused = 0;
|
||||
int fr_defaultauthage = 600;
|
||||
int fr_auth_lock = 0;
|
||||
fr_authstat_t fr_authstats;
|
||||
frauth_t fr_auth[FR_NUMAUTH];
|
||||
static frauth_t fr_auth[FR_NUMAUTH];
|
||||
mb_t *fr_authpkts[FR_NUMAUTH];
|
||||
int fr_authstart = 0, fr_authend = 0, fr_authnext = 0;
|
||||
frauthent_t *fae_list = NULL;
|
||||
static int fr_authstart = 0, fr_authend = 0, fr_authnext = 0;
|
||||
static frauthent_t *fae_list = NULL;
|
||||
frentry_t *ipauth = NULL;
|
||||
|
||||
|
||||
@ -145,6 +146,9 @@ fr_info_t *fin;
|
||||
u_32_t pass;
|
||||
int i;
|
||||
|
||||
if (fr_auth_lock)
|
||||
return 0;
|
||||
|
||||
READ_ENTER(&ipf_auth);
|
||||
for (i = fr_authstart; i != fr_authend; ) {
|
||||
/*
|
||||
@ -197,19 +201,19 @@ fr_info_t *fin;
|
||||
* If we do, store it and wake up any user programs which are waiting to
|
||||
* hear about these events.
|
||||
*/
|
||||
int fr_newauth(m, fin, ip
|
||||
#if defined(_KERNEL) && SOLARIS
|
||||
, qif)
|
||||
qif_t *qif;
|
||||
#else
|
||||
)
|
||||
#endif
|
||||
int fr_newauth(m, fin, ip)
|
||||
mb_t *m;
|
||||
fr_info_t *fin;
|
||||
ip_t *ip;
|
||||
{
|
||||
#if defined(_KERNEL) && SOLARIS
|
||||
qif_t *qif = fin->fin_qif;
|
||||
#endif
|
||||
int i;
|
||||
|
||||
if (fr_auth_lock)
|
||||
return 0;
|
||||
|
||||
WRITE_ENTER(&ipf_auth);
|
||||
if (fr_authstart > fr_authend) {
|
||||
fr_authstats.fas_nospace++;
|
||||
@ -239,14 +243,15 @@ ip_t *ip;
|
||||
* them.
|
||||
*/
|
||||
# if SOLARIS && defined(_KERNEL)
|
||||
if (ip == (ip_t *)m->b_rptr)
|
||||
if ((ip == (ip_t *)m->b_rptr) && (ip->ip_v == 4))
|
||||
# endif
|
||||
{
|
||||
register u_short bo;
|
||||
|
||||
bo = ip->ip_len;
|
||||
ip->ip_len = htons(bo);
|
||||
# if !SOLARIS /* 4.4BSD converts this ip_input.c, but I don't in solaris.c */
|
||||
# if !SOLARIS && !defined(__NetBSD__)
|
||||
/* 4.4BSD converts this ip_input.c, but I don't in solaris.c */
|
||||
bo = ip->ip_id;
|
||||
ip->ip_id = htons(bo);
|
||||
# endif
|
||||
@ -273,7 +278,7 @@ ip_t *ip;
|
||||
|
||||
int fr_auth_ioctl(data, cmd, fr, frptr)
|
||||
caddr_t data;
|
||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#if defined(__NetBSD__) || defined(__OpenBSD__) || (FreeBSD_version >= 300003)
|
||||
u_long cmd;
|
||||
#else
|
||||
int cmd;
|
||||
@ -281,11 +286,8 @@ int cmd;
|
||||
frentry_t *fr, **frptr;
|
||||
{
|
||||
mb_t *m;
|
||||
#if defined(_KERNEL)
|
||||
# if !SOLARIS
|
||||
#if defined(_KERNEL) && !SOLARIS
|
||||
struct ifqueue *ifq;
|
||||
int s;
|
||||
# endif
|
||||
#endif
|
||||
frauth_t auth, *au = &auth;
|
||||
frauthent_t *fae, **faep;
|
||||
@ -293,12 +295,17 @@ frentry_t *fr, **frptr;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case SIOCSTLCK :
|
||||
error = fr_lock(data, &fr_auth_lock);
|
||||
break;
|
||||
case SIOCINIFR :
|
||||
case SIOCRMIFR :
|
||||
case SIOCADIFR :
|
||||
error = EINVAL;
|
||||
break;
|
||||
case SIOCINAFR :
|
||||
error = EINVAL;
|
||||
break;
|
||||
case SIOCRMAFR :
|
||||
case SIOCADAFR :
|
||||
for (faep = &fae_list; (fae = *faep); )
|
||||
@ -319,8 +326,8 @@ frentry_t *fr, **frptr;
|
||||
} else {
|
||||
KMALLOC(fae, frauthent_t *);
|
||||
if (fae != NULL) {
|
||||
IRCOPY((char *)data, (char *)&fae->fae_fr,
|
||||
sizeof(fae->fae_fr));
|
||||
bcopy((char *)fr, (char *)&fae->fae_fr,
|
||||
sizeof(*fr));
|
||||
WRITE_ENTER(&ipf_auth);
|
||||
fae->fae_age = fr_defaultauthage;
|
||||
fae->fae_fr.fr_hits = 0;
|
||||
@ -338,15 +345,18 @@ frentry_t *fr, **frptr;
|
||||
READ_ENTER(&ipf_auth);
|
||||
fr_authstats.fas_faelist = fae_list;
|
||||
RWLOCK_EXIT(&ipf_auth);
|
||||
IWCOPY((char *)&fr_authstats, data, sizeof(fr_authstats));
|
||||
error = IWCOPYPTR((char *)&fr_authstats, data,
|
||||
sizeof(fr_authstats));
|
||||
break;
|
||||
case SIOCAUTHW:
|
||||
fr_authioctlloop:
|
||||
READ_ENTER(&ipf_auth);
|
||||
if ((fr_authnext != fr_authend) && fr_authpkts[fr_authnext]) {
|
||||
IWCOPY((char *)&fr_auth[fr_authnext], data,
|
||||
sizeof(fr_info_t));
|
||||
error = IWCOPYPTR((char *)&fr_auth[fr_authnext], data,
|
||||
sizeof(fr_info_t));
|
||||
RWLOCK_EXIT(&ipf_auth);
|
||||
if (error)
|
||||
break;
|
||||
WRITE_ENTER(&ipf_auth);
|
||||
fr_authnext++;
|
||||
if (fr_authnext == FR_NUMAUTH)
|
||||
@ -377,9 +387,10 @@ frentry_t *fr, **frptr;
|
||||
goto fr_authioctlloop;
|
||||
break;
|
||||
case SIOCAUTHR:
|
||||
IRCOPY(data, (caddr_t)&auth, sizeof(auth));
|
||||
error = IRCOPYPTR(data, (caddr_t)&auth, sizeof(auth));
|
||||
if (error)
|
||||
return error;
|
||||
WRITE_ENTER(&ipf_auth);
|
||||
i = au->fra_index;
|
||||
if ((i < 0) || (i > FR_NUMAUTH) ||
|
||||
(fr_auth[i].fra_info.fin_id != au->fra_info.fin_id)) {
|
||||
RWLOCK_EXIT(&ipf_auth);
|
||||
@ -391,7 +402,6 @@ frentry_t *fr, **frptr;
|
||||
fr_authpkts[i] = NULL;
|
||||
#ifdef _KERNEL
|
||||
RWLOCK_EXIT(&ipf_auth);
|
||||
SPL_NET(s);
|
||||
# ifndef linux
|
||||
if (m && au->fra_info.fin_out) {
|
||||
# if SOLARIS
|
||||
@ -457,7 +467,6 @@ frentry_t *fr, **frptr;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
SPL_X(s);
|
||||
#endif /* _KERNEL */
|
||||
break;
|
||||
default :
|
||||
@ -511,6 +520,9 @@ void fr_authexpire()
|
||||
int s;
|
||||
#endif
|
||||
|
||||
if (fr_auth_lock)
|
||||
return;
|
||||
|
||||
SPL_NET(s);
|
||||
WRITE_ENTER(&ipf_auth);
|
||||
for (i = 0, fra = fr_auth; i < FR_NUMAUTH; i++, fra++) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 1997-1998 by Darren Reed & Guido Van Rooij.
|
||||
* Copyright (C) 1997-2000 by Darren Reed & Guido Van Rooij.
|
||||
*
|
||||
* Redistribution and use in source and binary forms are permitted
|
||||
* provided that this notice is preserved and due credit is given
|
||||
@ -51,15 +51,12 @@ extern int fr_authstart;
|
||||
extern int fr_authend;
|
||||
extern int fr_authsize;
|
||||
extern int fr_authused;
|
||||
extern int fr_auth_lock;
|
||||
extern u_32_t fr_checkauth __P((ip_t *, fr_info_t *));
|
||||
extern void fr_authexpire __P((void));
|
||||
extern void fr_authunload __P((void));
|
||||
extern mb_t *fr_authpkts[];
|
||||
#if defined(_KERNEL) && SOLARIS
|
||||
extern int fr_newauth __P((mb_t *, fr_info_t *, ip_t *, qif_t *));
|
||||
#else
|
||||
extern int fr_newauth __P((mb_t *, fr_info_t *, ip_t *));
|
||||
#endif
|
||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
extern int fr_auth_ioctl __P((caddr_t, u_long, frentry_t *, frentry_t **));
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user