~kris/9p

9hist

f9742bb2830daff86cd7b02dbb88155c37241705 — David du Colombier 28 years ago 1474de2
Plan 9 from Bell Labs 1998-05-02
3 files changed, 15 insertions(+), 6 deletions(-)

M carrera/main.c
M ip/devip.c
M ip/ipmux.c
M carrera/main.c => carrera/main.c +1 -0
@@ 59,6 59,7 @@ main(void)
	pageinit();
	procinit0();
	initseg();
	links();
	chandevreset();
	swapinit();
	userinit();

M ip/devip.c => ip/devip.c +13 -5
@@ 852,7 852,7 @@ ipwrite(Chan* ch, char* a, long n, vlong)
	Proto *x;
	char *p;
	Cmdbuf *cb;
	uchar ia[IPaddrlen];
	uchar ia[IPaddrlen], ma[IPaddrlen];
	Fs *f;

	f = ipfs[ch->dev];


@@ 904,10 904,18 @@ ipwrite(Chan* ch, char* a, long n, vlong)
		else if(strcmp(cb->f[0], "addmulti") == 0){
			if(cb->nf < 2)
				error("addmulti needs interface address");
			if(!ipismulticast(c->raddr))
				error("addmulti for a non multicast address");
			parseip(ia, cb->f[1]);
			ipifcaddmulti(c, c->raddr, ia);
			if(cb->nf == 2){
				if(!ipismulticast(c->raddr))
					error("addmulti for a non multicast address");
				parseip(ia, cb->f[1]);
				ipifcaddmulti(c, c->raddr, ia);
			} else {
				parseip(ma, cb->f[2]);
				if(!ipismulticast(ma))
					error("addmulti for a non multicast address");
				parseip(ia, cb->f[1]);
				ipifcaddmulti(c, ma, ia);
			}
		} else if(strcmp(cb->f[0], "remmulti") == 0){
			if(cb->nf < 2)
				error("remmulti needs interface address");

M ip/ipmux.c => ip/ipmux.c +1 -1
@@ 522,7 522,7 @@ ipmuxremove(Ipmux **l, Ipmux *f)

/*
 *  connection request is a semi separated list of filters
 *  e.g. proto=17;dat[0:4]=11aa22bb;ifc=135.104.9.2
 *  e.g. proto=17;dat[0:4]=11aa22bb;ifc=135.104.9.2&255.255.255.0
 *
 *  there's no protection against overlapping specs.
 */