[BACK]Return to udp_usrreq.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet/udp_usrreq.c between version 1.31 and 1.32

version 1.31, 1996/05/23 16:22:32 version 1.32, 1996/05/23 17:03:31
Line 494  udp_usrreq(so, req, m, nam, control, p)
Line 494  udp_usrreq(so, req, m, nam, control, p)
   
         s = splsoftnet();          s = splsoftnet();
         inp = sotoinpcb(so);          inp = sotoinpcb(so);
         if (control && control->m_len) {  #ifdef DIAGNOSTIC
                 m_freem(control);          if (req != PRU_SEND && req != PRU_SENDOOB && control)
                 error = EINVAL;                  panic("udp_usrreq: unexpected control mbuf");
                 goto release;  #endif
         }  
         if (inp == 0 && req != PRU_ATTACH) {          if (inp == 0 && req != PRU_ATTACH) {
                 error = EINVAL;                  error = EINVAL;
                 goto release;                  goto release;
Line 566  udp_usrreq(so, req, m, nam, control, p)
Line 565  udp_usrreq(so, req, m, nam, control, p)
                 break;                  break;
   
         case PRU_SEND:          case PRU_SEND:
                   if (control && control->m_len) {
                           m_freem(control);
                           m_freem(m);
                           error = EINVAL;
                           break;
                   }
         {          {
                 struct in_addr laddr;                  struct in_addr laddr;
   
Line 573  udp_usrreq(so, req, m, nam, control, p)
Line 578  udp_usrreq(so, req, m, nam, control, p)
                         laddr = inp->inp_laddr;                          laddr = inp->inp_laddr;
                         if ((so->so_state & SS_ISCONNECTED) != 0) {                          if ((so->so_state & SS_ISCONNECTED) != 0) {
                                 error = EISCONN;                                  error = EISCONN;
                                 break;                                  goto die;
                         }                          }
                         error = in_pcbconnect(inp, nam);                          error = in_pcbconnect(inp, nam);
                         if (error)                          if (error) {
                           die:
                                   m_freem(m);
                                 break;                                  break;
                           }
                 } else {                  } else {
                         if ((so->so_state & SS_ISCONNECTED) == 0) {                          if ((so->so_state & SS_ISCONNECTED) == 0) {
                                 error = ENOTCONN;                                  error = ENOTCONN;
                                 break;                                  goto die;
                         }                          }
                 }                  }
                 error = udp_output(m, control, inp);                  error = udp_output(m, control, inp);
Line 604  udp_usrreq(so, req, m, nam, control, p)
Line 612  udp_usrreq(so, req, m, nam, control, p)
                 break;                  break;
   
         case PRU_SENDOOB:          case PRU_SENDOOB:
                   m_freem(control);
                 m_freem(m);                  m_freem(m);
                 error =  EOPNOTSUPP;                  error =  EOPNOTSUPP;
                 break;                  break;

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

CVSweb <webmaster@jp.NetBSD.org>