--- rfc2131.c.orig 2007-02-07 20:52:07.000000000 +0000 +++ rfc2131.c 2007-02-06 22:13:02.000000000 +0000 @@ -101,16 +101,22 @@ { if (hwlen == 0 && clid && clid_len > 3) { - if ((clid[0] == ARPHRD_EUI64 && hwtype == ARPHRD_IEEE1394) || clid[0] == hwtype) + if (clid[0] == hwtype) { *len_out = clid_len - 1 ; return clid + 1; } - else + +#if defined(ARPHRD_EUI64) && defined(ARPHRD_IEEE1394) + if (clid[0] == ARPHRD_EUI64 && hwtype == ARPHRD_IEEE1394) { - *len_out = clid_len; - return clid; + *len_out = clid_len - 1 ; + return clid + 1; } +#endif + + *len_out = clid_len; + return clid; } *len_out = hwlen;