コード例 #1
0
ファイル: ipneigh.c プロジェクト: eworm-de/iproute2
int do_ipneigh(int argc, char **argv)
{
	if (argc > 0) {
		if (matches(*argv, "add") == 0)
			return ipneigh_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_EXCL, argc-1, argv+1);
		if (matches(*argv, "change") == 0 ||
		    strcmp(*argv, "chg") == 0)
			return ipneigh_modify(RTM_NEWNEIGH, NLM_F_REPLACE, argc-1, argv+1);
		if (matches(*argv, "replace") == 0)
			return ipneigh_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1);
		if (matches(*argv, "delete") == 0)
			return ipneigh_modify(RTM_DELNEIGH, 0, argc-1, argv+1);
		if (matches(*argv, "get") == 0) {
			fprintf(stderr, "Sorry, \"neigh get\" is not implemented :-(\n");
			return -1;
		}
		if (matches(*argv, "show") == 0 ||
		    matches(*argv, "lst") == 0 ||
		    matches(*argv, "list") == 0)
			return do_show_or_flush(argc-1, argv+1, 0);
		if (matches(*argv, "flush") == 0)
			return do_show_or_flush(argc-1, argv+1, 1);
		if (matches(*argv, "help") == 0)
			usage();
	} else
		return do_show_or_flush(0, NULL, 0);

	fprintf(stderr, "Command \"%s\" is unknown, try \"ip neigh help\".\n", *argv);
	exit(-1);
}
コード例 #2
0
ファイル: sad_neigh.c プロジェクト: daveti/sarp
void neigh_remove(char *ll_addr, u_int32 ip, char *iface)
{
   DEBUG_MSG("neigh remove %s %s %s", ha_ntoa(ll_addr), 
                   inet_ntoa(*(struct in_addr *)&ip), iface);
   
   ipneigh_modify(RTM_DELNEIGH, 0, 0, ll_addr, ip, iface);
}
コード例 #3
0
ファイル: sad_neigh.c プロジェクト: daveti/sarp
void neigh_add(char *ll_addr, u_int32 ip, char *iface, int nud)
{
   DEBUG_MSG("neigh add %s %s %s", ha_ntoa(ll_addr), inet_ntoa(*(struct in_addr *)&ip),
                   iface);
   
   ipneigh_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_REPLACE, nud, 
                   ll_addr, ip, iface);
}