[BACK]Return to raw_ip.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/raw_ip.c between version 1.27 and 1.28

version 1.27, 1996/05/23 16:12:15 version 1.28, 1996/05/23 17:03:27
Line 312  rip_usrreq(so, req, m, nam, control, p)
Line 312  rip_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("rip_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 415  rip_usrreq(so, req, m, nam, control, p)
Line 414  rip_usrreq(so, req, m, nam, control, p)
          * routine handles any massaging necessary.           * routine handles any massaging necessary.
          */           */
         case PRU_SEND:          case PRU_SEND:
             {                  if (control && control->m_len) {
                 struct in_addr faddr;                          m_freem(control);
                           m_freem(m);
                           error = EINVAL;
                           break;
                   }
           {
                 if (nam) {                  if (nam) {
                         if ((so->so_state & SS_ISCONNECTED) != 0) {                          if ((so->so_state & SS_ISCONNECTED) != 0) {
                                 m_freem(m);  
                                 error = EISCONN;                                  error = EISCONN;
                                 break;                                  goto die;
                         }                          }
                         error = rip_connect(inp, nam);                          error = rip_connect(inp, nam);
                         if (error) {                          if (error) {
                           die:
                                 m_freem(m);                                  m_freem(m);
                                 break;                                  break;
                         }                          }
                 } else {                  } else {
                         if ((so->so_state & SS_ISCONNECTED) == 0) {                          if ((so->so_state & SS_ISCONNECTED) == 0) {
                                 m_freem(m);  
                                 error = ENOTCONN;                                  error = ENOTCONN;
                                 break;                                  goto die;
                         }                          }
                 }                  }
                 error = rip_output(m, inp);                  error = rip_output(m, inp);
                 if (nam)                  if (nam)
                         rip_disconnect(inp);                          rip_disconnect(inp);
           }
                 break;                  break;
             }  
   
         case PRU_SENSE:          case PRU_SENSE:
                 /*                  /*
Line 454  rip_usrreq(so, req, m, nam, control, p)
Line 456  rip_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.27  
changed lines
  Added in v.1.28

CVSweb <webmaster@jp.NetBSD.org>