Page 1 of 1

SecureBridge conflict with Indy for headers

Posted: Thu 12 May 2011 04:03
by easyblue
Hello

Indy 9.0.50
BDS2006 C++BUilder version
SecureBridge 3.00.0.2


I found that the official version of securebridge has confliction with Indy with following error message, while during evaluation of securebridge there was no such problem.
//-----------
[C++ Error] ws2tcpip.h(370): E2015 Ambiguity between 'sockaddr_gen' and 'Scsshsocket::sockaddr_gen'
[C++ Error] ws2tcpip.h(371): E2015 Ambiguity between 'sockaddr_gen' and 'Scsshsocket::sockaddr_gen'
[C++ Error] ws2tcpip.h(372): E2015 Ambiguity between 'sockaddr_gen' and 'Scsshsocket::sockaddr_gen'
[C++ Error] Idwinsock2.hpp(256): E2015 Ambiguity between 'sockaddr_gen' and 'Scsshsocket::sockaddr_gen'
[C++ Error] Idwinsock2.hpp(258): E2015 Ambiguity between 'INTERFACE_INFO' and 'Scsshsocket::INTERFACE_INFO'
[C++ Error] Idwinsock2.hpp(260): E2015 Ambiguity between 'INTERFACE_INFO' and 'Scsshsocket::INTERFACE_INFO'//-----------

To reproduce it:

Open a new VCL project in C++Builder mode
drop a TIdTelnet component
the drop a TScSSHClient compoent

build this project.

Posted: Thu 12 May 2011 08:30
by Dimon
Thank you for information. We have reproduced this problem and fixed it. This fix will be included in the next SecureBridge build. As a workaround, please find the code below in the ScSSHSocket.hpp unit and delete it:

Code: Select all

#pragma pack(push,1)
struct sockaddr_gen
{
	
public:
	sockaddr_in AddressIn;
	unsigned filler1;
	unsigned filler2;
} ;
#pragma pack(pop)

#pragma pack(push,1)
struct INTERFACE_INFO
{
	
public:
	unsigned iiFlags;
	#pragma pack(push,1)
	sockaddr_gen iiAddress;
	#pragma pack(pop)
	#pragma pack(push,1)
	sockaddr_gen iiBroadcastAddress;
	#pragma pack(pop)
	#pragma pack(push,1)
	sockaddr_gen iiNetmask;
	#pragma pack(pop)
} ;
#pragma pack(pop)

typedef INTERFACE_INFO *PINTERFACE_INFO;