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 $ */
|
/* $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 $ */
|
/* $KAME: ipsec.h,v 1.44 2001/03/23 08:08:47 itojun Exp $ */
|
||||||
|
|
||||||
@ -40,6 +40,9 @@
|
|||||||
|
|
||||||
#include <net/pfkeyv2.h>
|
#include <net/pfkeyv2.h>
|
||||||
#include <netipsec/keydb.h>
|
#include <netipsec/keydb.h>
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <netinet6/in6_pcb.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
extern int ip6_esp_trans_deflev;
|
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_ah_net_deflev;
|
||||||
extern int ip6_ipsec_ecn;
|
extern int ip6_ipsec_ecn;
|
||||||
extern int ip6_esp_randpad;
|
extern int ip6_esp_randpad;
|
||||||
|
extern struct secpolicy ip6_def_policy;
|
||||||
|
|
||||||
struct inpcb;
|
struct inpcb;
|
||||||
|
struct in6pcb;
|
||||||
|
|
||||||
/* KAME compatibility shims */
|
/* KAME compatibility shims */
|
||||||
#define ipsec6_getpolicybyaddr ipsec_getpolicybyaddr
|
#define ipsec6_getpolicybyaddr ipsec_getpolicybyaddr
|
||||||
@ -60,20 +65,33 @@ struct inpcb;
|
|||||||
#define out_polvio ips_out_polvio
|
#define out_polvio ips_out_polvio
|
||||||
#define key_freesp(_x) KEY_FREESP(&_x)
|
#define key_freesp(_x) KEY_FREESP(&_x)
|
||||||
|
|
||||||
extern int ipsec6_delete_pcbpolicy __P((struct inpcb *));
|
extern int ipsec6_delete_pcbpolicy __P((struct in6pcb *));
|
||||||
extern int ipsec6_set_policy __P((struct inpcb *inp, int optname,
|
extern int ipsec6_set_policy __P((struct in6pcb *inp, int optname,
|
||||||
caddr_t request, size_t len, int priv));
|
caddr_t request, size_t len, int priv));
|
||||||
extern int ipsec6_get_policy
|
extern int ipsec6_get_policy
|
||||||
__P((struct inpcb *inp, caddr_t request, size_t len, struct mbuf **mp));
|
__P((struct in6pcb *inp, caddr_t request, size_t len, struct mbuf **mp));
|
||||||
extern int ipsec6_in_reject __P((struct mbuf *, struct inpcb *));
|
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;
|
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;
|
struct ip6_hdr;
|
||||||
extern const char *ipsec6_logpacketstr __P((struct ip6_hdr *, u_int32_t));
|
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;
|
struct m_tag;
|
||||||
extern int ipsec6_common_input(struct mbuf **mp, int *offp, int proto);
|
extern int ipsec6_common_input(struct mbuf **mp, int *offp, int proto);
|
||||||
extern int ipsec6_common_input_cb(struct mbuf *m, struct secasvar *sav,
|
extern int ipsec6_common_input_cb(struct mbuf *m, struct secasvar *sav,
|
||||||
|
Loading…
Reference in New Issue
Block a user