rem: void udp_input(struct mbuf *buf, int hdrlen)
add: static void udp_input(struct mbuf *buf, int hdrlen)
context: void udp_input(struct mbuf *buf, int hdrlen){	struct ip *ip = mtod(buf, struct ip*);	struct udphdr *udp = (struct udphdr*)((caddr_t)ip + hdrlen);	uint16 ck = 0;	int len;	struct ip saved_ip;	struct mbuf *opts = NULL;	struct inpcb *inp = NULL;#if SHOW_DEBUG        dump_udp(buf);#endif	/* check and adjust sizes as required... */	len = ntohs(udp->uh_ulen) + hdrlen;	saved_ip = *ip;	if (udpcksum && udp->uh_sum) {		((struct ipovly*)ip)->ih_next = ((struct ipovly*)ip)->ih_prev = NULL;		((struct ipovly*)ip)->ih_x1 = 0;		((struct ipovly*)ip)->ih_len = udp->uh_ulen;		/* XXX - if we have options we need to be careful when calculating the		 * checksum here...		 */		if ((ck = in_cksum(buf, len, 0)) != 0) {			udpstat.udps_badsum++;			m_freem(buf);			printf("udp_input: UDP Checksum check failed. (%d over %ld bytes)\n", ck, len + sizeof(*ip));			return;		}	}	inp = udp_last_inpcb;	if (inp == NULL ||	    inp->lport != udp->uh_dport ||		inp->fport != udp->uh_sport ||		inp->faddr.s_addr != ip->ip_src.s_addr ||		inp->laddr.s_addr != ip->ip_dst.s_addr) {		inp = in_pcblookup(&udb, ip->ip_src, udp->uh_sport,				   ip->ip_dst, udp->uh_dport, INPLOOKUP_WILDCARD);		if (inp)			udp_last_inpcb = inp;	}	if (!inp) {		atomic_add((vint32 *)&udpstat.udps_noport, 1);		if (buf->m_flags & (M_BCAST | M_MCAST)) {			atomic_add((vint32 *)&udpstat.udps_noportbcast, 1);			goto bad;		}		*ip = saved_ip;		ip->ip_len += hdrlen;		icmp->error(buf, ICMP_UNREACH, ICMP_UNREACH_PORT, 0, 0);		return;	}	udp_in.sin_port = udp->uh_sport;	udp_in.sin_addr = ip->ip_src;	if (inp->inp_flags & INP_CONTROLOPT) {		printf("INP Control Options to process!\n");		/* XXX - add code to do this... */	}	hdrlen += sizeof(struct udphdr);	buf->m_len -= hdrlen;	buf->m_pkthdr.len -= hdrlen;	buf->m_data += hdrlen;		if (sockbuf_appendaddr(&inp->inp_socket->so_rcv, (struct sockaddr*)&udp_in,			buf, opts) == 0) {		goto bad;	}	sorwakeup(inp->inp_socket);	return;bad:	if (opts)		m_freem(opts);	m_freem(buf);	return;}