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

Reply via email to