Ethereal-dev: Re: [Ethereal-dev] Re: Subject: [Ethereal-users] Undefined struct 'sockaddr_stor
Ulf,
as I told you, if the problem is only sockaddr_storage, an alternative
is checking for its presence and, if not available, using a local copy
of the definition.
It's not very clean, but it should work. And I could probably put it in
WinPcap too.
Loris
Ulf Lamping wrote:
Ethereal development <ethereal-dev@xxxxxxxxxxxx> schrieb am 10.08.05 10:29:24:
Ulf,
the dependence on the platform SDK has been introduced, if I remember
well, in the first alpha of 3.1, when we added the ability to return
IPv6 addresses for the datected adapters.
The PacketGetNetInfoEx() function of packet.dll returns these addresses
to the calling application in an application-allocated array of struct
sockaddr_storage, and therefore the application needs the definition of
that structure.
If I remember well, wpcap has a different approach: it provides storage
for addresses in the list created by pcap_findalldevs, therefore the
application can use a normal struct sockaddr and ignore the address if
it doesn't understand IPv6. This is the reason, I think, why we don't
document the dependence on the platform SDK in the developer's pack:
wpcap-based apps *should* not be dependent on the platform SDK (I may be
wrong, I didn't try without it recently), and the developer's pack *is*
for wpcap-based apps.
The platform SDK is freely available on the internet (just google
"platform SDK"), and in a general way it's suggested when developing
networking applications for Windows.
BUT, since last version, MS decided to make it incompatible with Visual
Studio 6, and therefore you are forced to have VS.NET or better to for
the definition of struct sockaddr_storage.
Or define it on your own somewhere.
Hi Loris!
Thanks for the info, I couldn't send a mail to the WinPcap users-list as I'm not subscribed, so I got the answer this way :-)
To make a long story short: the use of the Packet32.h file is only required for the "Interface Details" dialog implemented in gtk/capture_if_details_dlg.c (and the loader of the packet.dll in capture_wpcap_packet.c).
Although this info (e.g. interface link speed) will be helpful in certain situartions, it seems to make deep trouble to compile this.
As I don't want to force all our Win32 developers to install the Platform SDK only for this reason, I'm thinking about making it optional through a definition in config.nmake.
This way, the default would be to compile without this dialog and thus without the Platform SDK.
Regards, ULFL
__________________________________________________________
Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
weltweit telefonieren! http://freephone.web.de/?mc=021201
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev