Diff for /qemu/slirp/ip_output.c between versions 1.1.1.4 and 1.1.1.5

version 1.1.1.4, 2018/04/24 17:25:38 version 1.1.1.5, 2018/04/24 18:31:14
Line 75  ip_output(struct socket *so, struct mbuf Line 75  ip_output(struct socket *so, struct mbuf
         /*          /*
          * If small enough for interface, can just send directly.           * If small enough for interface, can just send directly.
          */           */
         if ((u_int16_t)ip->ip_len <= IF_MTU) {          if ((uint16_t)ip->ip_len <= IF_MTU) {
                 ip->ip_len = htons((u_int16_t)ip->ip_len);                  ip->ip_len = htons((uint16_t)ip->ip_len);
                 ip->ip_off = htons((u_int16_t)ip->ip_off);                  ip->ip_off = htons((uint16_t)ip->ip_off);
                 ip->ip_sum = 0;                  ip->ip_sum = 0;
                 ip->ip_sum = cksum(m, hlen);                  ip->ip_sum = cksum(m, hlen);
   
Line 110  ip_output(struct socket *so, struct mbuf Line 110  ip_output(struct socket *so, struct mbuf
          */           */
         m0 = m;          m0 = m;
         mhlen = sizeof (struct ip);          mhlen = sizeof (struct ip);
         for (off = hlen + len; off < (u_int16_t)ip->ip_len; off += len) {          for (off = hlen + len; off < (uint16_t)ip->ip_len; off += len) {
           register struct ip *mhip;            register struct ip *mhip;
           m = m_get(slirp);            m = m_get(slirp);
           if (m == NULL) {            if (m == NULL) {
Line 125  ip_output(struct socket *so, struct mbuf Line 125  ip_output(struct socket *so, struct mbuf
           mhip->ip_off = ((off - hlen) >> 3) + (ip->ip_off & ~IP_MF);            mhip->ip_off = ((off - hlen) >> 3) + (ip->ip_off & ~IP_MF);
           if (ip->ip_off & IP_MF)            if (ip->ip_off & IP_MF)
             mhip->ip_off |= IP_MF;              mhip->ip_off |= IP_MF;
           if (off + len >= (u_int16_t)ip->ip_len)            if (off + len >= (uint16_t)ip->ip_len)
             len = (u_int16_t)ip->ip_len - off;              len = (uint16_t)ip->ip_len - off;
           else            else
             mhip->ip_off |= IP_MF;              mhip->ip_off |= IP_MF;
           mhip->ip_len = htons((u_int16_t)(len + mhlen));            mhip->ip_len = htons((uint16_t)(len + mhlen));
   
           if (m_copy(m, m0, off, len) < 0) {            if (m_copy(m, m0, off, len) < 0) {
             error = -1;              error = -1;
             goto sendorfree;              goto sendorfree;
           }            }
   
           mhip->ip_off = htons((u_int16_t)mhip->ip_off);            mhip->ip_off = htons((uint16_t)mhip->ip_off);
           mhip->ip_sum = 0;            mhip->ip_sum = 0;
           mhip->ip_sum = cksum(m, mhlen);            mhip->ip_sum = cksum(m, mhlen);
           *mnext = m;            *mnext = m;
Line 147  ip_output(struct socket *so, struct mbuf Line 147  ip_output(struct socket *so, struct mbuf
          * and updating header, then send each fragment (in order).           * and updating header, then send each fragment (in order).
          */           */
         m = m0;          m = m0;
         m_adj(m, hlen + firstlen - (u_int16_t)ip->ip_len);          m_adj(m, hlen + firstlen - (uint16_t)ip->ip_len);
         ip->ip_len = htons((u_int16_t)m->m_len);          ip->ip_len = htons((uint16_t)m->m_len);
         ip->ip_off = htons((u_int16_t)(ip->ip_off | IP_MF));          ip->ip_off = htons((uint16_t)(ip->ip_off | IP_MF));
         ip->ip_sum = 0;          ip->ip_sum = 0;
         ip->ip_sum = cksum(m, hlen);          ip->ip_sum = cksum(m, hlen);
 sendorfree:  sendorfree:

Removed from v.1.1.1.4  
changed lines
  Added in v.1.1.1.5


unix.superglobalmegacorp.com