[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.27 and 1.28

version 1.27, 1997/06/11 10:04:09 version 1.28, 1997/06/24 20:04:45
Line 887  sosetopt(so, level, optname, m0)
Line 887  sosetopt(so, level, optname, m0)
                 case SO_RCVBUF:                  case SO_RCVBUF:
                 case SO_SNDLOWAT:                  case SO_SNDLOWAT:
                 case SO_RCVLOWAT:                  case SO_RCVLOWAT:
                       {
                           int optval;
   
                         if (m == NULL || m->m_len < sizeof (int)) {                          if (m == NULL || m->m_len < sizeof (int)) {
                                 error = EINVAL;                                  error = EINVAL;
                                 goto bad;                                  goto bad;
                         }                          }
   
                           /*
                            * Values < 1 make no sense for any of these
                            * options, so disallow them.
                            */
                           optval = *mtod(m, int *);
                           if (optval < 1) {
                                   error = EINVAL;
                                   goto bad;
                           }
   
                         switch (optname) {                          switch (optname) {
   
                         case SO_SNDBUF:                          case SO_SNDBUF:
                         case SO_RCVBUF:                          case SO_RCVBUF:
                                 if (sbreserve(optname == SO_SNDBUF ?                                  if (sbreserve(optname == SO_SNDBUF ?
                                     &so->so_snd : &so->so_rcv,                                      &so->so_snd : &so->so_rcv,
                                     (u_long) *mtod(m, int *)) == 0) {                                      (u_long) optval) == 0) {
                                         error = ENOBUFS;                                          error = ENOBUFS;
                                         goto bad;                                          goto bad;
                                 }                                  }
                                 break;                                  break;
   
                           /*
                            * Make sure the low-water is never greater than
                            * the high-water.
                            */
                         case SO_SNDLOWAT:                          case SO_SNDLOWAT:
                                 so->so_snd.sb_lowat = *mtod(m, int *);                                  so->so_snd.sb_lowat =
                                       (optval > so->so_snd.sb_hiwat) ?
                                       so->so_snd.sb_hiwat : optval;
                                 break;                                  break;
                         case SO_RCVLOWAT:                          case SO_RCVLOWAT:
                                 so->so_rcv.sb_lowat = *mtod(m, int *);                                  so->so_rcv.sb_lowat =
                                       (optval > so->so_rcv.sb_hiwat) ?
                                       so->so_rcv.sb_hiwat : optval;
                                 break;                                  break;
                         }                          }
                         break;                          break;
                       }
   
                 case SO_SNDTIMEO:                  case SO_SNDTIMEO:
                 case SO_RCVTIMEO:                  case SO_RCVTIMEO:

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

CVSweb <webmaster@jp.NetBSD.org>