[Winpcap-users] Re: [Ethereal-dev] Re: Subject: [Ethereal-users] Undefined struct 'sockaddr_storage' compiling under Win32

Loris Degioanni loris.degioanni at gmail.com
Wed Aug 10 12:11:10 GMT 2005

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.


Ulf Lamping wrote:
> Ethereal development <ethereal-dev at ethereal.com> schrieb am 10.08.05 10:29:24:
>>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 at ethereal.com
> http://www.ethereal.com/mailman/listinfo/ethereal-dev

More information about the Winpcap-users mailing list