예제 #1
0
int
inttunnel(char *ifname, int ifs, int argc, char **argv)
{
	int set;

	if (NO_ARG(argv[0])) {
		set = 0;
		argc--;
		argv++;
	} else
		set = 1;

	argc--;
	argv++;

	if ((set && argc != 2) || (!set && argc > 2)) {
		printf("%% tunnel <src ip> <dest ip>\n");
		printf("%% no tunnel [src ip] [dest ip]\n");
		return(0);
	}

	if(set)
		settunnel(ifs, ifname, argv[0], argv[1]);
	else
		deletetunnel(ifs, ifname);
	return(0);
}
예제 #2
0
파일: tunnel.c 프로젝트: arnobroekhof/nsh
int
inttunnel(char *ifname, int ifs, int argc, char **argv)
{
	int set;

	if (NO_ARG(argv[0])) {
		set = 0;
		argc--;
		argv++;
	} else
		set = 1;

	argc--;
	argv++;

	if (((set && argc !=2 && argc != 4) || (set && argc == 4 &&
	    !isprefix(argv[2], "rdomain"))) || (!set && argc > 4)) {
		printf("%% tunnel <src ip> <dest ip> [rdomain <domain>]\n");
		printf("%% no tunnel [src ip] [dest ip] [rdomain <domain>]\n");
		return(0);
	}

	if(set && argc == 2)
		settunnel(ifs, ifname, argv[0], argv[1], NULL);
	else if(set && argc == 4)
		settunnel(ifs, ifname, argv[0], argv[1], argv[3]);
	else
		deletetunnel(ifs, ifname);
	return(0);
}