[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.127 and 1.132

version 1.127, 2006/10/25 22:49:23 version 1.132, 2007/01/17 12:21:34
Line 151  static size_t sodopendfree(void);
Line 151  static size_t sodopendfree(void);
 static size_t sodopendfreel(void);  static size_t sodopendfreel(void);
   
 static vsize_t  static vsize_t
 sokvareserve(struct socket *so __unused, vsize_t len)  sokvareserve(struct socket *so, vsize_t len)
 {  {
         int s;          int s;
         int error;          int error;
Line 342  sodopendfreel()
Line 342  sodopendfreel()
 }  }
   
 void  void
 soloanfree(struct mbuf *m, caddr_t buf, size_t size, void *arg __unused)  soloanfree(struct mbuf *m, caddr_t buf, size_t size, void *arg)
 {  {
         int s;          int s;
   
Line 432  sosend_loan(struct socket *so, struct ui
Line 432  sosend_loan(struct socket *so, struct ui
 }  }
   
 static int  static int
 sokva_reclaim_callback(struct callback_entry *ce __unused, void *obj __unused,  sokva_reclaim_callback(struct callback_entry *ce, void *obj, void *arg)
     void *arg __unused)  
 {  {
   
         KASSERT(ce == &sokva_reclaimerentry);          KASSERT(ce == &sokva_reclaimerentry);
Line 474  socreate(int dom, struct socket **aso, i
Line 473  socreate(int dom, struct socket **aso, i
         uid_t           uid;          uid_t           uid;
         int             error, s;          int             error, s;
   
         if (kauth_authorize_network(l->l_cred, KAUTH_NETWORK_SOCKET,          error = kauth_authorize_network(l->l_cred, KAUTH_NETWORK_SOCKET,
             KAUTH_REQ_NETWORK_SOCKET_OPEN, &dom, &type, &proto) != 0)              KAUTH_REQ_NETWORK_SOCKET_OPEN, KAUTH_ARG(dom), KAUTH_ARG(type),
                 return (EPERM);              KAUTH_ARG(proto));
           if (error)
                   return (error);
   
         if (proto)          if (proto)
                 prp = pffindproto(dom, proto, type);                  prp = pffindproto(dom, proto, type);
Line 1422  sosetopt(struct socket *so, int level, i
Line 1423  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 1438  sosetopt(struct socket *so, int level, i
Line 1440  sosetopt(struct socket *so, int level, i
                                 error = EINVAL;                                  error = EINVAL;
                                 goto bad;                                  goto bad;
                         }                          }
                         if (mtod(m, struct linger *)->l_linger < 0 ||                          l = mtod(m, struct linger *);
                             mtod(m, struct linger *)->l_linger > (INT_MAX / hz)) {                          if (l->l_linger < 0 || l->l_linger > USHRT_MAX ||
                               l->l_linger > (INT_MAX / hz)) {
                                 error = EDOM;                                  error = EDOM;
                                 goto bad;                                  goto bad;
                         }                          }
                         so->so_linger = mtod(m, struct linger *)->l_linger;                          so->so_linger = l->l_linger;
                         /* fall thru... */                          if (l->l_onoff)
                                   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 1584  sogetopt(struct socket *so, int level, i
Line 1591  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;                              (so->so_options & SO_LINGER) ? 1 : 0;
                         mtod(m, struct linger *)->l_linger = so->so_linger;                          mtod(m, struct linger *)->l_linger = so->so_linger;
                         break;                          break;
   
Line 1597  sogetopt(struct socket *so, int level, i
Line 1604  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;                          *mtod(m, int *) = (so->so_options & optname) ? 1 : 0;
                         break;                          break;
   
                 case SO_TYPE:                  case SO_TYPE:
Line 1671  filt_sordetach(struct knote *kn)
Line 1678  filt_sordetach(struct knote *kn)
   
 /*ARGSUSED*/  /*ARGSUSED*/
 static int  static int
 filt_soread(struct knote *kn, long hint __unused)  filt_soread(struct knote *kn, long hint)
 {  {
         struct socket   *so;          struct socket   *so;
   
Line 1702  filt_sowdetach(struct knote *kn)
Line 1709  filt_sowdetach(struct knote *kn)
   
 /*ARGSUSED*/  /*ARGSUSED*/
 static int  static int
 filt_sowrite(struct knote *kn, long hint __unused)  filt_sowrite(struct knote *kn, long hint)
 {  {
         struct socket   *so;          struct socket   *so;
   
Line 1725  filt_sowrite(struct knote *kn, long hint
Line 1732  filt_sowrite(struct knote *kn, long hint
   
 /*ARGSUSED*/  /*ARGSUSED*/
 static int  static int
 filt_solisten(struct knote *kn, long hint __unused)  filt_solisten(struct knote *kn, long hint)
 {  {
         struct socket   *so;          struct socket   *so;
   
Line 1747  static const struct filterops sowrite_fi
Line 1754  static const struct filterops sowrite_fi
         { 1, NULL, filt_sowdetach, filt_sowrite };          { 1, NULL, filt_sowdetach, filt_sowrite };
   
 int  int
 soo_kqfilter(struct file *fp __unused, struct knote *kn)  soo_kqfilter(struct file *fp, struct knote *kn)
 {  {
         struct socket   *so;          struct socket   *so;
         struct sockbuf  *sb;          struct sockbuf  *sb;

Legend:
Removed from v.1.127  
changed lines
  Added in v.1.132

CVSweb <webmaster@jp.NetBSD.org>