View | Details | Raw Unified | Return to bug 73129
Collapse All | Expand All

(-)ip_output.c Mon Oct 25 20:01:59 2004 (-10 / +5 lines)
Lines 706-721 Link Here
706
       /* Or forward to some other address? */
706
       /* Or forward to some other address? */
707
       fwd_tag = m_tag_find(m, PACKET_TAG_IPFORWARD, NULL);
707
       fwd_tag = m_tag_find(m, PACKET_TAG_IPFORWARD, NULL);
708
       if (fwd_tag) {
708
       if (fwd_tag) {
709
               if (!in_localip(ip->ip_src) && !in_localaddr(ip->ip_dst)) {
709
               dst = (struct sockaddr_in *)&ro->ro_dst;
710
                       dst = (struct sockaddr_in *)&ro->ro_dst;
710
               bcopy((fwd_tag+1), dst, sizeof(struct sockaddr_in));
711
                       bcopy((fwd_tag+1), dst, sizeof(struct sockaddr_in));
711
               m->m_flags |= M_SKIP_FIREWALL;
712
                       m->m_flags |= M_SKIP_FIREWALL;
712
               m_tag_delete(m, fwd_tag);
713
                       m_tag_delete(m, fwd_tag);
713
               goto again;
714
                       goto again;
715
               } else {
716
                       m_tag_delete(m, fwd_tag);
717
                       /* Continue. */
718
               }
719
       }
714
       }
720
#endif
715
#endif

Return to bug 73129