[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.1.1.3 and 1.16

version 1.1.1.3, 1998/01/05 09:56:02 version 1.16, 1995/03/02 09:33:40
Line 1 
Line 1 
   /*      $NetBSD$        */
   
 /*  /*
  * Copyright (c) 1982, 1986, 1988, 1993   * Copyright (c) 1982, 1986, 1988, 1993
  *      The Regents of the University of California.  All rights reserved.   *      The Regents of the University of California.  All rights reserved.
Line 30 
Line 32 
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.   * SUCH DAMAGE.
  *   *
  *      @(#)raw_ip.c    8.7 (Berkeley) 5/15/95   *      @(#)raw_ip.c    8.2 (Berkeley) 1/4/94
  */   */
   
 #include <sys/param.h>  #include <sys/param.h>
Line 102  rip_input(m)
Line 104  rip_input(m)
                         struct mbuf *n;                          struct mbuf *n;
                         if (n = m_copy(m, 0, (int)M_COPYALL)) {                          if (n = m_copy(m, 0, (int)M_COPYALL)) {
                                 if (sbappendaddr(&last->so_rcv,                                  if (sbappendaddr(&last->so_rcv,
                                     (struct sockaddr *)&ripsrc, n,                                      (struct sockaddr *)&ripsrc,
                                     (struct mbuf *)0) == 0)                                      n, (struct mbuf *)0) == 0)
                                         /* should notify about lost packet */                                          /* should notify about lost packet */
                                         m_freem(n);                                          m_freem(n);
                                 else                                  else
Line 181  rip_ctloutput(op, so, level, optname, m)
Line 183  rip_ctloutput(op, so, level, optname, m)
         register int error;          register int error;
   
         if (level != IPPROTO_IP) {          if (level != IPPROTO_IP) {
                 if (op == PRCO_SETOPT && *m)                  if (m != 0 && *m != 0)
                         (void) m_free(*m);                          (void)m_free(*m);
                 return (EINVAL);                  return (EINVAL);
         }          }
   
         switch (optname) {          switch (optname) {
   
         case IP_HDRINCL:          case IP_HDRINCL:
                 error = 0;                  if (op == PRCO_SETOPT || op == PRCO_GETOPT) {
                 if (op == PRCO_SETOPT) {                          if (m == 0 || *m == 0 || (*m)->m_len < sizeof (int))
                         if (*m == 0 || (*m)->m_len < sizeof (int))                                  return (EINVAL);
                                 error = EINVAL;                          if (op == PRCO_SETOPT) {
                         else if (*mtod(*m, int *))                                  if (*mtod(*m, int *))
                                 inp->inp_flags |= INP_HDRINCL;                                          inp->inp_flags |= INP_HDRINCL;
                         else                                  else
                                 inp->inp_flags &= ~INP_HDRINCL;                                          inp->inp_flags &= ~INP_HDRINCL;
                         if (*m)  
                                 (void)m_free(*m);                                  (void)m_free(*m);
                 } else {                          } else {
                         *m = m_get(M_WAIT, MT_SOOPTS);                                  (*m)->m_len = sizeof (int);
                         (*m)->m_len = sizeof (int);                                  *mtod(*m, int *) = inp->inp_flags & INP_HDRINCL;
                         *mtod(*m, int *) = inp->inp_flags & INP_HDRINCL;                          }
                           return (0);
                 }                  }
                 return (error);                  break;
   
         case DVMRP_INIT:          case DVMRP_INIT:
         case DVMRP_DONE:          case DVMRP_DONE:
Line 227  rip_ctloutput(op, so, level, optname, m)
Line 229  rip_ctloutput(op, so, level, optname, m)
                         (void)m_free(*m);                          (void)m_free(*m);
                 return (EOPNOTSUPP);                  return (EOPNOTSUPP);
 #endif  #endif
   
         default:  
                 if (optname >= DVMRP_INIT) {  
 #ifdef MROUTING  
                         if (op == PRCO_SETOPT) {  
                                 error = ip_mrouter_cmd(optname, so, *m);  
                                 if (*m)  
                                         (void)m_free(*m);  
                         } else  
                                 error = EINVAL;  
                         return (error);  
 #else  
                         if (op == PRCO_SETOPT && *m)  
                                 (void)m_free(*m);  
                         return (EOPNOTSUPP);  
 #endif  
                 }  
   
         }          }
         return (ip_ctloutput(op, so, level, optname, m));          return (ip_ctloutput(op, so, level, optname, m));
 }  }

Legend:
Removed from v.1.1.1.3  
changed lines
  Added in v.1.16

CVSweb <webmaster@jp.NetBSD.org>