Author: glebius
Date: Tue Oct 23 10:29:31 2012
New Revision: 241925
URL: http://svn.freebsd.org/changeset/base/241925

Log:
    Simplify ip_stripoptions() reducing number of intermediate
  variables.

Modified:
  head/sys/netinet/ip_options.c

Modified: head/sys/netinet/ip_options.c
==============================================================================
--- head/sys/netinet/ip_options.c       Tue Oct 23 09:59:46 2012        
(r241924)
+++ head/sys/netinet/ip_options.c       Tue Oct 23 10:29:31 2012        
(r241925)
@@ -458,20 +458,18 @@ ip_srcroute(struct mbuf *m0)
 void
 ip_stripoptions(struct mbuf *m)
 {
-       int i;
        struct ip *ip = mtod(m, struct ip *);
-       caddr_t opts;
        int olen;
 
-       olen = (ip->ip_hl << 2) - sizeof (struct ip);
-       opts = (caddr_t)(ip + 1);
-       i = m->m_len - (sizeof (struct ip) + olen);
-       bcopy(opts + olen, opts, (unsigned)i);
+       olen = (ip->ip_hl << 2) - sizeof(struct ip);
        m->m_len -= olen;
        if (m->m_flags & M_PKTHDR)
                m->m_pkthdr.len -= olen;
        ip->ip_len = htons(ntohs(ip->ip_len) - olen);
        ip->ip_hl = sizeof(struct ip) >> 2;
+
+       bcopy((char *)ip + sizeof(struct ip) + olen, (ip + 1),
+           (size_t )(m->m_len - sizeof(struct ip)));
 }
 
 /*
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to