Hi everyone,

I totally forgot about this patch.  At the time it couldn't go in
because the tree was locked.  Does it make sense?  If so I will check
whether it applies on -current and resubmit.

On Fri, Jul 31, 2015 at 01:55:07PM +0100, Dimitris Papastamos wrote:
> Hi everyone,
> 
> This is a patch that removes -f for arp(8) and ndp(8).  As it stands
> currently, ndp(8) -f is not hooked in the code so no one is probably
> using that.
> 
> arp(8) -f is currently functional but I am not sure how useful.  If you
> are using this option, please reply to this thread.
> 
> Below you will find a patch that removes -f for both of these tools.
> 
> Cheers,
> Dimitris
> 
> ===================================================================
> RCS file: /cvs/src/usr.sbin/arp/arp.8,v
> retrieving revision 1.36
> diff -u -p -r1.36 arp.8
> --- usr.sbin/arp/arp.8        27 Jul 2015 17:28:39 -0000      1.36
> +++ usr.sbin/arp/arp.8        31 Jul 2015 12:51:29 -0000
> @@ -43,7 +43,6 @@
>  .Ar hostname
>  .Nm arp
>  .Op Fl F
> -.Op Fl f Ar file
>  .Op Fl V Ar rdomain
>  .Fl s Ar hostname ether_addr
>  .Op Cm temp | permanent
> @@ -123,37 +122,6 @@ Force existing entries for the given hos
>  and
>  .Fl s
>  options).
> -.It Fl f Ar file
> -Process entries from
> -.Ar file
> -to be set in the ARP tables.
> -Any entries in the file that already exist for a given host
> -will not be overwritten unless
> -.Fl F
> -is given.
> -Entries in the file should be of the form:
> -.Bd -filled -offset indent
> -.Ar hostname ether_addr
> -.Op Cm temp | permanent
> -.Op Cm pub
> -.Ed
> -.Pp
> -The entry will be static (will not time out) unless the word
> -.Cm temp
> -is given in the command.
> -A static ARP entry can be overwritten by network traffic, unless the word
> -.Cm permanent
> -is given.
> -If the word
> -.Cm pub
> -is given, the entry will be
> -.Dq published ;
> -that is, this system will act as an ARP server,
> -responding to requests for
> -.Ar hostname
> -even though the host address is not its own.
> -This behavior has traditionally been called
> -.Em proxy ARP .
>  .It Fl n
>  Show network addresses as numbers (normally
>  .Nm
> Index: usr.sbin/arp/arp.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/arp/arp.c,v
> retrieving revision 1.64
> diff -u -p -r1.64 arp.c
> --- usr.sbin/arp/arp.c        3 Jun 2015 08:10:53 -0000       1.64
> +++ usr.sbin/arp/arp.c        31 Jul 2015 12:51:29 -0000
> @@ -71,7 +71,6 @@ void nuke_entry(struct sockaddr_dl *sdl,
>       struct sockaddr_inarp *sin, struct rt_msghdr *rtm);
>  static char *ether_str(struct sockaddr_dl *);
>  int wake(const char *ether_addr, const char *iface);
> -int file(char *);
>  int get(const char *);
>  int getinetaddr(const char *, struct in_addr *);
>  void getsocket(void);
> @@ -97,9 +96,8 @@ extern int h_errno;
>  /* which function we're supposed to do */
>  #define F_GET                1
>  #define F_SET                2
> -#define F_FILESET    3
> -#define F_DELETE     4
> -#define F_WAKE               5
> +#define F_DELETE     3
> +#define F_WAKE               4
>  
>  int
>  main(int argc, char *argv[])
> @@ -131,11 +129,6 @@ main(int argc, char *argv[])
>               case 'F':
>                       replace = 1;
>                       break;
> -             case 'f':
> -                     if (func)
> -                             usage();
> -                     func = F_FILESET;
> -                     break;
>               case 'V':
>                       rdomain = strtonum(optarg, 0, RT_TABLEID_MAX, &errstr);
>                       if (errstr != NULL) {
> @@ -184,11 +177,6 @@ main(int argc, char *argv[])
>               else
>                       usage();
>               break;
> -     case F_FILESET:
> -             if (argc != 1)
> -                     usage();
> -             rtn = file(argv[0]);
> -             break;
>       case F_WAKE:
>               if (aflag || nflag || replace || rdomain > 0)
>                       usage();
> @@ -203,41 +191,6 @@ main(int argc, char *argv[])
>       return (rtn);
>  }
>  
> -/*
> - * Process a file to set standard arp entries
> - */
> -int
> -file(char *name)
> -{
> -     char     line[100], arg[5][50], *args[5];
> -     int      i, retval;
> -     FILE    *fp;
> -
> -     if ((fp = fopen(name, "r")) == NULL)
> -             err(1, "cannot open %s", name);
> -     args[0] = &arg[0][0];
> -     args[1] = &arg[1][0];
> -     args[2] = &arg[2][0];
> -     args[3] = &arg[3][0];
> -     args[4] = &arg[4][0];
> -     retval = 0;
> -     while (fgets(line, sizeof(line), fp) != NULL) {
> -             i = sscanf(line, "%49s %49s %49s %49s %49s", arg[0], arg[1],
> -                 arg[2], arg[3], arg[4]);
> -             if (i < 2) {
> -                     warnx("bad line: %s", line);
> -                     retval = 1;
> -                     continue;
> -             }
> -             if (replace)
> -                     delete(arg[0], NULL);
> -             if (set(i, args))
> -                     retval = 1;
> -     }
> -     fclose(fp);
> -     return (retval);
> -}
> -
>  void
>  getsocket(void)
>  {
> @@ -604,7 +557,7 @@ void
>  usage(void)
>  {
>       fprintf(stderr, "usage: arp [-adn] [-V rdomain] hostname\n");
> -     fprintf(stderr, "       arp [-F] [-f file] [-V rdomain] "
> +     fprintf(stderr, "       arp [-F] [-V rdomain] "
>           "-s hostname ether_addr\n"
>           "           [temp | permanent] [pub]\n");
>       fprintf(stderr, "       arp -W ether_addr [iface]\n");
> Index: usr.sbin/ndp/ndp.8
> ===================================================================
> RCS file: /cvs/src/usr.sbin/ndp/ndp.8,v
> retrieving revision 1.33
> diff -u -p -r1.33 ndp.8
> --- usr.sbin/ndp/ndp.8        3 Sep 2014 10:39:41 -0000       1.33
> +++ usr.sbin/ndp/ndp.8        31 Jul 2015 12:51:29 -0000
> @@ -44,7 +44,6 @@
>  .Op Fl H | P | R
>  .Op Fl A Ar wait
>  .Op Fl d Ar hostname
> -.Op Fl f Ar filename
>  .Op Fl i Ar interface Op Ar flag ...
>  .Op Fl s Ar nodename etheraddr Oo Ic temp Oc Op Ic proxy
>  .Op Fl V Ar rdomain
> @@ -119,9 +118,6 @@ the node has sent during the current sta
>  Erase all the NDP entries.
>  .It Fl d Ar hostname
>  Delete the specified NDP entry.
> -.It Fl f Ar filename
> -Parse the file specified by
> -.Ar filename .
>  .It Fl H
>  Harmonize consistency between the routing table and the default router
>  list; install the top entry of the list into the kernel routing table.
> Index: usr.sbin/ndp/ndp.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/ndp/ndp.c,v
> retrieving revision 1.61
> diff -u -p -r1.61 ndp.c
> --- usr.sbin/ndp/ndp.c        3 Jun 2015 08:10:53 -0000       1.61
> +++ usr.sbin/ndp/ndp.c        31 Jul 2015 12:51:29 -0000
> @@ -123,7 +123,6 @@ char ntop_buf[INET6_ADDRSTRLEN];  /* inet
>  char host_buf[NI_MAXHOST];           /* getnameinfo() */
>  char ifix_buf[IFNAMSIZ];             /* if_indextoname() */
>  
> -int file(char *);
>  void getsocket(void);
>  int set(int, char **);
>  void get(char *);
> @@ -294,41 +293,6 @@ main(int argc, char *argv[])
>       exit(0);
>  }
>  
> -/*
> - * Process a file to set standard ndp entries
> - */
> -int
> -file(char *name)
> -{
> -     FILE *fp;
> -     int i, retval;
> -     char line[100], arg[5][50], *args[5];
> -
> -     if ((fp = fopen(name, "r")) == NULL) {
> -             fprintf(stderr, "ndp: cannot open %s\n", name);
> -             exit(1);
> -     }
> -     args[0] = &arg[0][0];
> -     args[1] = &arg[1][0];
> -     args[2] = &arg[2][0];
> -     args[3] = &arg[3][0];
> -     args[4] = &arg[4][0];
> -     retval = 0;
> -     while (fgets(line, sizeof(line), fp) != NULL) {
> -             i = sscanf(line, "%49s %49s %49s %49s %49s",
> -                 arg[0], arg[1], arg[2], arg[3], arg[4]);
> -             if (i < 2) {
> -                     fprintf(stderr, "ndp: bad line: %s\n", line);
> -                     retval = 1;
> -                     continue;
> -             }
> -             if (set(i, args))
> -                     retval = 1;
> -     }
> -     fclose(fp);
> -     return (retval);
> -}
> -
>  void
>  getsocket(void)
>  {
> @@ -792,7 +756,7 @@ usage(void)
>  {
>       printf("usage: ndp [-nrt] [-a | -c | -p] [-H | -P | -R] ");
>       printf("[-A wait] [-d hostname]\n");
> -     printf("\t[-f filename] [-i interface [flag ...]]\n");
> +     printf("\t[-i interface [flag ...]]\n");
>       printf("\t[-s nodename etheraddr [temp] [proxy]] ");
>       printf("[-V rdomain] [hostname]\n");
>       exit(1);
> 

Reply via email to