/usr/include/rutil/WinCompat.hxx is in libresiprocate-1.11-dev 1:1.11.0~beta5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #if !defined(resip_WinCompat_hxx)
#define resip_WinCompat_hxx
#if defined(WIN32)
#include <Iphlpapi.h>
#include <list>
#include "rutil/BaseException.hxx"
#include "rutil/Mutex.hxx"
#include "rutil/GenericIPAddress.hxx"
namespace resip
{
/**
@brief Class for handling compatibility across the multiple versions of
Windows.
*/
class WinCompat
{
public:
//typedef enum Version
// above is not valid C++ syntax
enum Version
{
NotWindows,
Windows95,
Windows98,
Windows98SE,
WindowsME,
WindowsNT,
Windows2000,
WindowsXP,
Windows2003Server,
WindowsUnknown
};
static Version getVersion();
class Exception : public BaseException
{
public:
Exception(const Data& msg, const Data& file, const int line);
const char* name() const { return "TransportException"; }
};
static GenericIPAddress determineSourceInterface(const GenericIPAddress& destination);
static std::list<std::pair<Data,Data> > getInterfaces(const Data& matching);
static void destroyInstance();
static bool windowsEventLog(WORD type, WORD numStrings, LPCTSTR* strings);
private:
static WinCompat* instance();
static WinCompat* mInstance;
static GenericIPAddress determineSourceInterfaceWithIPv6(const GenericIPAddress& destination);
static GenericIPAddress determineSourceInterfaceWithoutIPv6(const GenericIPAddress& destination);
typedef DWORD (WINAPI * GetBestInterfaceExProc)(const sockaddr *, DWORD *);
typedef DWORD (WINAPI * GetAdaptersAddressesProc)(ULONG, DWORD, VOID *, IP_ADAPTER_ADDRESSES *, ULONG *);
typedef DWORD (WINAPI * GetAdaptersInfoProc)(PIP_ADAPTER_INFO, PULONG);
typedef DWORD (WINAPI * GetBestRouteProc)(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDROW pBestRoute);
typedef DWORD (WINAPI * GetIpAddrTableProc)(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, BOOL bOrder);
WinCompat();
~WinCompat();
GetBestInterfaceExProc getBestInterfaceEx;
GetAdaptersAddressesProc getAdaptersAddresses;
GetAdaptersInfoProc getAdaptersInfo;
GetBestRouteProc getBestRoute;
GetIpAddrTableProc getIpAddrTable;
bool loadLibraryWithIPv4Failed;
bool loadLibraryWithIPv6Failed;
HMODULE hLib;
};
}
#endif // WIN32
#endif
|