[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.255.2.2 and 1.256

version 1.255.2.2, 2018/04/09 13:34:10 version 1.256, 2017/07/06 17:42:39
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;
                         so->so_error = 0;                          if ((flags & MSG_PEEK) == 0)
                                   so->so_error = 0;
                         goto release;                          goto release;
                 }                  }
                 if (so->so_state & SS_CANTRCVMORE) {                  if (so->so_state & SS_CANTRCVMORE) {
Line 2108  sockopt_set(struct sockopt *sopt, const 
Line 2109  sockopt_set(struct sockopt *sopt, const 
                         return error;                          return error;
         }          }
   
         if (sopt->sopt_size < len)          KASSERT(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 2172  sockopt_setmbuf(struct sockopt *sopt, st
Line 2169  sockopt_setmbuf(struct sockopt *sopt, st
                         return error;                          return error;
         }          }
   
         if (sopt->sopt_size < len)          KASSERT(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 2250  filt_soread(struct knote *kn, long hint)
Line 2244  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)          } else if (so->so_error)        /* temporary udp 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 2289  filt_sowrite(struct knote *kn, long hint
Line 2283  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)          } else if (so->so_error)        /* temporary udp 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 2416  sopoll(struct socket *so, int events)
Line 2410  sopoll(struct socket *so, int events)
         return revents;          return revents;
 }  }
   
   struct mbuf **
   sbsavetimestamp(int opt, struct mbuf *m, struct mbuf **mp)
   {
           struct timeval tv;
           microtime(&tv);
   
   #ifdef SO_OTIMESTAMP
           if (opt & SO_OTIMESTAMP) {
                   struct timeval50 tv50;
   
                   timeval_to_timeval50(&tv, &tv50);
                   *mp = sbcreatecontrol(&tv50, sizeof(tv50),
                       SCM_OTIMESTAMP, SOL_SOCKET);
                   if (*mp)
                           mp = &(*mp)->m_next;
           } else
   #endif
   
           if (opt & SO_TIMESTAMP) {
                   *mp = sbcreatecontrol(&tv, sizeof(tv),
                       SCM_TIMESTAMP, SOL_SOCKET);
                   if (*mp)
                           mp = &(*mp)->m_next;
           }
           return mp;
   }
   
   
 #include <sys/sysctl.h>  #include <sys/sysctl.h>
   

Legend:
Removed from v.1.255.2.2  
changed lines
  Added in v.1.256

CVSweb <webmaster@jp.NetBSD.org>