This file was derived from FreeBSD, where "in6pcb" is a macro for
"inpcb", and this struct inpcb* and struct inp6cb* are the same type. On NetBSD they are different types, so we must change the types of formal argument in IPv6-specific functions from "struct inpcb *" to "struct in6pcb*". The code didn't compile on NetBSD beforehand, if both FAST_IPSEC + INET6 were configured. This fix will cause even more short-term breakage for that case, but its a step in the right direction: it shows up what still needs to be fixed.
This commit is contained in:
parent
b4a9ea3c2d
commit
89d603f9ea
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ipsec6.h,v 1.1 2003/08/13 20:06:50 jonathan Exp $ */
|
||||
/* $NetBSD: ipsec6.h,v 1.2 2003/11/20 06:35:09 jonathan Exp $ */
|
||||
/* $FreeBSD: src/sys/netipsec/ipsec6.h,v 1.1.4.1 2003/01/24 05:11:35 sam Exp $ */
|
||||
/* $KAME: ipsec.h,v 1.44 2001/03/23 08:08:47 itojun Exp $ */
|
||||
|
||||
@ -40,6 +40,9 @@
|
||||
|
||||
#include <net/pfkeyv2.h>
|
||||
#include <netipsec/keydb.h>
|
||||
#ifdef __NetBSD__
|
||||
#include <netinet6/in6_pcb.h>
|
||||
#endif
|
||||
|
||||
#ifdef _KERNEL
|
||||
extern int ip6_esp_trans_deflev;
|
||||
@ -48,8 +51,10 @@ extern int ip6_ah_trans_deflev;
|
||||
extern int ip6_ah_net_deflev;
|
||||
extern int ip6_ipsec_ecn;
|
||||
extern int ip6_esp_randpad;
|
||||
extern struct secpolicy ip6_def_policy;
|
||||
|
||||
struct inpcb;
|
||||
struct in6pcb;
|
||||
|
||||
/* KAME compatibility shims */
|
||||
#define ipsec6_getpolicybyaddr ipsec_getpolicybyaddr
|
||||
@ -60,20 +65,33 @@ struct inpcb;
|
||||
#define out_polvio ips_out_polvio
|
||||
#define key_freesp(_x) KEY_FREESP(&_x)
|
||||
|
||||
extern int ipsec6_delete_pcbpolicy __P((struct inpcb *));
|
||||
extern int ipsec6_set_policy __P((struct inpcb *inp, int optname,
|
||||
extern int ipsec6_delete_pcbpolicy __P((struct in6pcb *));
|
||||
extern int ipsec6_set_policy __P((struct in6pcb *inp, int optname,
|
||||
caddr_t request, size_t len, int priv));
|
||||
extern int ipsec6_get_policy
|
||||
__P((struct inpcb *inp, caddr_t request, size_t len, struct mbuf **mp));
|
||||
extern int ipsec6_in_reject __P((struct mbuf *, struct inpcb *));
|
||||
__P((struct in6pcb *inp, caddr_t request, size_t len, struct mbuf **mp));
|
||||
extern int ipsec6_in_reject __P((struct mbuf *, struct in6pcb *));
|
||||
/*
|
||||
* KAME ipsec6_in_reject_so(struct mbuf*, struct so) compatibility shim
|
||||
*/
|
||||
#define ipsec6_in_reject_so(m, _so) \
|
||||
ipsec6_in_reject(m, ((_so) == NULL? NULL : sotoin6pcb(_so)))
|
||||
|
||||
struct tcp6cb;
|
||||
|
||||
extern size_t ipsec6_hdrsiz __P((struct mbuf *, u_int, struct inpcb *));
|
||||
extern size_t ipsec6_hdrsiz __P((struct mbuf *, u_int, struct in6pcb *));
|
||||
extern size_t ipsec6_hdrsiz_tcp __P((struct tcpcb*));
|
||||
|
||||
struct ip6_hdr;
|
||||
extern const char *ipsec6_logpacketstr __P((struct ip6_hdr *, u_int32_t));
|
||||
|
||||
#ifdef __NetBSD__
|
||||
/* NetBSD protosw ctlin entrypoint */
|
||||
extern void esp6_ctlinput __P((int, struct sockaddr *, void *));
|
||||
extern void ah6_ctlinput __P((int, struct sockaddr *, void *));
|
||||
extern int ipsec6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
|
||||
#endif /* __NetBSD__ */
|
||||
|
||||
struct m_tag;
|
||||
extern int ipsec6_common_input(struct mbuf **mp, int *offp, int proto);
|
||||
extern int ipsec6_common_input_cb(struct mbuf *m, struct secasvar *sav,
|
||||
|
Loading…
Reference in New Issue
Block a user