libstand - Make ether_sprintf() public.
authorAntonio Huete Jimenez <tuxillo@quantumachine.net>
Sat, 29 Dec 2012 10:17:27 +0000 (11:17 +0100)
committerAntonio Huete Jimenez <tuxillo@quantumachine.net>
Sat, 29 Dec 2012 20:20:34 +0000 (21:20 +0100)
* Use ETHER_ADDR_LEN for ethernet address length where
  appriopriate.

Pointed-out-by: swildner
lib/libstand/ether.c
lib/libstand/libstand.3
lib/libstand/net.h
lib/libstand/stand.h

index f43fc45..18449a9 100644 (file)
@@ -106,8 +106,8 @@ readether(struct iodesc *d, void *pkt, size_t len, time_t tleft,
                return (-1);
 
        /* Validate Ethernet address. */
-       if (bcmp(d->myea, eh->ether_dhost, 6) != 0 &&
-           bcmp(bcea, eh->ether_dhost, 6) != 0) {
+       if (bcmp(d->myea, eh->ether_dhost, ETHER_ADDR_LEN) != 0 &&
+           bcmp(bcea, eh->ether_dhost, ETHER_ADDR_LEN) != 0) {
 #ifdef ETHER_DEBUG
                if (debug)
                        printf("readether: not ours (ea=%s)\n",
@@ -129,10 +129,10 @@ char *
 ether_sprintf(u_char *ap)
 {
        int i;
-       static char etherbuf[18];
+       static char etherbuf[3 * ETHER_ADDR_LEN];
        char *cp = etherbuf;
 
-       for (i = 0; i < 6; i++) {
+       for (i = 0; i < ETHER_ADDR_LEN; i++) {
                *cp++ = digits[*ap >> 4];
                *cp++ = digits[*ap++ & 0xf];
                *cp++ = ':';
index afcdc1a..e52930f 100644 (file)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD: src/lib/libstand/libstand.3,v 1.5.2.11 2002/06/26 19:14:43 schweikh Exp $
 .\"
-.Dd February 15, 2009
+.Dd December 29, 2012
 .Dt LIBSTAND 3
 .Os
 .Sh NAME
@@ -492,6 +492,15 @@ Returns -1 on error, 0 at
 .Dv EOF ,
 or 1 if the user elects to quit while reading.
 .El
+.Sh NETWORK
+.Bl -hang -width 10n
+.It Xo
+.Ft "char *"
+.Fn ether_sprintf "u_char *ap"
+.Xc
+.Pp
+Convert an ethernet address to its human readable notation as specified in IEEE 802.
+.El
 .Sh MISC
 .Bl -hang -width 10n
 .It Xo
index eb58004..6b9d702 100644 (file)
@@ -116,7 +116,6 @@ ssize_t     sendrecv(struct iodesc *,
 void   bootp(int, int);
 
 /* Utilities: */
-char   *ether_sprintf(u_char *);
 int    in_cksum(void *, int);
 char   *inet_ntoa(struct in_addr);
 char   *intoa(n_long);         /* similar to inet_ntoa */
index c0f3ba7..c66542e 100644 (file)
@@ -284,6 +284,9 @@ extern char *optarg;                        /* getopt(3) external variables */
 extern int     optind, opterr, optopt, optreset;
 extern int     getopt(int, char * const [], const char *);
 
+/* ether.c */
+extern char    *ether_sprintf(u_char *);
+
 /* pager.c */
 extern void    pager_open(void);
 extern void    pager_close(void);