[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.122.4.2 and 1.129.2.1

version 1.122.4.2, 2007/01/12 01:04:07 version 1.129.2.1, 2007/05/13 21:23:47
Line 654  soclose(struct socket *so)
Line 654  soclose(struct socket *so)
 int  int
 soabort(struct socket *so)  soabort(struct socket *so)
 {  {
           int error;
   
         return (*so->so_proto->pr_usrreq)(so, PRU_ABORT, (struct mbuf *)0,          KASSERT(so->so_head == NULL);
           error = (*so->so_proto->pr_usrreq)(so, PRU_ABORT, (struct mbuf *)0,
             (struct mbuf *)0, (struct mbuf *)0, (struct lwp *)0);              (struct mbuf *)0, (struct mbuf *)0, (struct lwp *)0);
           if (error) {
                   sofree(so);
           }
           return error;
 }  }
   
 int  int
Line 1422  sosetopt(struct socket *so, int level, i
Line 1428  sosetopt(struct socket *so, int level, i
 {  {
         int             error;          int             error;
         struct mbuf     *m;          struct mbuf     *m;
         struct linger   *l;  
   
         error = 0;          error = 0;
         m = m0;          m = m0;
Line 1439  sosetopt(struct socket *so, int level, i
Line 1444  sosetopt(struct socket *so, int level, i
                                 error = EINVAL;                                  error = EINVAL;
                                 goto bad;                                  goto bad;
                         }                          }
                         l = mtod(m, struct linger *);                          if (mtod(m, struct linger *)->l_linger < 0 ||
                         if (l->l_linger < 0 || l->l_linger > USHRT_MAX ||                              mtod(m, struct linger *)->l_linger > (INT_MAX / hz)) {
                             l->l_linger > (INT_MAX / hz)) {  
                                 error = EDOM;                                  error = EDOM;
                                 goto bad;                                  goto bad;
                         }                          }
                         so->so_linger = l->l_linger;                          so->so_linger = mtod(m, struct linger *)->l_linger;
                         if (l->l_onoff)                          /* fall thru... */
                                 so->so_options |= SO_LINGER;  
                         else  
                                 so->so_options &= ~SO_LINGER;  
                         break;  
   
                 case SO_DEBUG:                  case SO_DEBUG:
                 case SO_KEEPALIVE:                  case SO_KEEPALIVE:
Line 1590  sogetopt(struct socket *so, int level, i
Line 1590  sogetopt(struct socket *so, int level, i
                 case SO_LINGER:                  case SO_LINGER:
                         m->m_len = sizeof(struct linger);                          m->m_len = sizeof(struct linger);
                         mtod(m, struct linger *)->l_onoff =                          mtod(m, struct linger *)->l_onoff =
                             (so->so_options & SO_LINGER) ? 1 : 0;                                  so->so_options & SO_LINGER;
                         mtod(m, struct linger *)->l_linger = so->so_linger;                          mtod(m, struct linger *)->l_linger = so->so_linger;
                         break;                          break;
   
Line 1603  sogetopt(struct socket *so, int level, i
Line 1603  sogetopt(struct socket *so, int level, i
                 case SO_BROADCAST:                  case SO_BROADCAST:
                 case SO_OOBINLINE:                  case SO_OOBINLINE:
                 case SO_TIMESTAMP:                  case SO_TIMESTAMP:
                         *mtod(m, int *) = (so->so_options & optname) ? 1 : 0;                          *mtod(m, int *) = so->so_options & optname;
                         break;                          break;
   
                 case SO_TYPE:                  case SO_TYPE:

Legend:
Removed from v.1.122.4.2  
changed lines
  Added in v.1.129.2.1

CVSweb <webmaster@jp.NetBSD.org>