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: Ulf Lamping <ulf.lamping@xxxxxx>
Date: Wed, 10 Aug 2005 13:43:34 +0200

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