/usr/include/Poco/Net/IPAddressImpl.h is in libpoco-dev 1.8.0.1-1ubuntu4.
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | //
// IPAddressImpl.h
//
// Library: Net
// Package: NetCore
// Module: IPAddressImpl
//
// Definition of the IPAddressImpl class.
//
// Copyright (c) 2005-2011, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Net_IPAddressImpl_INCLUDED
#define Net_IPAddressImpl_INCLUDED
#include "Poco/Net/Net.h"
#include "Poco/Net/SocketDefs.h"
#include "Poco/RefCountedObject.h"
#include <vector>
namespace Poco {
namespace Net {
namespace Impl {
class IPAddressImpl : public Poco::RefCountedObject
{
public:
typedef AddressFamily::Family Family;
virtual ~IPAddressImpl();
virtual IPAddressImpl* clone() const = 0;
virtual std::string toString() const = 0;
virtual poco_socklen_t length() const = 0;
virtual const void* addr() const = 0;
virtual Family family() const = 0;
virtual int af() const = 0;
virtual Poco::UInt32 scope() const = 0;
virtual bool isWildcard() const = 0;
virtual bool isBroadcast() const = 0;
virtual bool isLoopback() const = 0;
virtual bool isMulticast() const = 0;
virtual bool isLinkLocal() const = 0;
virtual bool isSiteLocal() const = 0;
virtual bool isIPv4Mapped() const = 0;
virtual bool isIPv4Compatible() const = 0;
virtual bool isWellKnownMC() const = 0;
virtual bool isNodeLocalMC() const = 0;
virtual bool isLinkLocalMC() const = 0;
virtual bool isSiteLocalMC() const = 0;
virtual bool isOrgLocalMC() const = 0;
virtual bool isGlobalMC() const = 0;
virtual void mask(const IPAddressImpl* pMask, const IPAddressImpl* pSet) = 0;
virtual unsigned prefixLength() const = 0;
protected:
IPAddressImpl();
private:
IPAddressImpl(const IPAddressImpl&);
IPAddressImpl& operator = (const IPAddressImpl&);
};
//
// IPv4AddressImpl
//
class IPv4AddressImpl: public IPAddressImpl
{
public:
IPv4AddressImpl();
IPv4AddressImpl(const void* addr);
IPv4AddressImpl(unsigned prefix);
IPv4AddressImpl(const IPv4AddressImpl& addr);
IPv4AddressImpl& operator = (const IPv4AddressImpl&);
std::string toString() const;
poco_socklen_t length() const;
const void* addr() const;
Family family() const;
int af() const;
unsigned prefixLength() const;
Poco::UInt32 scope() const;
bool isWildcard() const;
bool isBroadcast() const;
bool isLoopback() const;
bool isMulticast() const;
bool isLinkLocal() const;
bool isSiteLocal() const;
bool isIPv4Compatible() const;
bool isIPv4Mapped() const;
bool isWellKnownMC() const;
bool isNodeLocalMC() const;
bool isLinkLocalMC() const;
bool isSiteLocalMC() const;
bool isOrgLocalMC() const;
bool isGlobalMC() const;
static IPv4AddressImpl parse(const std::string& addr);
void mask(const IPAddressImpl* pMask, const IPAddressImpl* pSet);
IPAddressImpl* clone() const;
IPv4AddressImpl operator & (const IPv4AddressImpl& addr) const;
IPv4AddressImpl operator | (const IPv4AddressImpl& addr) const;
IPv4AddressImpl operator ^ (const IPv4AddressImpl& addr) const;
IPv4AddressImpl operator ~ () const;
bool operator == (const IPv4AddressImpl& addr) const;
bool operator != (const IPv4AddressImpl& addr) const;
private:
struct in_addr _addr;
};
#if defined(POCO_HAVE_IPv6)
//
// IPv6AddressImpl
//
class IPv6AddressImpl: public IPAddressImpl
{
public:
IPv6AddressImpl();
IPv6AddressImpl(const void* addr);
IPv6AddressImpl(const void* addr, Poco::UInt32 scope);
IPv6AddressImpl(unsigned prefix);
std::string toString() const;
poco_socklen_t length() const;
const void* addr() const;
Family family() const;
int af() const;
unsigned prefixLength() const;
Poco::UInt32 scope() const;
bool isWildcard() const;
bool isBroadcast() const;
bool isLoopback() const;
bool isMulticast() const;
bool isLinkLocal() const;
bool isSiteLocal() const;
bool isIPv4Compatible() const;
bool isIPv4Mapped() const;
bool isWellKnownMC() const;
bool isNodeLocalMC() const;
bool isLinkLocalMC() const;
bool isSiteLocalMC() const;
bool isOrgLocalMC() const;
bool isGlobalMC() const;
static IPv6AddressImpl parse(const std::string& addr);
void mask(const IPAddressImpl* pMask, const IPAddressImpl* pSet);
IPAddressImpl* clone() const;
IPv6AddressImpl operator & (const IPv6AddressImpl& addr) const;
IPv6AddressImpl operator | (const IPv6AddressImpl& addr) const;
IPv6AddressImpl operator ^ (const IPv6AddressImpl& addr) const;
IPv6AddressImpl operator ~ () const;
bool operator == (const IPv6AddressImpl& addr) const;
bool operator != (const IPv6AddressImpl& addr) const;
IPv6AddressImpl(const IPv6AddressImpl& addr);
IPv6AddressImpl& operator = (const IPv6AddressImpl&);
private:
struct in6_addr _addr;
unsigned int _scope;
};
#endif // POCO_HAVE_IPv6
} } } // namespace Poco::Net::Impl
#endif // Net_IPAddressImpl_INCLUDED
|