[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.7 and 1.259.2.1

version 1.235.2.7, 2017/08/28 17:53:07 version 1.259.2.1, 2018/03/22 01:44:50
Line 1244  soreceive(struct socket *so, struct mbuf
Line 1244  soreceive(struct socket *so, struct mbuf
                         if (m != NULL)                          if (m != NULL)
                                 goto dontblock;                                  goto dontblock;
                         error = so->so_error;                          error = so->so_error;
                         if ((flags & MSG_PEEK) == 0)                          so->so_error = 0;
                                 so->so_error = 0;  
                         goto release;                          goto release;
                 }                  }
                 if (so->so_state & SS_CANTRCVMORE) {                  if (so->so_state & SS_CANTRCVMORE) {
Line 2109  sockopt_set(struct sockopt *sopt, const 
Line 2108  sockopt_set(struct sockopt *sopt, const 
                         return error;                          return error;
         }          }
   
         KASSERT(sopt->sopt_size == len);          if (sopt->sopt_size < len)
                   return EINVAL;
   
         memcpy(sopt->sopt_data, buf, len);          memcpy(sopt->sopt_data, buf, len);
           sopt->sopt_retsize = len;
   
         return 0;          return 0;
 }  }
   
Line 2169  sockopt_setmbuf(struct sockopt *sopt, st
Line 2172  sockopt_setmbuf(struct sockopt *sopt, st
                         return error;                          return error;
         }          }
   
         KASSERT(sopt->sopt_size == len);          if (sopt->sopt_size < len)
                   return EINVAL;
   
         m_copydata(m, 0, len, sopt->sopt_data);          m_copydata(m, 0, len, sopt->sopt_data);
         m_freem(m);          m_freem(m);
           sopt->sopt_retsize = len;
   
         return 0;          return 0;
 }  }
Line 2244  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)        /* temporary udp error */          } else if (so->so_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 2283  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)        /* temporary udp error */          } else if (so->so_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 2319  filt_solisten(struct knote *kn, long hin
Line 2325  filt_solisten(struct knote *kn, long hin
         return rv;          return rv;
 }  }
   
 static const struct filterops solisten_filtops =  static const struct filterops solisten_filtops = {
         { 1, NULL, filt_sordetach, filt_solisten };          .f_isfd = 1,
 static const struct filterops soread_filtops =          .f_attach = NULL,
         { 1, NULL, filt_sordetach, filt_soread };          .f_detach = filt_sordetach,
 static const struct filterops sowrite_filtops =          .f_event = filt_solisten,
         { 1, NULL, filt_sowdetach, filt_sowrite };  };
   
   static const struct filterops soread_filtops = {
           .f_isfd = 1,
           .f_attach = NULL,
           .f_detach = filt_sordetach,
           .f_event = filt_soread,
   };
   
   static const struct filterops sowrite_filtops = {
           .f_isfd = 1,
           .f_attach = NULL,
           .f_detach = filt_sowdetach,
           .f_event = filt_sowrite,
   };
   
 int  int
 soo_kqfilter(struct file *fp, struct knote *kn)  soo_kqfilter(struct file *fp, struct knote *kn)

Legend:
Removed from v.1.235.2.7  
changed lines
  Added in v.1.259.2.1

CVSweb <webmaster@jp.NetBSD.org>