tcp_respond(NULL, ip6, (struct tcphdr *)(ip6 + 1),
tcp_respond(NULL, ip6, (struct tcphdr *)(ip6 + 1),
- *m, ack, seq, flags, IFSCOPE_NONE, 0);
+ *m, ack, seq, flags, &tra);
fwc = _MALLOC(sizeof *fwc, M_IP6FW, M_WAITOK);
ftmp = _MALLOC(sizeof *ftmp, M_IP6FW, M_WAITOK);
fwc = _MALLOC(sizeof *fwc, M_IP6FW, M_WAITOK);
ftmp = _MALLOC(sizeof *ftmp, M_IP6FW, M_WAITOK);
if (!chainptr->lh_first) {
LIST_INSERT_HEAD(chainptr, fwc, chain);
if (!chainptr->lh_first) {
LIST_INSERT_HEAD(chainptr, fwc, chain);
return(0);
} else if (ftmp->fw_number == (u_short)-1) {
if (fwc) FREE(fwc, M_IP6FW);
if (ftmp) FREE(ftmp, M_IP6FW);
return(0);
} else if (ftmp->fw_number == (u_short)-1) {
if (fwc) FREE(fwc, M_IP6FW);
if (ftmp) FREE(ftmp, M_IP6FW);
del_entry6(struct ip6_fw_head *chainptr, u_short number)
{
struct ip6_fw_chain *fcp;
del_entry6(struct ip6_fw_head *chainptr, u_short number)
{
struct ip6_fw_chain *fcp;
fcp = chainptr->lh_first;
if (number != (u_short)-1) {
for (; fcp; fcp = fcp->chain.le_next) {
if (fcp->rule->fw_number == number) {
LIST_REMOVE(fcp, chain);
fcp = chainptr->lh_first;
if (number != (u_short)-1) {
for (; fcp; fcp = fcp->chain.le_next) {
if (fcp->rule->fw_number == number) {
LIST_REMOVE(fcp, chain);
/*
* It's possible to insert multiple chain entries with the
* same number, so we don't stop after finding the first
* match if zeroing a specific entry.
*/
/*
* It's possible to insert multiple chain entries with the
* same number, so we don't stop after finding the first
* match if zeroing a specific entry.
*/
for (fcp = ip6_fw_chain.lh_first; fcp; fcp = fcp->chain.le_next)
if (!frwl || frwl->fw_number == 0 || frwl->fw_number == fcp->rule->fw_number) {
fcp->rule->fw_bcnt = fcp->rule->fw_pcnt = 0;
fcp->rule->timestamp = 0;
}
for (fcp = ip6_fw_chain.lh_first; fcp; fcp = fcp->chain.le_next)
if (!frwl || frwl->fw_number == 0 || frwl->fw_number == fcp->rule->fw_number) {
fcp->rule->fw_bcnt = fcp->rule->fw_pcnt = 0;
fcp->rule->timestamp = 0;
}