On Mon, 30 Jul 2012, KIYOHARA Takashi wrote:
Module Name: src Committed By: kiyohara Date: Mon Jul 30 13:50:06 UTC 2012Modified Files: src/sys/arch/evbmips/conf: ALCHEMY MALTA Log Message: Enable INET6. Avoid build failed when enable ipf and disable INET6.
While this might be a stop-gap measure to get the build working, the "right" action is to fix ipf so it builds without INET6.
I have previously provided patches (attached again here) to fix this, and those fixes have been sent upstream (to darrenr@). As was already pointed out, my patches should not be committed as-is due to my use of variable initialization in the declaration... :)
------------------------------------------------------------------------- | Paul Goyette | PGP Key fingerprint: | E-mail addresses: | | Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com | | Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net | | Kernel Developer | | pgoyette at netbsd.org | -------------------------------------------------------------------------
Index: ip_ftp_pxy.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/ipf/netinet/ip_ftp_pxy.c,v retrieving revision 1.3 diff -u -p -r1.3 ip_ftp_pxy.c --- ip_ftp_pxy.c 22 Jul 2012 14:27:51 -0000 1.3 +++ ip_ftp_pxy.c 25 Jul 2012 02:40:57 -0000 @@ -834,7 +834,7 @@ ipf_p_ftp_pasvreply(ipf_ftp_softc_t *sof ipnat_t *ipn; fr_info_t fi; ftpside_t *f; - nat_t *nat2; + nat_t *nat2 = NULL; mb_t *m; softc = fin->fin_main_soft; @@ -1669,8 +1669,10 @@ ipf_p_ftp_eprt(ipf_ftp_softc_t *softf, f if (f->ftps_rptr[5] == f->ftps_rptr[7]) { if (f->ftps_rptr[6] == '1' && nat->nat_v[0] == 4) return ipf_p_ftp_eprt4(softf, fin, ip, nat, ftp, dlen); +#ifdef USE_INET6 if (f->ftps_rptr[6] == '2' && nat->nat_v[0] == 6) return ipf_p_ftp_eprt6(softf, fin, ip, nat, ftp, dlen); +#endif } return 0; } @@ -1902,7 +1904,7 @@ ipf_p_ftp_epsv(ipf_ftp_softc_t *softf, f newbuf, s); } - +#ifdef USE_INET6 int ipf_p_ftp_eprt6(ipf_ftp_softc_t *softf, fr_info_t *fin, ip_t *ip, nat_t *nat, ftpinfo_t *ftp, int dlen) @@ -2107,3 +2109,4 @@ ipf_p_ftp_eprt6(ipf_ftp_softc_t *softf, f->ftps_cmd = FTPXY_C_EPRT; return ipf_p_ftp_addport(softf, fin, ip, nat, ftp, dlen, port, inc); } +#endif /* USE_INET6 */ Index: ip_nat.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/ipf/netinet/ip_nat.c,v retrieving revision 1.5 diff -u -p -r1.5 ip_nat.c --- ip_nat.c 22 Jul 2012 16:40:40 -0000 1.5 +++ ip_nat.c 25 Jul 2012 02:40:57 -0000 @@ -2531,9 +2531,11 @@ ipf_nat_delrule(ipf_main_softc_t *softc, case 4 : ipf_nat_delrdr(softn, np); break; +#ifdef USE_INET6 case 6 : ipf_nat6_delrdr(softn, np); break; +#endif } } if (np->in_redir & (NAT_MAPBLK|NAT_MAP)) { @@ -2542,9 +2544,11 @@ ipf_nat_delrule(ipf_main_softc_t *softc, case 4 : ipf_nat_delmap(softn, np); break; +#ifdef USE_INET6 case 6 : ipf_nat6_delmap(softn, np); break; +#endif } } } @@ -7969,18 +7973,6 @@ ipf_nat_rehash(ipf_main_softc_t *softc, } softn->ipf_nat_stats.ns_side[1].ns_bucketlen = bucketlens[1]; - if (softn->ipf_nat_stats.ns_side6[0].ns_bucketlen != NULL) { - KFREES(softn->ipf_nat_stats.ns_side6[0].ns_bucketlen, - softn->ipf_nat_table_sz * sizeof(u_int)); - } - softn->ipf_nat_stats.ns_side6[0].ns_bucketlen = bucketlens[0]; - - if (softn->ipf_nat_stats.ns_side6[1].ns_bucketlen != NULL) { - KFREES(softn->ipf_nat_stats.ns_side6[1].ns_bucketlen, - softn->ipf_nat_table_sz * sizeof(u_int)); - } - softn->ipf_nat_stats.ns_side6[1].ns_bucketlen = bucketlens[1]; - softn->ipf_nat_maxbucket = maxbucket; softn->ipf_nat_table_sz = newsize; /* @@ -7990,8 +7982,6 @@ ipf_nat_rehash(ipf_main_softc_t *softc, */ softn->ipf_nat_stats.ns_side[0].ns_inuse = 0; softn->ipf_nat_stats.ns_side[1].ns_inuse = 0; - softn->ipf_nat_stats.ns_side6[0].ns_inuse = 0; - softn->ipf_nat_stats.ns_side6[1].ns_inuse = 0; for (nat = softn->ipf_nat_instances; nat != NULL; nat = nat->nat_next) { nat->nat_hnext[0] = NULL; Index: ip_rcmd_pxy.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/ipf/netinet/ip_rcmd_pxy.c,v retrieving revision 1.3 diff -u -p -r1.3 ip_rcmd_pxy.c --- ip_rcmd_pxy.c 22 Jul 2012 14:27:51 -0000 1.3 +++ ip_rcmd_pxy.c 25 Jul 2012 02:40:57 -0000 @@ -145,9 +145,11 @@ ipf_p_rcmd_portmsg(fr_info_t *fin, ap_se fr_info_t fi; u_short sp; nat_t *nat2; +#ifdef USE_INET6 ip6_t *ip6; +#endif int tcpsz; - int slen; + int slen = 0; ip_t *ip; mb_t *m; @@ -156,7 +158,9 @@ ipf_p_rcmd_portmsg(fr_info_t *fin, ap_se m = fin->fin_m; ip = fin->fin_ip; tcpsz = TCP_OFF(tcp) << 2; +#ifdef USE_INET6 ip6 = (ip6_t *)fin->fin_ip; +#endif softc = fin->fin_main_soft; softn = softc->ipf_nat_soft; off = (char *)tcp - (char *)ip + tcpsz + fin->fin_ipoff; Index: ip_tftp_pxy.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/ipf/netinet/ip_tftp_pxy.c,v retrieving revision 1.4 diff -u -p -r1.4 ip_tftp_pxy.c --- ip_tftp_pxy.c 22 Jul 2012 16:43:59 -0000 1.4 +++ ip_tftp_pxy.c 25 Jul 2012 02:40:57 -0000 @@ -279,8 +279,8 @@ ipf_p_tftp_backchannel(fr_info_t *fin, a tftpinfo_t *ti; udphdr_t udp; fr_info_t fi; - u_short slen; - nat_t *nat2; + u_short slen = 0; + nat_t *nat2 = NULL; int nflags; ip_t *ip; int dir; @@ -347,8 +347,10 @@ ipf_p_tftp_backchannel(fr_info_t *fin, a MUTEX_ENTER(&softn->ipf_nat_new); if (nat->nat_v[0] == 4) nat2 = ipf_nat_add(&fi, ti->ti_rule, NULL, nflags, dir); +#ifdef USE_INET6 else nat2 = ipf_nat6_add(&fi, ti->ti_rule, NULL, nflags, dir); +#endif MUTEX_EXIT(&softn->ipf_nat_new); if (nat2 != NULL) { (void) ipf_nat_proto(&fi, nat2, IPN_UDP);