| version 1.10, 1994/01/10 20:14:34 |
version 1.11, 1994/02/02 05:59:10 |
| Line 151 udp_input(m, iphlen) |
|
| Line 151 udp_input(m, iphlen) |
|
| return; |
return; |
| } |
} |
| } |
} |
| #ifdef MULTICAST |
|
| if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) || |
if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) || |
| in_broadcast(ip->ip_dst)) { |
in_broadcast(ip->ip_dst)) { |
| struct socket *last; |
struct socket *last; |
| Line 236 udp_input(m, iphlen) |
|
| Line 235 udp_input(m, iphlen) |
|
| sorwakeup(last); |
sorwakeup(last); |
| return; |
return; |
| } |
} |
| #endif |
|
| /* |
/* |
| * Locate pcb for datagram. |
* Locate pcb for datagram. |
| */ |
*/ |
| Line 254 udp_input(m, iphlen) |
|
| Line 252 udp_input(m, iphlen) |
|
| if (inp == 0) { |
if (inp == 0) { |
| /* don't send ICMP response for broadcast packet */ |
/* don't send ICMP response for broadcast packet */ |
| udpstat.udps_noport++; |
udpstat.udps_noport++; |
| #ifndef MULTICAST |
|
| /* XXX why don't we do this with MULTICAST? */ |
|
| if (m->m_flags & (M_BCAST | M_MCAST)) { |
|
| udpstat.udps_noportbcast++; |
|
| goto bad; |
|
| } |
|
| #endif |
|
| *ip = save_ip; |
*ip = save_ip; |
| ip->ip_len += iphlen; |
ip->ip_len += iphlen; |
| { |
{ |
| Line 449 udp_output(inp, m, addr, control) |
|
| Line 440 udp_output(inp, m, addr, control) |
|
| udpstat.udps_opackets++; |
udpstat.udps_opackets++; |
| error = ip_output(m, inp->inp_options, &inp->inp_route, |
error = ip_output(m, inp->inp_options, &inp->inp_route, |
| inp->inp_socket->so_options & (SO_DONTROUTE | SO_BROADCAST) |
inp->inp_socket->so_options & (SO_DONTROUTE | SO_BROADCAST) |
| #ifdef MULTICAST |
, inp->inp_moptions ); |
| , inp->inp_moptions |
|
| #else |
|
| , NULL |
|
| #endif |
|
| ); |
|
| |
|
| if (addr) { |
if (addr) { |
| in_pcbdisconnect(inp); |
in_pcbdisconnect(inp); |