[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.235.2.4 and 1.252.6.1

version 1.235.2.4, 2015/12/27 12:10:05 version 1.252.6.1, 2017/05/02 03:19:22
Line 295  sopendfree_thread(void *v)
Line 295  sopendfree_thread(void *v)
   
                         for (; m != NULL; m = next) {                          for (; m != NULL; m = next) {
                                 next = m->m_next;                                  next = m->m_next;
                                 KASSERT((~m->m_flags & (M_EXT|M_EXT_PAGES)) == 0);                                  KASSERT((~m->m_flags & (M_EXT|M_EXT_PAGES)) ==
                                       0);
                                 KASSERT(m->m_ext.ext_refcnt == 0);                                  KASSERT(m->m_ext.ext_refcnt == 0);
   
                                 rv += m->m_ext.ext_size;                                  rv += m->m_ext.ext_size;
Line 998  sosend(struct socket *so, struct sockadd
Line 999  sosend(struct socket *so, struct sockadd
                                         m = m_gethdr(M_WAIT, MT_DATA);                                          m = m_gethdr(M_WAIT, MT_DATA);
                                         mlen = MHLEN;                                          mlen = MHLEN;
                                         m->m_pkthdr.len = 0;                                          m->m_pkthdr.len = 0;
                                         m->m_pkthdr.rcvif = NULL;                                          m_reset_rcvif(m);
                                 } else {                                  } else {
                                         m = m_get(M_WAIT, MT_DATA);                                          m = m_get(M_WAIT, MT_DATA);
                                         mlen = MLEN;                                          mlen = MLEN;
Line 1065  sosend(struct socket *so, struct sockadd
Line 1066  sosend(struct socket *so, struct sockadd
                         if (resid > 0)                          if (resid > 0)
                                 so->so_state |= SS_MORETOCOME;                                  so->so_state |= SS_MORETOCOME;
                         if (flags & MSG_OOB) {                          if (flags & MSG_OOB) {
                                 error = (*so->so_proto->pr_usrreqs->pr_sendoob)(so,                                  error = (*so->so_proto->pr_usrreqs->pr_sendoob)(
                                     top, control);                                      so, top, control);
                         } else {                          } else {
                                 error = (*so->so_proto->pr_usrreqs->pr_send)(so,                                  error = (*so->so_proto->pr_usrreqs->pr_send)(so,
                                     top, addr, control, l);                                      top, addr, control, l);
Line 1324  soreceive(struct socket *so, struct mbuf
Line 1325  soreceive(struct socket *so, struct mbuf
                                 m->m_next = NULL;                                  m->m_next = NULL;
                                 m = so->so_rcv.sb_mb;                                  m = so->so_rcv.sb_mb;
                         } else {                          } else {
                                 MFREE(m, so->so_rcv.sb_mb);                                  m = so->so_rcv.sb_mb = m_free(m);
                                 m = so->so_rcv.sb_mb;  
                         }                          }
                         sbsync(&so->so_rcv, nextrecord);                          sbsync(&so->so_rcv, nextrecord);
                 }                  }
Line 1349  soreceive(struct socket *so, struct mbuf
Line 1349  soreceive(struct socket *so, struct mbuf
                                         m->m_next = 0;                                          m->m_next = 0;
                                         m = so->so_rcv.sb_mb;                                          m = so->so_rcv.sb_mb;
                                 } else {                                  } else {
                                         MFREE(m, so->so_rcv.sb_mb);                                          m = so->so_rcv.sb_mb = m_free(m);
                                         m = so->so_rcv.sb_mb;  
                                 }                                  }
                         }                          }
                 }                  }
Line 1409  soreceive(struct socket *so, struct mbuf
Line 1408  soreceive(struct socket *so, struct mbuf
                                  */                                   */
                                 if (dom->dom_dispose != NULL &&                                  if (dom->dom_dispose != NULL &&
                                     type == SCM_RIGHTS) {                                      type == SCM_RIGHTS) {
                                         sounlock(so);                                          sounlock(so);
                                         (*dom->dom_dispose)(cm);                                          (*dom->dom_dispose)(cm);
                                         solock(so);                                          solock(so);
                                 }                                  }
Line 1505  soreceive(struct socket *so, struct mbuf
Line 1504  soreceive(struct socket *so, struct mbuf
                                         so->so_rcv.sb_mb = m = m->m_next;                                          so->so_rcv.sb_mb = m = m->m_next;
                                         *mp = NULL;                                          *mp = NULL;
                                 } else {                                  } else {
                                         MFREE(m, so->so_rcv.sb_mb);                                          m = so->so_rcv.sb_mb = m_free(m);
                                         m = so->so_rcv.sb_mb;  
                                 }                                  }
                                 /*                                  /*
                                  * If m != NULL, we also know that                                   * If m != NULL, we also know that
Line 1724  sosetopt1(struct socket *so, const struc
Line 1722  sosetopt1(struct socket *so, const struc
                 KASSERT(solocked(so));                  KASSERT(solocked(so));
                 break;                  break;
   
         case SO_LINGER:          case SO_LINGER:
                 error = sockopt_get(sopt, &l, sizeof(l));                  error = sockopt_get(sopt, &l, sizeof(l));
                 solock(so);                  solock(so);
                 if (error)                  if (error)
                         break;                          break;
                 if (l.l_linger < 0 || l.l_linger > USHRT_MAX ||                  if (l.l_linger < 0 || l.l_linger > USHRT_MAX ||
                     l.l_linger > (INT_MAX / hz)) {                      l.l_linger > (INT_MAX / hz)) {
                         error = EDOM;                          error = EDOM;
                         break;                          break;
                 }                  }
                 so->so_linger = l.l_linger;                  so->so_linger = l.l_linger;
                 if (l.l_onoff)                  if (l.l_onoff)
                         so->so_options |= SO_LINGER;                          so->so_options |= SO_LINGER;
                 else                  else
                         so->so_options &= ~SO_LINGER;                          so->so_options &= ~SO_LINGER;
                 break;                  break;
   
         case SO_DEBUG:          case SO_DEBUG:
         case SO_KEEPALIVE:          case SO_KEEPALIVE:
Line 2095  sockopt_destroy(struct sockopt *sopt)
Line 2093  sockopt_destroy(struct sockopt *sopt)
 /*  /*
  * set sockopt value   * set sockopt value
  *      - value is copied into sockopt   *      - value is copied into sockopt
  *      - memory is allocated when necessary, will not sleep   *      - memory is allocated when necessary, will not sleep
  */   */
 int  int
 sockopt_set(struct sockopt *sopt, const void *buf, size_t len)  sockopt_set(struct sockopt *sopt, const void *buf, size_t len)

Legend:
Removed from v.1.235.2.4  
changed lines
  Added in v.1.252.6.1

CVSweb <webmaster@jp.NetBSD.org>