SCCS-vsn: usr.sbin/arp/arp.c 5.4
-static char *sccsid = "@(#)arp.c 5.3 (Berkeley) %G%";
+static char *sccsid = "@(#)arp.c 5.4 (Berkeley) %G%";
exit(0);
}
if (argc >= 4 && strcmp(argv[1], "-s") == 0) {
exit(0);
}
if (argc >= 4 && strcmp(argv[1], "-s") == 0) {
+ if (set(argc-2, &argv[2]))
+ exit(1);
exit(0);
}
if (argc == 3 && strcmp(argv[1], "-d") == 0) {
exit(0);
}
if (argc == 3 && strcmp(argv[1], "-d") == 0) {
exit(0);
}
if (argc == 3 && strcmp(argv[1], "-f") == 0) {
exit(0);
}
if (argc == 3 && strcmp(argv[1], "-f") == 0) {
+ if (file(argv[2]))
+ exit(1);
FILE *fp;
int i;
char line[100], arg[5][50], *args[5];
FILE *fp;
int i;
char line[100], arg[5][50], *args[5];
if ((fp = fopen(name, "r")) == NULL) {
fprintf(stderr, "arp: cannot open %s\n", name);
if ((fp = fopen(name, "r")) == NULL) {
fprintf(stderr, "arp: cannot open %s\n", name);
args[2] = &arg[2][0];
args[3] = &arg[3][0];
args[4] = &arg[4][0];
args[2] = &arg[2][0];
args[3] = &arg[3][0];
args[4] = &arg[4][0];
while(fgets(line, 100, fp) != NULL) {
while(fgets(line, 100, fp) != NULL) {
- i = sscanf(line, "%s %s %s %s", arg[0], arg[1], arg[2], arg[3]);
+ i = sscanf(line, "%s %s %s %s %s", arg[0], arg[1], arg[2],
+ arg[3], arg[4]);
if (i < 2) {
fprintf(stderr, "arp: bad line: %s\n", line);
if (i < 2) {
fprintf(stderr, "arp: bad line: %s\n", line);
+ if (set(i, args))
+ retval = 1;
hp = gethostbyname(host);
if (hp == NULL) {
fprintf(stderr, "arp: %s: unknown host\n", host);
hp = gethostbyname(host);
if (hp == NULL) {
fprintf(stderr, "arp: %s: unknown host\n", host);
}
bcopy((char *)hp->h_addr, (char *)&sin->sin_addr,
sizeof sin->sin_addr);
}
ea = (u_char *)ar.arp_ha.sa_data;
if (ether_aton(eaddr, ea))
}
bcopy((char *)hp->h_addr, (char *)&sin->sin_addr,
sizeof sin->sin_addr);
}
ea = (u_char *)ar.arp_ha.sa_data;
if (ether_aton(eaddr, ea))
ar.arp_flags = ATF_PERM;
while (argc-- > 0) {
if (strncmp(argv[0], "temp", 4) == 0)
ar.arp_flags = ATF_PERM;
while (argc-- > 0) {
if (strncmp(argv[0], "temp", 4) == 0)
struct hostent *hp;
char *host;
int bynumber = 0;
struct hostent *hp;
char *host;
int bynumber = 0;
nlist(kernel, nl);
if(nl[X_ARPTAB_SIZE].n_type == 0) {
nlist(kernel, nl);
if(nl[X_ARPTAB_SIZE].n_type == 0) {
printf("Usage: arp hostname\n");
printf(" arp -a [/vmunix] [/dev/kmem]\n");
printf(" arp -d hostname\n");
printf("Usage: arp hostname\n");
printf(" arp -a [/vmunix] [/dev/kmem]\n");
printf(" arp -d hostname\n");
- printf(" arp -s hostname ether_addr [temp] [pub]\n");
+ printf(" arp -s hostname ether_addr [temp] [pub] [trail]\n");
printf(" arp -f filename\n");
}
printf(" arp -f filename\n");
}