On Sep 25, 2009, at 2:19 PM, Guy Harris wrote:
I guess we could replace that code with
#if defined(DLT_ATM_RFC1483) && (DLT_ATM_RFC1483 == 13)
{ 13, WTAP_ENCAP_ATM_RFC1483 },
#else
{ 13, WTAP_ENCAP_ENC },
#endif
so that it still as before for people trying to read BSD/OS RFC 1483-
encapsulated ATM files on BSD/OS and treats 13 as meaning "OpenBSD
IPsec encapsulation" everywhere else - it's not as if it handled BSD/
OS SLIP on any platforms, so it's not as if we break that.
This is the same solution that I had worked out myself and I think it
is the best one and will just do the right thing for nearly every
case. And it will not change the behavior of anything that "worked"
before.
In the pcap/bpf.h's that I have looked at I see something like this:
/*
* Encapsulated packets for IPsec; DLT_ENC is 13 in OpenBSD, but that's
* DLT_SLIP_BSDOS in NetBSD, so we don't use 13 for it in OSes other
* than OpenBSD.
*/
#ifdef __OpenBSD__
#define DLT_ENC 13
#else
#define DLT_ENC 109
#endif
So unless we are on an OpenBSD machine we will never have DLT_ENC ==
13. I also don't see code that would allow for DLT_ATM_RFC1483 to be
set to 13. I understand that there are lots of pcap/bpf.h's out there
but the change you propose seems like a reasonable one for me.
I am recompiling now to make sure that it will fix my problem; but I
can't see why it wouldn't.
Thank you for your help,
BMG