[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.35 and 1.36

version 1.35, 1996/10/25 06:33:36 version 1.36, 1997/01/11 05:21:13
Line 100  rip_input(m, va_alist)
Line 100  rip_input(m, va_alist)
 {  {
         register struct ip *ip = mtod(m, struct ip *);          register struct ip *ip = mtod(m, struct ip *);
         register struct inpcb *inp;          register struct inpcb *inp;
         struct socket *last = 0;          struct inpcb *last = 0;
           struct mbuf *opts = 0;
         struct sockaddr_in ripsrc;          struct sockaddr_in ripsrc;
   
         ripsrc.sin_family = AF_INET;          ripsrc.sin_family = AF_INET;
Line 123  rip_input(m, va_alist)
Line 124  rip_input(m, va_alist)
                 if (last) {                  if (last) {
                         struct mbuf *n;                          struct mbuf *n;
                         if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {                          if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {
                                 if (sbappendaddr(&last->so_rcv,                                  if (last->inp_flags & INP_CONTROLOPTS ||
                                     sintosa(&ripsrc), n,                                      last->inp_socket->so_options & SO_TIMESTAMP)
                                     (struct mbuf *)0) == 0)                                          ip_savecontrol(last, &opts, ip, n);
                                   if (sbappendaddr(&last->inp_socket->so_rcv,
                                       sintosa(&ripsrc), n, opts) == 0) {
                                         /* should notify about lost packet */                                          /* should notify about lost packet */
                                         m_freem(n);                                          m_freem(n);
                                 else                                          if (opts)
                                         sorwakeup(last);                                                  m_freem(opts);
                                   } else
                                           sorwakeup(last->inp_socket);
                         }                          }
                 }                  }
                 last = inp->inp_socket;                  last = inp;
         }          }
         if (last) {          if (last) {
                 if (sbappendaddr(&last->so_rcv, sintosa(&ripsrc), m,                  if (last->inp_flags & INP_CONTROLOPTS ||
                     (struct mbuf *)0) == 0)                      last->inp_socket->so_options & SO_TIMESTAMP)
                           ip_savecontrol(last, &opts, ip, m);
                   if (sbappendaddr(&last->inp_socket->so_rcv,
                       sintosa(&ripsrc), m, opts) == 0) {
                         m_freem(m);                          m_freem(m);
                 else                          if (opts)
                         sorwakeup(last);                                  m_freem(opts);
                   } else
                           sorwakeup(last->inp_socket);
         } else {          } else {
                 m_freem(m);                  m_freem(m);
                 ipstat.ips_noproto++;                  ipstat.ips_noproto++;

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

CVSweb <webmaster@jp.NetBSD.org>