[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.28 and 1.29

version 1.28, 1996/05/23 17:03:27 version 1.29, 1996/05/24 19:03:13
Line 263  rip_ctloutput(op, so, level, optname, m)
Line 263  rip_ctloutput(op, so, level, optname, m)
 }  }
   
 int  int
   rip_bind(inp, nam)
           struct inpcb *inp;
           struct mbuf *nam;
   {
           struct sockaddr_in *addr = mtod(nam, struct sockaddr_in *);
   
           if (nam->m_len != sizeof(*addr))
                   return (EINVAL);
           if (ifnet.tqh_first == 0)
                   return (EADDRNOTAVAIL);
           if (addr->sin_family != AF_INET &&
               addr->sin_family != AF_IMPLINK)
                   return (EAFNOSUPPORT);
           if (addr->sin_addr.s_addr != INADDR_ANY &&
               ifa_ifwithaddr(sintosa(addr)) == 0)
                   return (EADDRNOTAVAIL);
           inp->inp_laddr = addr->sin_addr;
           return (0);
   }
   
   int
 rip_connect(inp, nam)  rip_connect(inp, nam)
         struct inpcb *inp;          struct inpcb *inp;
         struct mbuf *nam;          struct mbuf *nam;
Line 353  rip_usrreq(so, req, m, nam, control, p)
Line 374  rip_usrreq(so, req, m, nam, control, p)
                 break;                  break;
   
         case PRU_BIND:          case PRU_BIND:
             {                  error = rip_bind(inp, nam);
                 struct sockaddr_in *addr = mtod(nam, struct sockaddr_in *);  
   
                 if (nam->m_len != sizeof(*addr)) {  
                         error = EINVAL;  
                         break;  
                 }  
                 if (ifnet.tqh_first == 0) {  
                         error = EADDRNOTAVAIL;  
                         break;  
                 }  
                 if (addr->sin_family != AF_INET &&  
                     addr->sin_family != AF_IMPLINK) {  
                         error = EAFNOSUPPORT;  
                         break;  
                 }  
                 if (addr->sin_addr.s_addr != INADDR_ANY &&  
                     ifa_ifwithaddr(sintosa(addr)) == 0) {  
                         error = EADDRNOTAVAIL;  
                         break;  
                 }  
                 inp->inp_laddr = addr->sin_addr;  
                 break;                  break;
             }  
   
         case PRU_LISTEN:          case PRU_LISTEN:
                 error = EOPNOTSUPP;                  error = EOPNOTSUPP;

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

CVSweb <webmaster@jp.NetBSD.org>