Beispiel #1
0
u_int32_t
LookupLocalAddr(void)
{
	static u_int32_t local_addr;
	char name[MAXHOSTNAMELEN];
	
	if (local_addr == 0) {
		(void)gethostname(name, sizeof(name));
		local_addr = LookupHostAddr(name);
	}
	return (local_addr);
}
Beispiel #2
0
int rtipChannel::command(int argc, const char*const* argv)
{
	Tcl& tcl = Tcl::instance();
	if (argc == 2) {
		if (strcmp(argv[1], "close") == 0) {
			close();
			return (TCL_OK);
		}
	} else if (argc == 14) {
		/*
		 * $net open dst port xmin xave I smax D J Z W U type
		 */
		if (strcmp(argv[1], "open") == 0) {
			u_int32_t addr = LookupHostAddr(argv[2]);
			if (addr == 0) {
				tcl.result("0");
				return (TCL_OK);
			}
			int port = htons(atoi(argv[3]));
			rcapTraffic rt;
			rcapRequirements rr;
			rt.xmin = atoi(argv[4]);
			rt.xave = atoi(argv[5]);
			rt.I = atoi(argv[6]);
			rt.smax = atoi(argv[7]);
			rr.D = atoi(argv[8]);
			rr.J = atoi(argv[9]);
			rr.Z = atoi(argv[10]);
			rr.W = atoi(argv[11]);
			rr.U = atoi(argv[12]);
			rr.type = atoi(argv[13]);

			if (open(addr, port, &rt, &rr) < 0)
				tcl.result("0");
			else
				tcl.result("1");
			return (TCL_OK);
		}
	}
	return (Network::command(argc, argv));
}