~kris/9p

9hist

3ae464c26d46fd2f19c02002d3ed78050f40cb48 — David du Colombier 29 years ago 1efc29c
Plan 9 from Bell Labs 1997-08-29
1 files changed, 29 insertions(+), 0 deletions(-)

M ip/udp.c
M ip/udp.c => ip/udp.c +29 -0
@@ 318,6 318,34 @@ udpctl(Conv *c, char **f, int n)
}

void
udpadvise(Block *bp, char *msg)
{
	Udphdr *h;
	Ipaddr source, dest;
	ushort psource, pdest;
	Conv *s, **p;

	h = (Udphdr*)(bp->rp);

	dest = nhgetl(h->udpdst);
	source = nhgetl(h->udpsrc);
	psource = nhgets(h->udpsport);
	pdest = nhgets(h->udpdport);

	/* Look for a connection */
	for(p = udp.conv; *p; p++) {
		s = *p;
		if(s->rport == pdest && s->lport == psource)
		if(s->raddr == dest && s->laddr == source){
			qhangup(s->rq, msg);
			qhangup(s->wq, msg);
			break;
		}
	}
	freeblist(bp);
}

void
udpinit(Fs *fs)
{
	udp.name = "udp";


@@ 329,6 357,7 @@ udpinit(Fs *fs)
	udp.create = udpcreate;
	udp.close = udpclose;
	udp.rcv = udpiput;
	udp.advise = udpadvise;
	udp.ipproto = IP_UDPPROTO;
	udp.nc = 16;
	udp.ptclsize = sizeof(Udpcb);