Thread: macaddr format fix

macaddr format fix

From
Mike Wyer
Date:
Hi,

The macaddr datatype understands most formats of MAC address, except 12
hex digits with no separators, eg 00AABBCCDDEE
This is easily remedied with the following patch (against 7.2.1):

--- src/backend/utils/adt/mac.c.old     Tue May 28 16:48:34 2002
+++ src/backend/utils/adt/mac.c Tue May 28 16:49:47 2002
@@ -39,6 +39,8 @@

        count = sscanf(str, "%x:%x:%x:%x:%x:%x", &a, &b, &c, &d, &e,
&f);
        if (count != 6)
+               count = sscanf(str, "%2x%2x%2x%2x%2x%2x", &a, &b, &c,
&d, &e, &f);
+       if (count != 6)
                count = sscanf(str, "%x-%x-%x-%x-%x-%x", &a, &b, &c, &d,
&e, &f);
        if (count != 6)
                count = sscanf(str, "%2x%2x%2x:%2x%2x%2x", &a, &b, &c,
&d, &e, &f);

########################## END ########################################

It simply adds two lines to the current checks, and works very well.

Cheers,
Mike Wyer
--
Mike Wyer <mw@doc.ic.ac.uk>     ||         "Woof?"
http://www.doc.ic.ac.uk/~mw     ||  Gaspode the Wonder Dog
Work:  +44 020 7594 8440        ||
Mobile: +44 07900 897543        ||  ICQ: 43922064

Attachment

Re: macaddr format fix

From
Bruce Momjian
Date:
Your patch has been added to the PostgreSQL unapplied patches list at:

    http://candle.pha.pa.us/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


Mike Wyer wrote:
> Hi,
>
> The macaddr datatype understands most formats of MAC address, except 12
> hex digits with no separators, eg 00AABBCCDDEE
> This is easily remedied with the following patch (against 7.2.1):
>
> --- src/backend/utils/adt/mac.c.old     Tue May 28 16:48:34 2002
> +++ src/backend/utils/adt/mac.c Tue May 28 16:49:47 2002
> @@ -39,6 +39,8 @@
>
>         count = sscanf(str, "%x:%x:%x:%x:%x:%x", &a, &b, &c, &d, &e,
> &f);
>         if (count != 6)
> +               count = sscanf(str, "%2x%2x%2x%2x%2x%2x", &a, &b, &c,
> &d, &e, &f);
> +       if (count != 6)
>                 count = sscanf(str, "%x-%x-%x-%x-%x-%x", &a, &b, &c, &d,
> &e, &f);
>         if (count != 6)
>                 count = sscanf(str, "%2x%2x%2x:%2x%2x%2x", &a, &b, &c,
> &d, &e, &f);
>
> ########################## END ########################################
>
> It simply adds two lines to the current checks, and works very well.
>
> Cheers,
> Mike Wyer
> --
> Mike Wyer <mw@doc.ic.ac.uk>     ||         "Woof?"
> http://www.doc.ic.ac.uk/~mw     ||  Gaspode the Wonder Dog
> Work:  +44 020 7594 8440        ||
> Mobile: +44 07900 897543        ||  ICQ: 43922064

Content-Description: mac.c.diff

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: macaddr format fix

From
Bruce Momjian
Date:
Patch applied.  Thanks.

---------------------------------------------------------------------------


Mike Wyer wrote:
> Hi,
>
> The macaddr datatype understands most formats of MAC address, except 12
> hex digits with no separators, eg 00AABBCCDDEE
> This is easily remedied with the following patch (against 7.2.1):
>
> --- src/backend/utils/adt/mac.c.old     Tue May 28 16:48:34 2002
> +++ src/backend/utils/adt/mac.c Tue May 28 16:49:47 2002
> @@ -39,6 +39,8 @@
>
>         count = sscanf(str, "%x:%x:%x:%x:%x:%x", &a, &b, &c, &d, &e,
> &f);
>         if (count != 6)
> +               count = sscanf(str, "%2x%2x%2x%2x%2x%2x", &a, &b, &c,
> &d, &e, &f);
> +       if (count != 6)
>                 count = sscanf(str, "%x-%x-%x-%x-%x-%x", &a, &b, &c, &d,
> &e, &f);
>         if (count != 6)
>                 count = sscanf(str, "%2x%2x%2x:%2x%2x%2x", &a, &b, &c,
> &d, &e, &f);
>
> ########################## END ########################################
>
> It simply adds two lines to the current checks, and works very well.
>
> Cheers,
> Mike Wyer
> --
> Mike Wyer <mw@doc.ic.ac.uk>     ||         "Woof?"
> http://www.doc.ic.ac.uk/~mw     ||  Gaspode the Wonder Dog
> Work:  +44 020 7594 8440        ||
> Mobile: +44 07900 897543        ||  ICQ: 43922064

Content-Description: mac.c.diff

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026