to compile it on solaris 10 update 3, both pfil and ipfilter need to be
patched
for the changes to networking functions due to trusted solaris.
see attached patches.
darren
Index: ip_fil_solaris.c
===================================================================
RCS file: /devel/CVS/IP-Filter/ip_fil_solaris.c,v
retrieving revision 2.62.2.33
diff -c -r2.62.2.33 ip_fil_solaris.c
*** ip_fil_solaris.c 21 Feb 2007 07:20:26 -0000 2.62.2.33
--- ip_fil_solaris.c 24 Feb 2007 12:59:53 -0000
***************
*** 855,861 ****
#if SOLARIS2 >= 6
dir = ire_route_lookup(fin->fin_saddr, 0xffffffff, 0, 0, NULL,
! NULL, NULL, MATCH_IRE_DSTONLY|MATCH_IRE_DEFAULT|
MATCH_IRE_RECURSIVE);
#else
dir = ire_lookup(fin->fin_saddr);
--- 855,865 ----
#if SOLARIS2 >= 6
dir = ire_route_lookup(fin->fin_saddr, 0xffffffff, 0, 0, NULL,
! NULL, NULL,
! # ifdef IP_ULP_OUT_LABELED
! NULL,
! # endif
! MATCH_IRE_DSTONLY|MATCH_IRE_DEFAULT|
MATCH_IRE_RECURSIVE);
#else
dir = ire_lookup(fin->fin_saddr);
Index: SunOS/pkt.c
===================================================================
RCS file: /devel/CVS/pfil/SunOS/pkt.c,v
retrieving revision 1.20
diff -c -r1.20 pkt.c
*** SunOS/pkt.c 21 Feb 2007 12:02:24 -0000 1.20
--- SunOS/pkt.c 24 Feb 2007 13:00:32 -0000
***************
*** 92,97 ****
--- 92,100 ----
#ifdef MATCH_IRE_DSTONLY
dir = ire_route_lookup(addr.s_addr, 0xffffffff, 0, 0,
NULL, NULL, NULL,
+ # ifdef IP_ULP_OUT_LABELED
+ NULL,
+ # endif
MATCH_IRE_DSTONLY|MATCH_IRE_DEFAULT|
MATCH_IRE_RECURSIVE);
#else
***************
*** 262,267 ****
--- 265,273 ----
#if SOLARIS2 >= 8
sif = ire_ftable_lookup(addr, 0, 0, IRE_INTERFACE, NULL, NULL, 0, 0,
+ # ifdef IP_ULP_OUT_LABELED
+ NULL,
+ # endif
MATCH_IRE_TYPE);
#else
sif = ire_ftable_lookup(addr, 0, 0, IRE_INTERFACE, NULL, NULL, 0,
***************
*** 304,310 ****
NULL, 0, NULL, ill->ill_rq, ill->ill_wq,
IRE_CACHE, ill->ill_resolver_mp, ipif,
NULL, ire->ire_mask, 0, ire->ire_ihandle,
! 0, &ire_uinfo_null);
} else {
new = ire_create_mp((uchar_t *)&dst, (uchar_t *)&mask,
(uchar_t *)&src,
--- 310,320 ----
NULL, 0, NULL, ill->ill_rq, ill->ill_wq,
IRE_CACHE, ill->ill_resolver_mp, ipif,
NULL, ire->ire_mask, 0, ire->ire_ihandle,
! 0, &ire_uinfo_null
! # ifdef IP_ULP_OUT_LABELED
! , NULL, NULL
! # endif
! );
} else {
new = ire_create_mp((uchar_t *)&dst, (uchar_t *)&mask,
(uchar_t *)&src,
***************
*** 312,318 ****
NULL, 0, NULL, ill->ill_rq, ill->ill_wq,
IRE_CACHE, ill->ill_resolver_mp, ipif,
0, sif->ire_mask, 0, sif->ire_ihandle,
! 0, &sif->ire_uinfo);
}
if (sif != NULL)
ire_refrele(sif);
--- 322,332 ----
NULL, 0, NULL, ill->ill_rq, ill->ill_wq,
IRE_CACHE, ill->ill_resolver_mp, ipif,
0, sif->ire_mask, 0, sif->ire_ihandle,
! 0, &sif->ire_uinfo
! # ifdef IP_ULP_OUT_LABELED
! , NULL, NULL
! # endif
! );
}
if (sif != NULL)
ire_refrele(sif);
Index: SunOS/qif.c
===================================================================
RCS file: /devel/CVS/pfil/SunOS/qif.c,v
retrieving revision 1.52
diff -c -r1.52 qif.c
*** SunOS/qif.c 21 Feb 2007 12:59:45 -0000 1.52
--- SunOS/qif.c 24 Feb 2007 13:00:32 -0000
***************
*** 1016,1021 ****
--- 1016,1024 ----
#ifdef MATCH_IRE_DSTONLY
dir = ire_route_lookup(ip.s_addr, 0xffffffff, 0, 0,
NULL, NULL, NULL,
+ # ifdef IP_ULP_OUT_LABELED
+ NULL,
+ # endif
MATCH_IRE_DSTONLY|MATCH_IRE_DEFAULT|
MATCH_IRE_RECURSIVE);
#else