[BACK]Return to uipc_socket.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/uipc_socket.c between version 1.259.2.3 and 1.260

version 1.259.2.3, 2018/06/25 07:26:04 version 1.260, 2018/03/19 16:31:24
Line 1240  soreceive(struct socket *so, struct mbuf
Line 1240  soreceive(struct socket *so, struct mbuf
                 if (m == NULL && so->so_rcv.sb_cc)                  if (m == NULL && so->so_rcv.sb_cc)
                         panic("receive 1");                          panic("receive 1");
 #endif  #endif
                 if (so->so_error || so->so_rerror) {                  if (so->so_error) {
                         if (m != NULL)                          if (m != NULL)
                                 goto dontblock;                                  goto dontblock;
                         if (so->so_error) {                          error = so->so_error;
                                 error = so->so_error;                          so->so_error = 0;
                                 so->so_error = 0;  
                         } else {  
                                 error = so->so_rerror;  
                                 so->so_rerror = 0;  
                         }  
                         goto release;                          goto release;
                 }                  }
                 if (so->so_state & SS_CANTRCVMORE) {                  if (so->so_state & SS_CANTRCVMORE) {
Line 1321  soreceive(struct socket *so, struct mbuf
Line 1316  soreceive(struct socket *so, struct mbuf
                 orig_resid = 0;                  orig_resid = 0;
                 if (flags & MSG_PEEK) {                  if (flags & MSG_PEEK) {
                         if (paddr)                          if (paddr)
                                 *paddr = m_copym(m, 0, m->m_len, M_DONTWAIT);                                  *paddr = m_copy(m, 0, m->m_len);
                         m = m->m_next;                          m = m->m_next;
                 } else {                  } else {
                         sbfree(&so->so_rcv, m);                          sbfree(&so->so_rcv, m);
Line 1346  soreceive(struct socket *so, struct mbuf
Line 1341  soreceive(struct socket *so, struct mbuf
                         orig_resid = 0;                          orig_resid = 0;
                         if (flags & MSG_PEEK) {                          if (flags & MSG_PEEK) {
                                 if (paddr)                                  if (paddr)
                                         *paddr = m_copym(m, 0, m->m_len, M_DONTWAIT);                                          *paddr = m_copy(m, 0, m->m_len);
                                 m = m->m_next;                                  m = m->m_next;
                         } else {                          } else {
                                 sbfree(&so->so_rcv, m);                                  sbfree(&so->so_rcv, m);
Line 1375  soreceive(struct socket *so, struct mbuf
Line 1370  soreceive(struct socket *so, struct mbuf
                 do {                  do {
                         if (flags & MSG_PEEK) {                          if (flags & MSG_PEEK) {
                                 if (controlp != NULL) {                                  if (controlp != NULL) {
                                         *controlp = m_copym(m, 0, m->m_len, M_DONTWAIT);                                          *controlp = m_copy(m, 0, m->m_len);
                                         controlp = &(*controlp)->m_next;                                          controlp = &(*controlp)->m_next;
                                 }                                  }
                                 m = m->m_next;                                  m = m->m_next;
Line 1569  soreceive(struct socket *so, struct mbuf
Line 1564  soreceive(struct socket *so, struct mbuf
                  */                   */
                 while (flags & MSG_WAITALL && m == NULL && uio->uio_resid > 0 &&                  while (flags & MSG_WAITALL && m == NULL && uio->uio_resid > 0 &&
                     !sosendallatonce(so) && !nextrecord) {                      !sosendallatonce(so) && !nextrecord) {
                         if (so->so_error || so->so_rerror ||                          if (so->so_error || so->so_state & SS_CANTRCVMORE)
                             so->so_state & SS_CANTRCVMORE)  
                                 break;                                  break;
                         /*                          /*
                          * If we are peeking and the socket receive buffer is                           * If we are peeking and the socket receive buffer is
Line 2256  filt_soread(struct knote *kn, long hint)
Line 2250  filt_soread(struct knote *kn, long hint)
                 kn->kn_flags |= EV_EOF;                  kn->kn_flags |= EV_EOF;
                 kn->kn_fflags = so->so_error;                  kn->kn_fflags = so->so_error;
                 rv = 1;                  rv = 1;
         } else if (so->so_error || so->so_rerror)          } else if (so->so_error)        /* temporary udp error */
                 rv = 1;                  rv = 1;
         else if (kn->kn_sfflags & NOTE_LOWAT)          else if (kn->kn_sfflags & NOTE_LOWAT)
                 rv = (kn->kn_data >= kn->kn_sdata);                  rv = (kn->kn_data >= kn->kn_sdata);
Line 2295  filt_sowrite(struct knote *kn, long hint
Line 2289  filt_sowrite(struct knote *kn, long hint
                 kn->kn_flags |= EV_EOF;                  kn->kn_flags |= EV_EOF;
                 kn->kn_fflags = so->so_error;                  kn->kn_fflags = so->so_error;
                 rv = 1;                  rv = 1;
         } else if (so->so_error)          } else if (so->so_error)        /* temporary udp error */
                 rv = 1;                  rv = 1;
         else if (((so->so_state & SS_ISCONNECTED) == 0) &&          else if (((so->so_state & SS_ISCONNECTED) == 0) &&
             (so->so_proto->pr_flags & PR_CONNREQUIRED))              (so->so_proto->pr_flags & PR_CONNREQUIRED))
Line 2437  sopoll(struct socket *so, int events)
Line 2431  sopoll(struct socket *so, int events)
 }  }
   
 struct mbuf **  struct mbuf **
 sbsavetimestamp(int opt, struct mbuf **mp)  sbsavetimestamp(int opt, struct mbuf *m, struct mbuf **mp)
 {  {
         struct timeval tv;          struct timeval tv;
         microtime(&tv);          microtime(&tv);

Legend:
Removed from v.1.259.2.3  
changed lines
  Added in v.1.260

CVSweb <webmaster@jp.NetBSD.org>