Diff for /src/sys/kern/uipc_syscalls.c between versions 1.33 and 1.34

version 1.33, 2004/04/23 10:21:07 version 1.34, 2004/05/09 00:32:41
Line 1387  sendfile(struct sendfile_args *uap) Line 1387  sendfile(struct sendfile_args *uap)
             &sbytes, uap->flags);              &sbytes, uap->flags);
         if (error)          if (error)
                 goto done;                  goto done;
         hdtr_size += hbytes;    /* account for header bytes successfully sent */  
   
         /*          /*
          * Send trailers. Wimp out and use writev(2).           * Send trailers. Wimp out and use writev(2).
Line 1435  kern_sendfile(struct vnode *vp, int s, o Line 1434  kern_sendfile(struct vnode *vp, int s, o
         struct sf_buf *sf;          struct sf_buf *sf;
         struct vm_page *pg;          struct vm_page *pg;
         off_t off, xfsize;          off_t off, xfsize;
           off_t hbytes = 0;
         int error = 0;          int error = 0;
   
         if (vp->v_type != VREG || VOP_GETVOBJECT(vp, &obj) != 0) {          if (vp->v_type != VREG || VOP_GETVOBJECT(vp, &obj) != 0) {
Line 1470  kern_sendfile(struct vnode *vp, int s, o Line 1470  kern_sendfile(struct vnode *vp, int s, o
          * into an sf_buf, attach an mbuf header to the sf_buf, and queue           * into an sf_buf, attach an mbuf header to the sf_buf, and queue
          * it on the socket.           * it on the socket.
          */           */
        for (off = offset; ; off += xfsize, *sbytes += xfsize) {        for (off = offset; ; off += xfsize, *sbytes += xfsize + hbytes) {
                 vm_pindex_t pindex;                  vm_pindex_t pindex;
                 vm_offset_t pgoff;                  vm_offset_t pgoff;
   
Line 1617  retry_lookup: Line 1617  retry_lookup:
                 m->m_flags |= M_EXT;                  m->m_flags |= M_EXT;
                 m->m_pkthdr.len = m->m_len = xfsize;                  m->m_pkthdr.len = m->m_len = xfsize;
   
                if (mheader) {                if (mheader != NULL) {
                         hbytes = mheader->m_pkthdr.len;
                         mheader->m_pkthdr.len += m->m_pkthdr.len;                          mheader->m_pkthdr.len += m->m_pkthdr.len;
                         m_cat(mheader, m);                          m_cat(mheader, m);
                         m = mheader;                          m = mheader;
                         mheader = NULL;                          mheader = NULL;
                }                } else
                         hbytes = 0;
   
                 /*                  /*
                  * Add the buffer to the socket buffer chain.                   * Add the buffer to the socket buffer chain.
Line 1687  retry_space: Line 1689  retry_space:
                 }                  }
         }          }
         if (mheader != NULL) {          if (mheader != NULL) {
                   *sbytes += mheader->m_pkthdr.len;
                 error = so_pru_send(so, 0, mheader, NULL, NULL, td);                  error = so_pru_send(so, 0, mheader, NULL, NULL, td);
                 mheader = NULL;                  mheader = NULL;
         }          }

Removed from v.1.33  
changed lines
  Added in v.1.34