Ethereal-dev: Re: [Ethereal-dev] Re: Subject: [Ethereal-users] Undefined struct 'sockaddr_stor

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Loris Degioanni <loris.degioanni@xxxxxxxxx>
Date: Wed, 10 Aug 2005 05:11:10 -0700
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