[csw-devel] SF.net SVN: gar:[18090] csw/mgar/pkg/squid/branches/squid3
wilbury at users.sourceforge.net
wilbury at users.sourceforge.net
Wed May 23 14:33:37 CEST 2012
Revision: 18090
http://gar.svn.sourceforge.net/gar/?rev=18090&view=rev
Author: wilbury
Date: 2012-05-23 12:33:36 +0000 (Wed, 23 May 2012)
Log Message:
-----------
squid/branches/squid3: Fix --enable-ipf-transparent
Modified Paths:
--------------
csw/mgar/pkg/squid/branches/squid3/Makefile
Added Paths:
-----------
csw/mgar/pkg/squid/branches/squid3/files/0008-Rename-IpAddress-to-SquidIpAddress-to-make-mib2.h-ha.patch
Modified: csw/mgar/pkg/squid/branches/squid3/Makefile
===================================================================
--- csw/mgar/pkg/squid/branches/squid3/Makefile 2012-05-23 11:42:10 UTC (rev 18089)
+++ csw/mgar/pkg/squid/branches/squid3/Makefile 2012-05-23 12:33:36 UTC (rev 18090)
@@ -49,6 +49,7 @@
PATCHFILES += 0006-Use-default-cache_dir.patch
PATCHFILES += 0006-Use-usr-xpg4-bin-egrep.patch
PATCHFILES += 0007-Use-OpenCSW-specific-paths-for-various-helper-tests.patch
+PATCHFILES += 0008-Rename-IpAddress-to-SquidIpAddress-to-make-mib2.h-ha.patch
sysconfdir = /etc/opt/csw/$(NAME)
Added: csw/mgar/pkg/squid/branches/squid3/files/0008-Rename-IpAddress-to-SquidIpAddress-to-make-mib2.h-ha.patch
===================================================================
--- csw/mgar/pkg/squid/branches/squid3/files/0008-Rename-IpAddress-to-SquidIpAddress-to-make-mib2.h-ha.patch (rev 0)
+++ csw/mgar/pkg/squid/branches/squid3/files/0008-Rename-IpAddress-to-SquidIpAddress-to-make-mib2.h-ha.patch 2012-05-23 12:33:36 UTC (rev 18090)
@@ -0,0 +1,4648 @@
+From a5b58ab2e6c0def501de7d2b44435925ef1facac Mon Sep 17 00:00:00 2001
+From: Juraj Lutter <wilbury at opencsw.org>
+Date: Wed, 23 May 2012 14:30:09 +0200
+Subject: [PATCH] Rename IpAddress to SquidIpAddress to make mib2.h happy.
+
+---
+ ChangeLog | 2 +-
+ snmplib/parse.c | 2 +-
+ src/AccessLogEntry.h | 4 +-
+ src/ClientInfo.h | 2 +-
+ src/CompositePoolNode.h | 2 +-
+ src/ConnectionDetail.h | 4 +-
+ src/DiskIO/DiskDaemon/DiskdIOStrategy.cc | 2 +-
+ src/HierarchyLogEntry.h | 2 +-
+ src/HttpRequest.h | 8 +-
+ src/ICP.h | 18 ++--
+ src/PeerSelectState.h | 6 +-
+ src/ProtoPort.h | 2 +-
+ src/acl/Arp.cc | 8 +-
+ src/acl/Asn.cc | 28 +++---
+ src/acl/Asn.h | 12 +--
+ src/acl/DestinationAsn.h | 2 +-
+ src/acl/FilledChecklist.h | 6 +-
+ src/acl/Ip.cc | 14 +--
+ src/acl/Ip.h | 12 +--
+ src/acl/SourceAsn.h | 2 +-
+ src/adaptation/icap/ModXact.cc | 2 +-
+ src/adaptation/icap/Xaction.cc | 6 +-
+ src/auth/AclMaxUserIp.cc | 2 +-
+ src/auth/AclMaxUserIp.h | 2 +-
+ src/auth/User.cc | 4 +-
+ src/auth/User.h | 4 +-
+ src/auth/UserRequest.cc | 8 +-
+ src/auth/UserRequest.h | 8 +-
+ src/auth/digest/auth_digest.cc | 2 +-
+ src/cache_cf.cc | 8 +-
+ src/client_db.cc | 16 ++--
+ src/client_side.cc | 6 +-
+ src/client_side.h | 6 +-
+ src/client_side_reply.cc | 10 +-
+ src/client_side_reply.h | 4 +-
+ src/client_side_request.cc | 6 +-
+ src/comm.cc | 20 ++--
+ src/comm.h | 12 +--
+ src/delay_pools.cc | 18 ++--
+ src/dns_internal.cc | 20 ++--
+ src/errorpage.h | 2 +-
+ src/esi/Esi.cc | 2 +-
+ src/external_acl.cc | 2 +-
+ src/fde.h | 4 +-
+ src/forward.cc | 14 +--
+ src/forward.h | 4 +-
+ src/fqdncache.cc | 6 +-
+ src/ftp.cc | 12 +--
+ src/globals.h | 4 +-
+ src/helper.h | 8 +-
+ src/htcp.cc | 62 ++++++------
+ src/htcp.h | 4 +-
+ src/http.cc | 2 +-
+ src/icmp/Icmp.cc | 2 +-
+ src/icmp/Icmp.h | 8 +-
+ src/icmp/Icmp4.cc | 2 +-
+ src/icmp/Icmp4.h | 2 +-
+ src/icmp/Icmp6.cc | 2 +-
+ src/icmp/Icmp6.h | 2 +-
+ src/icmp/IcmpPinger.h | 2 +-
+ src/icmp/IcmpSquid.cc | 8 +-
+ src/icmp/IcmpSquid.h | 4 +-
+ src/icmp/net_db.cc | 32 +++----
+ src/icmp/net_db.h | 10 +-
+ src/icmp/testIcmp.h | 2 +-
+ src/icp_v2.cc | 30 +++---
+ src/icp_v3.cc | 4 +-
+ src/ident/Ident.cc | 8 +-
+ src/ident/Ident.h | 4 +-
+ src/internal.cc | 2 +-
+ src/ip/IpAddress.cc | 150 +++++++++++++++---------------
+ src/ip/IpAddress.h | 74 +++++++--------
+ src/ip/IpIntercept.cc | 22 ++---
+ src/ip/IpIntercept.h | 18 ++--
+ src/ip/testIpAddress.cc | 52 +++++------
+ src/ipc.cc | 6 +-
+ src/ipc_win32.cc | 16 ++--
+ src/ipcache.cc | 38 ++++----
+ src/neighbors.cc | 14 +--
+ src/pconn.cc | 6 +-
+ src/pconn.h | 8 +-
+ src/protos.h | 32 +++----
+ src/redirect.cc | 4 +-
+ src/send-announce.cc | 2 +-
+ src/snmp_agent.cc | 2 +-
+ src/snmp_core.cc | 12 +--
+ src/ssl/context_storage.cc | 20 ++--
+ src/ssl/context_storage.h | 8 +-
+ src/structs.h | 28 +++---
+ src/tests/stub_comm.cc | 2 +-
+ src/tools.cc | 2 +-
+ src/tunnel.cc | 2 +-
+ src/unlinkd.cc | 2 +-
+ src/wccp.cc | 4 +-
+ src/wccp2.cc | 6 +-
+ src/win32.cc | 6 +-
+ tools/cachemgr.cc | 2 +-
+ tools/squidclient.cc | 10 +-
+ 98 files changed, 550 insertions(+), 550 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 659c70c..c4dd31f 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -306,7 +306,7 @@ Changes to squid-3.1.4 (30 May 2010):
+ - Bug 2633: Fix Ecap::HeaderRep::value(name) fails when there is no named header field
+ - Change LDAP helpers to default to LDAP version 3 if available
+ - Add Joomla and Salted Hash support to squid_db_auth helper
+- - Fixed IpAddress port printing for ports higher than 9999
++ - Fixed SquidIpAddress port printing for ports higher than 9999
+ - Disable chunked memory pooling by default.
+ - ... and several build errors.
+
+diff --git a/snmplib/parse.c b/snmplib/parse.c
+index 517b01d..c41eadb 100644
+--- a/snmplib/parse.c
++++ b/snmplib/parse.c
+@@ -186,7 +186,7 @@ struct tok tokens[] = {
+ {"OF", sizeof("OF") - 1, OF},
+ {"SEQUENCE", sizeof("SEQUENCE") - 1, SEQUENCE},
+ {"NULL", sizeof("NULL") - 1, NUL},
+- {"IpAddress", sizeof("IpAddress") - 1, IPADDR},
++ {"SquidIpAddress", sizeof("SquidIpAddress") - 1, IPADDR},
+ {"INTEGER", sizeof("INTEGER") - 1, INTEGER},
+ {"Counter", sizeof("Counter") - 1, COUNTER},
+ {"read-only", sizeof("read-only") - 1, READONLY},
+diff --git a/src/AccessLogEntry.h b/src/AccessLogEntry.h
+index cd5e3c2..bc0e76a 100644
+--- a/src/AccessLogEntry.h
++++ b/src/AccessLogEntry.h
+@@ -103,7 +103,7 @@ public:
+ {;
+ }
+
+- IpAddress caddr;
++ SquidIpAddress caddr;
+ int64_t requestSize;
+ int64_t replySize;
+ int requestHeadersSize; ///< received, including request line
+@@ -170,7 +170,7 @@ public:
+ public:
+ IcapLogEntry():request(NULL),reply(NULL),outcome(Adaptation::Icap::xoUnknown),trTime(0),ioTime(0),resStatus(HTTP_STATUS_NONE) {}
+
+- IpAddress hostAddr; ///< ICAP server IP address
++ SquidIpAddress hostAddr; ///< ICAP server IP address
+ String serviceName; ///< ICAP service name
+ String reqUri; ///< ICAP Request-URI
+ Adaptation::Icap::ICAP::Method reqMethod; ///< ICAP request method
+diff --git a/src/ClientInfo.h b/src/ClientInfo.h
+index 52c63d0..1e27613 100644
+--- a/src/ClientInfo.h
++++ b/src/ClientInfo.h
+@@ -11,7 +11,7 @@ class ClientInfo
+ public:
+ hash_link hash; /* must be first */
+
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ struct {
+ int result_hist[LOG_TYPE_MAX];
+diff --git a/src/CompositePoolNode.h b/src/CompositePoolNode.h
+index ccecf4a..69843e8 100644
+--- a/src/CompositePoolNode.h
++++ b/src/CompositePoolNode.h
+@@ -76,7 +76,7 @@ public:
+ public:
+ CompositeSelectionDetails() {}
+
+- IpAddress src_addr;
++ SquidIpAddress src_addr;
+ AuthUserRequest *user;
+ String tag;
+ };
+diff --git a/src/ConnectionDetail.h b/src/ConnectionDetail.h
+index 519a5a1..f3e7027 100644
+--- a/src/ConnectionDetail.h
++++ b/src/ConnectionDetail.h
+@@ -44,9 +44,9 @@ public:
+
+ ConnectionDetail();
+
+- IpAddress me;
++ SquidIpAddress me;
+
+- IpAddress peer;
++ SquidIpAddress peer;
+ };
+
+ #endif
+diff --git a/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc b/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc
+index 54ba1a0..f443e79 100644
+--- a/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc
++++ b/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc
+@@ -157,7 +157,7 @@ DiskdIOStrategy::init()
+ char skey1[32];
+ char skey2[32];
+ char skey3[32];
+- IpAddress localhost;
++ SquidIpAddress localhost;
+
+ ikey = (getpid() << 10) + (instanceID << 2);
+ ikey &= 0x7fffffff;
+diff --git a/src/HierarchyLogEntry.h b/src/HierarchyLogEntry.h
+index ebeba2b..f57c9c7 100644
+--- a/src/HierarchyLogEntry.h
++++ b/src/HierarchyLogEntry.h
+@@ -63,7 +63,7 @@ public:
+ int64_t peer_response_time; ///< last peer response delay
+ timeval first_conn_start; ///< first connection use among all peers
+ int64_t total_response_time; ///< cumulative for all peers
+- IpAddress peer_local_addr; ///< local IP:port of the last server-side connection
++ SquidIpAddress peer_local_addr; ///< local IP:port of the last server-side connection
+ };
+
+ extern void hierarchyNote(HierarchyLogEntry *, hier_code, const char *);
+diff --git a/src/HttpRequest.h b/src/HttpRequest.h
+index efd3063..5c1a8d2 100644
+--- a/src/HttpRequest.h
++++ b/src/HttpRequest.h
+@@ -147,7 +147,7 @@ private:
+ #endif
+
+ public:
+- IpAddress host_addr;
++ SquidIpAddress host_addr;
+
+ AuthUserRequest *auth_user_request;
+
+@@ -165,13 +165,13 @@ public:
+
+ int imslen;
+
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+
+ #if FOLLOW_X_FORWARDED_FOR
+- IpAddress indirect_client_addr;
++ SquidIpAddress indirect_client_addr;
+ #endif /* FOLLOW_X_FORWARDED_FOR */
+
+- IpAddress my_addr;
++ SquidIpAddress my_addr;
+
+ HierarchyLogEntry hier;
+
+diff --git a/src/ICP.h b/src/ICP.h
+index 3864f70..14fe535 100644
+--- a/src/ICP.h
++++ b/src/ICP.h
+@@ -68,7 +68,7 @@ struct _icp_common_t {
+ _icp_common_t();
+ _icp_common_t(char *buf, unsigned int len);
+
+- void handleReply(char *buf, IpAddress &from);
++ void handleReply(char *buf, SquidIpAddress &from);
+ static _icp_common_t *createMessage(icp_opcode opcode, int flags, const char *url, int reqnum, int pad);
+ icp_opcode getOpCode() const;
+ #endif
+@@ -99,7 +99,7 @@ public:
+ HttpRequest *request;
+ int fd;
+
+- IpAddress from;
++ SquidIpAddress from;
+ char *url;
+ };
+
+@@ -107,7 +107,7 @@ public:
+
+ /// \ingroup ServerProtocolICPAPI
+ struct icpUdpData {
+- IpAddress address;
++ SquidIpAddress address;
+ void *msg;
+ size_t len;
+ icpUdpData *next;
+@@ -122,25 +122,25 @@ struct icpUdpData {
+ };
+
+ /// \ingroup ServerProtocolICPAPI
+-HttpRequest* icpGetRequest(char *url, int reqnum, int fd, IpAddress &from);
++HttpRequest* icpGetRequest(char *url, int reqnum, int fd, SquidIpAddress &from);
+
+ /// \ingroup ServerProtocolICPAPI
+-int icpAccessAllowed(IpAddress &from, HttpRequest * icp_request);
++int icpAccessAllowed(SquidIpAddress &from, HttpRequest * icp_request);
+
+ /// \ingroup ServerProtocolICPAPI
+-SQUIDCEXTERN void icpCreateAndSend(icp_opcode, int flags, char const *url, int reqnum, int pad, int fd, const IpAddress &from);
++SQUIDCEXTERN void icpCreateAndSend(icp_opcode, int flags, char const *url, int reqnum, int pad, int fd, const SquidIpAddress &from);
+
+ /// \ingroup ServerProtocolICPAPI
+ extern icp_opcode icpGetCommonOpcode();
+
+ /// \ingroup ServerProtocolICPAPI
+-SQUIDCEXTERN int icpUdpSend(int, const IpAddress &, icp_common_t *, log_type, int);
++SQUIDCEXTERN int icpUdpSend(int, const SquidIpAddress &, icp_common_t *, log_type, int);
+
+ /// \ingroup ServerProtocolICPAPI
+ SQUIDCEXTERN log_type icpLogFromICPCode(icp_opcode opcode);
+
+ /// \ingroup ServerProtocolICPAPI
+-void icpDenyAccess(IpAddress &from, char *url, int reqnum, int fd);
++void icpDenyAccess(SquidIpAddress &from, char *url, int reqnum, int fd);
+
+ /// \ingroup ServerProtocolICPAPI
+ SQUIDCEXTERN PF icpHandleUdp;
+@@ -149,7 +149,7 @@ SQUIDCEXTERN PF icpHandleUdp;
+ SQUIDCEXTERN PF icpUdpSendQueue;
+
+ /// \ingroup ServerProtocolICPAPI
+-SQUIDCEXTERN void icpHandleIcpV3(int, IpAddress &, char *, int);
++SQUIDCEXTERN void icpHandleIcpV3(int, SquidIpAddress &, char *, int);
+
+ /// \ingroup ServerProtocolICPAPI
+ SQUIDCEXTERN int icpCheckUdpHit(StoreEntry *, HttpRequest * request);
+diff --git a/src/PeerSelectState.h b/src/PeerSelectState.h
+index b56e9db..f6fc3f4 100644
+--- a/src/PeerSelectState.h
++++ b/src/PeerSelectState.h
+@@ -52,16 +52,16 @@ public:
+ void *callback_data;
+ FwdServer *servers;
+ /*
+- * Why are these IpAddress instead of peer *? Because a
++ * Why are these SquidIpAddress instead of peer *? Because a
+ * peer structure can become invalid during the peer selection
+ * phase, specifically after a reconfigure. Thus we need to lookup
+ * the peer * based on the address when we are finally ready to
+ * reference the peer structure.
+ */
+
+- IpAddress first_parent_miss;
++ SquidIpAddress first_parent_miss;
+
+- IpAddress closest_parent_miss;
++ SquidIpAddress closest_parent_miss;
+ /*
+ * ->hit can be peer* because it should only be
+ * accessed during the thread when it is set
+diff --git a/src/ProtoPort.h b/src/ProtoPort.h
+index e280b67..73a734e 100644
+--- a/src/ProtoPort.h
++++ b/src/ProtoPort.h
+@@ -16,7 +16,7 @@ struct http_port_list {
+
+ http_port_list *next;
+
+- IpAddress s;
++ SquidIpAddress s;
+ char *protocol; /* protocol name */
+ char *name; /* visible name */
+ char *defaultsite; /* default web site */
+diff --git a/src/acl/Arp.cc b/src/acl/Arp.cc
+index dd4e971..cc81230 100644
+--- a/src/acl/Arp.cc
++++ b/src/acl/Arp.cc
+@@ -43,7 +43,7 @@
+
+ struct arpreq {
+
+- IpAddress arp_pa; /* protocol address */
++ SquidIpAddress arp_pa; /* protocol address */
+
+ struct sockaddr arp_ha; /* hardware address */
+ int arp_flags; /* flags */
+@@ -82,7 +82,7 @@ struct arpreq {
+ #endif
+ static void aclParseArpList(SplayNode<acl_arp_data *> **curlist);
+ static int decode_eth(const char *asc, char *eth);
+-static int aclMatchArp(SplayNode<acl_arp_data *> **dataptr, IpAddress &c);
++static int aclMatchArp(SplayNode<acl_arp_data *> **dataptr, SquidIpAddress &c);
+ static SplayNode<acl_arp_data *>::SPLAYCMP aclArpCompare;
+ static SplayNode<acl_arp_data *>::SPLAYWALKEE aclDumpArpListWalkee;
+
+@@ -240,14 +240,14 @@ ACLARP::match(ACLChecklist *cl)
+ /* aclMatchArp */
+ /***************/
+ int
+-aclMatchArp(SplayNode<acl_arp_data *> **dataptr, IpAddress &c)
++aclMatchArp(SplayNode<acl_arp_data *> **dataptr, SquidIpAddress &c)
+ {
+ struct arpreq arpReq;
+ #if !defined(_SQUID_WIN32_)
+ struct sockaddr_in *sa = NULL;
+ #endif
+
+- IpAddress ipAddr = c;
++ SquidIpAddress ipAddr = c;
+ ipAddr.SetPort(0); // ARP will fail if the port is included in the match.
+
+ #if defined(_SQUID_LINUX_)
+diff --git a/src/acl/Asn.cc b/src/acl/Asn.cc
+index 6442a8a..378ba45 100644
+--- a/src/acl/Asn.cc
++++ b/src/acl/Asn.cc
+@@ -60,9 +60,9 @@ class m_ADDR
+ {
+ public:
+ uint8_t len;
+- IpAddress addr;
++ SquidIpAddress addr;
+
+- m_ADDR() : len(sizeof(IpAddress)) {};
++ m_ADDR() : len(sizeof(SquidIpAddress)) {};
+ };
+
+ /* END of definitions for radix tree entries */
+@@ -135,7 +135,7 @@ static OBJH asnStats;
+ /* PUBLIC */
+
+ int
+-asnMatchIp(CbDataList<int> *data, IpAddress &addr)
++asnMatchIp(CbDataList<int> *data, SquidIpAddress &addr)
+ {
+ struct squid_radix_node *rn;
+ as_info *e;
+@@ -401,8 +401,8 @@ asnAddNet(char *as_string, int as_number)
+ CbDataList<int> *q = NULL;
+ as_info *asinfo = NULL;
+
+- IpAddress mask;
+- IpAddress addr;
++ SquidIpAddress mask;
++ SquidIpAddress addr;
+ char *t;
+ int bitl;
+
+@@ -520,8 +520,8 @@ printRadixNode(struct squid_radix_node *rn, void *_sentry)
+ CbDataList<int> *q;
+ as_info *asinfo;
+ char buf[MAX_IPSTRLEN];
+- IpAddress addr;
+- IpAddress mask;
++ SquidIpAddress addr;
++ SquidIpAddress mask;
+
+ assert(e);
+ assert(e->e_info);
+@@ -549,7 +549,7 @@ ACLASN::~ACLASN()
+
+ bool
+
+-ACLASN::match(IpAddress toMatch)
++ACLASN::match(SquidIpAddress toMatch)
+ {
+ return asnMatchIp(data, toMatch);
+ }
+@@ -592,7 +592,7 @@ ACLASN::parse()
+ }
+ }
+
+-ACLData<IpAddress> *
++ACLData<SquidIpAddress> *
+ ACLASN::clone() const
+ {
+ if (data)
+@@ -603,18 +603,18 @@ ACLASN::clone() const
+
+ /* explicit template instantiation required for some systems */
+
+-template class ACLStrategised<IpAddress>;
++template class ACLStrategised<SquidIpAddress>;
+
+ ACL::Prototype ACLASN::SourceRegistryProtoype(&ACLASN::SourceRegistryEntry_, "src_as");
+
+-ACLStrategised<IpAddress> ACLASN::SourceRegistryEntry_(new ACLASN, ACLSourceASNStrategy::Instance(), "src_as");
++ACLStrategised<SquidIpAddress> ACLASN::SourceRegistryEntry_(new ACLASN, ACLSourceASNStrategy::Instance(), "src_as");
+
+ ACL::Prototype ACLASN::DestinationRegistryProtoype(&ACLASN::DestinationRegistryEntry_, "dst_as");
+
+-ACLStrategised<IpAddress> ACLASN::DestinationRegistryEntry_(new ACLASN, ACLDestinationASNStrategy::Instance(), "dst_as");
++ACLStrategised<SquidIpAddress> ACLASN::DestinationRegistryEntry_(new ACLASN, ACLDestinationASNStrategy::Instance(), "dst_as");
+
+ int
+-ACLSourceASNStrategy::match (ACLData<IpAddress> * &data, ACLFilledChecklist *checklist)
++ACLSourceASNStrategy::match (ACLData<SquidIpAddress> * &data, ACLFilledChecklist *checklist)
+ {
+ return data->match(checklist->src_addr);
+ }
+@@ -647,7 +647,7 @@ ACLDestinationASNStrategy::match (ACLData<MatchType> * &data, ACLFilledChecklist
+ debugs(28, 3, "asnMatchAcl: Can't yet compare '" << "unknown" /*name*/ << "' ACL for '" << checklist->request->GetHost() << "'");
+ checklist->changeState (DestinationIPLookup::Instance());
+ } else {
+- IpAddress noaddr;
++ SquidIpAddress noaddr;
+ noaddr.SetNoAddr();
+ return data->match(noaddr);
+ }
+diff --git a/src/acl/Asn.h b/src/acl/Asn.h
+index 557249a..8a8b996 100644
+--- a/src/acl/Asn.h
++++ b/src/acl/Asn.h
+@@ -38,7 +38,7 @@
+ #include "acl/Checklist.h"
+ #include "ip/IpAddress.h"
+
+-SQUIDCEXTERN int asnMatchIp(CbDataList<int> *, IpAddress &);
++SQUIDCEXTERN int asnMatchIp(CbDataList<int> *, SquidIpAddress &);
+
+ /// \ingroup ACLAPI
+ SQUIDCEXTERN void asnInit(void);
+@@ -47,7 +47,7 @@ SQUIDCEXTERN void asnInit(void);
+ SQUIDCEXTERN void asnFreeMemory(void);
+
+ /// \ingroup ACLAPI
+-class ACLASN : public ACLData<IpAddress>
++class ACLASN : public ACLData<SquidIpAddress>
+ {
+
+ public:
+@@ -55,18 +55,18 @@ public:
+
+ virtual ~ACLASN();
+
+- virtual bool match(IpAddress);
++ virtual bool match(SquidIpAddress);
+ virtual wordlist *dump();
+ virtual void parse();
+ bool empty() const;
+- virtual ACLData<IpAddress> *clone() const;
++ virtual ACLData<SquidIpAddress> *clone() const;
+ virtual void prepareForUse();
+
+ private:
+ static ACL::Prototype SourceRegistryProtoype;
+- static ACLStrategised<IpAddress> SourceRegistryEntry_;
++ static ACLStrategised<SquidIpAddress> SourceRegistryEntry_;
+ static ACL::Prototype DestinationRegistryProtoype;
+- static ACLStrategised<IpAddress> DestinationRegistryEntry_;
++ static ACLStrategised<SquidIpAddress> DestinationRegistryEntry_;
+ CbDataList<int> *data;
+ };
+
+diff --git a/src/acl/DestinationAsn.h b/src/acl/DestinationAsn.h
+index efaaade..e50fc26 100644
+--- a/src/acl/DestinationAsn.h
++++ b/src/acl/DestinationAsn.h
+@@ -37,7 +37,7 @@
+ #include "ip/IpAddress.h"
+
+ /// \ingroup ACLAPI
+-class ACLDestinationASNStrategy : public ACLStrategy<IpAddress>
++class ACLDestinationASNStrategy : public ACLStrategy<SquidIpAddress>
+ {
+
+ public:
+diff --git a/src/acl/FilledChecklist.h b/src/acl/FilledChecklist.h
+index dd95724..b340914 100644
+--- a/src/acl/FilledChecklist.h
++++ b/src/acl/FilledChecklist.h
+@@ -43,9 +43,9 @@ public:
+ virtual bool hasReply() const { return reply != NULL; }
+
+ public:
+- IpAddress src_addr;
+- IpAddress dst_addr;
+- IpAddress my_addr;
++ SquidIpAddress src_addr;
++ SquidIpAddress dst_addr;
++ SquidIpAddress my_addr;
+ struct peer *dst_peer;
+ char *dst_rdns;
+
+diff --git a/src/acl/Ip.cc b/src/acl/Ip.cc
+index 14be32b..32a5242 100644
+--- a/src/acl/Ip.cc
++++ b/src/acl/Ip.cc
+@@ -125,7 +125,7 @@ acl_ip_data::toStr(char *buf, int len) const
+ int
+ aclIpAddrNetworkCompare(acl_ip_data * const &p, acl_ip_data * const &q)
+ {
+- IpAddress A = p->addr1;
++ SquidIpAddress A = p->addr1;
+
+ /* apply netmask */
+ A.ApplyMask(q->mask);
+@@ -192,7 +192,7 @@ acl_ip_data::NetworkCompare(acl_ip_data * const & a, acl_ip_data * const &b)
+ * This function should NOT be called if 'asc' is a hostname!
+ */
+ bool
+-acl_ip_data::DecodeMask(const char *asc, IpAddress &mask, int ctype)
++acl_ip_data::DecodeMask(const char *asc, SquidIpAddress &mask, int ctype)
+ {
+ char junk;
+ int a1 = 0;
+@@ -252,7 +252,7 @@ acl_ip_data::FactoryParse(const char *t)
+ LOCAL_ARRAY(char, mask, 256);
+ acl_ip_data *r = NULL;
+ acl_ip_data **Q = NULL;
+- IpAddress temp;
++ SquidIpAddress temp;
+ char c;
+ unsigned int changed;
+ acl_ip_data *q = new acl_ip_data;
+@@ -400,13 +400,13 @@ acl_ip_data::FactoryParse(const char *t)
+ /*
+ * Note, must use plain xgetaddrinfo() here because at startup
+ * ipcache hasn't been initialized
+- * TODO: offload this to one of the IpAddress lookups.
++ * TODO: offload this to one of the SquidIpAddress lookups.
+ */
+
+ debugs(28, 5, "aclIpParseIpData: Lookup Host/IP " << addr1);
+ struct addrinfo *hp = NULL, *x = NULL;
+ struct addrinfo hints;
+- IpAddress *prev_addr = NULL;
++ SquidIpAddress *prev_addr = NULL;
+
+ memset(&hints, 0, sizeof(struct addrinfo));
+
+@@ -552,7 +552,7 @@ ACLIP::empty () const
+ }
+
+ int
+-ACLIP::match(IpAddress &clientip)
++ACLIP::match(SquidIpAddress &clientip)
+ {
+ static acl_ip_data ClientAddress;
+ /*
+@@ -572,4 +572,4 @@ ACLIP::match(IpAddress &clientip)
+
+ acl_ip_data::acl_ip_data () :addr1(), addr2(), mask(), next (NULL) {}
+
+-acl_ip_data::acl_ip_data (IpAddress const &anAddress1, IpAddress const &anAddress2, IpAddress const &aMask, acl_ip_data *aNext) : addr1(anAddress1), addr2(anAddress2), mask(aMask), next(aNext) {}
++acl_ip_data::acl_ip_data (SquidIpAddress const &anAddress1, SquidIpAddress const &anAddress2, SquidIpAddress const &aMask, acl_ip_data *aNext) : addr1(anAddress1), addr2(anAddress2), mask(aMask), next(aNext) {}
+diff --git a/src/acl/Ip.h b/src/acl/Ip.h
+index 9ff8cea..8cac599 100644
+--- a/src/acl/Ip.h
++++ b/src/acl/Ip.h
+@@ -47,20 +47,20 @@ public:
+
+ acl_ip_data ();
+
+- acl_ip_data (IpAddress const &, IpAddress const &, IpAddress const &, acl_ip_data *);
++ acl_ip_data (SquidIpAddress const &, SquidIpAddress const &, SquidIpAddress const &, acl_ip_data *);
+ void toStr(char *buf, int len) const;
+
+- IpAddress addr1;
++ SquidIpAddress addr1;
+
+- IpAddress addr2;
++ SquidIpAddress addr2;
+
+- IpAddress mask; /**< \todo This should perhapse be stored as a CIDR range now instead of a full IP mask. */
++ SquidIpAddress mask; /**< \todo This should perhapse be stored as a CIDR range now instead of a full IP mask. */
+
+ acl_ip_data *next; /**< used for parsing, not for storing */
+
+ private:
+
+- static bool DecodeMask(const char *asc, IpAddress &mask, int string_format_type);
++ static bool DecodeMask(const char *asc, SquidIpAddress &mask, int string_format_type);
+ };
+
+ MEMPROXY_CLASS_INLINE(acl_ip_data);
+@@ -88,7 +88,7 @@ public:
+
+ protected:
+
+- int match(IpAddress &);
++ int match(SquidIpAddress &);
+ IPSplay *data;
+
+ private:
+diff --git a/src/acl/SourceAsn.h b/src/acl/SourceAsn.h
+index ffd8abc..cfb86f4 100644
+--- a/src/acl/SourceAsn.h
++++ b/src/acl/SourceAsn.h
+@@ -40,7 +40,7 @@ class ACLChecklist;
+ #include "acl/Strategy.h"
+ #include "ip/IpAddress.h"
+
+-class ACLSourceASNStrategy : public ACLStrategy<IpAddress>
++class ACLSourceASNStrategy : public ACLStrategy<SquidIpAddress>
+ {
+
+ public:
+diff --git a/src/adaptation/icap/ModXact.cc b/src/adaptation/icap/ModXact.cc
+index c719cbd..f86e70a 100644
+--- a/src/adaptation/icap/ModXact.cc
++++ b/src/adaptation/icap/ModXact.cc
+@@ -1271,7 +1271,7 @@ void Adaptation::Icap::ModXact::makeRequestHeaders(MemBuf &buf)
+ }
+
+ if (TheConfig.send_client_ip && request) {
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+ #if FOLLOW_X_FORWARDED_FOR
+ if (TheConfig.icap_uses_indirect_client) {
+ client_addr = request->indirect_client_addr;
+diff --git a/src/adaptation/icap/Xaction.cc b/src/adaptation/icap/Xaction.cc
+index ba7d6a7..1e90830 100644
+--- a/src/adaptation/icap/Xaction.cc
++++ b/src/adaptation/icap/Xaction.cc
+@@ -88,7 +88,7 @@ void Adaptation::Icap::Xaction::start()
+ // TODO: obey service-specific, OPTIONS-reported connection limit
+ void Adaptation::Icap::Xaction::openConnection()
+ {
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+
+ Must(connection < 0);
+
+@@ -117,7 +117,7 @@ void Adaptation::Icap::Xaction::openConnection()
+
+ disableRetries(); // we only retry pconn failures
+
+- IpAddress outgoing;
++ SquidIpAddress outgoing;
+ if (!Ip::EnableIpv6 && !outgoing.SetIPv4()) {
+ debugs(31, DBG_CRITICAL, "ERROR: IPv6 is disabled. " << outgoing << " is not an IPv4 address.");
+ dieOnConnectionFailure(); // throws
+@@ -185,7 +185,7 @@ void Adaptation::Icap::Xaction::closeConnection()
+ }
+
+ if (reuseConnection) {
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+ //status() adds leading spaces.
+ debugs(93,3, HERE << "pushing pconn" << status());
+ AsyncCall::Pointer call = NULL;
+diff --git a/src/auth/AclMaxUserIp.cc b/src/auth/AclMaxUserIp.cc
+index 881ea82..2a5bcd3 100644
+--- a/src/auth/AclMaxUserIp.cc
++++ b/src/auth/AclMaxUserIp.cc
+@@ -114,7 +114,7 @@ ACLMaxUserIP::parse()
+ int
+ ACLMaxUserIP::match(AuthUserRequest * auth_user_request,
+
+- IpAddress const &src_addr)
++ SquidIpAddress const &src_addr)
+ {
+ /*
+ * the logic for flush the ip list when the limit is hit vs keep
+diff --git a/src/auth/AclMaxUserIp.h b/src/auth/AclMaxUserIp.h
+index 9b9bcf0..199d83e 100644
+--- a/src/auth/AclMaxUserIp.h
++++ b/src/auth/AclMaxUserIp.h
+@@ -69,7 +69,7 @@ private:
+ static Prototype RegistryProtoype;
+ static ACLMaxUserIP RegistryEntry_;
+
+- int match(AuthUserRequest *, IpAddress const &);
++ int match(AuthUserRequest *, SquidIpAddress const &);
+ char const *class_;
+ int maximum;
+
+diff --git a/src/auth/User.cc b/src/auth/User.cc
+index a972018..8a222cf 100644
+--- a/src/auth/User.cc
++++ b/src/auth/User.cc
+@@ -238,7 +238,7 @@ AuthUser::clearIp()
+ }
+
+ void
+-AuthUser::removeIp(IpAddress ipaddr)
++AuthUser::removeIp(SquidIpAddress ipaddr)
+ {
+ auth_user_ip_t *ipdata = (auth_user_ip_t *) ip_list.head;
+
+@@ -261,7 +261,7 @@ AuthUser::removeIp(IpAddress ipaddr)
+ }
+
+ void
+-AuthUser::addIp(IpAddress ipaddr)
++AuthUser::addIp(SquidIpAddress ipaddr)
+ {
+ auth_user_ip_t *ipdata = (auth_user_ip_t *) ip_list.head;
+ int found = 0;
+diff --git a/src/auth/User.h b/src/auth/User.h
+index 47a9933..70bc267 100644
+--- a/src/auth/User.h
++++ b/src/auth/User.h
+@@ -85,8 +85,8 @@ public:
+ _SQUID_INLINE_ char const *username() const;
+ _SQUID_INLINE_ void username(char const *);
+ void clearIp();
+- void removeIp(IpAddress);
+- void addIp(IpAddress);
++ void removeIp(SquidIpAddress);
++ void addIp(SquidIpAddress);
+ _SQUID_INLINE_ void addRequest(AuthUserRequest *);
+
+ void lock();
+diff --git a/src/auth/UserRequest.cc b/src/auth/UserRequest.cc
+index 285e19c..ab15343 100644
+--- a/src/auth/UserRequest.cc
++++ b/src/auth/UserRequest.cc
+@@ -200,7 +200,7 @@ AuthUserRequest::denyMessage(char const * const default_message)
+ }
+
+ static void
+-authenticateAuthUserRequestSetIp(AuthUserRequest * auth_user_request, IpAddress &ipaddr)
++authenticateAuthUserRequestSetIp(AuthUserRequest * auth_user_request, SquidIpAddress &ipaddr)
+ {
+ AuthUser *auth_user = auth_user_request->user();
+
+@@ -211,7 +211,7 @@ authenticateAuthUserRequestSetIp(AuthUserRequest * auth_user_request, IpAddress
+ }
+
+ void
+-authenticateAuthUserRequestRemoveIp(AuthUserRequest * auth_user_request, IpAddress const &ipaddr)
++authenticateAuthUserRequestRemoveIp(AuthUserRequest * auth_user_request, SquidIpAddress const &ipaddr)
+ {
+ AuthUser *auth_user = auth_user_request->user();
+
+@@ -328,7 +328,7 @@ authTryGetUser (AuthUserRequest **auth_user_request, ConnStateData * conn, HttpR
+ * Caller is responsible for locking and unlocking their *auth_user_request!
+ */
+ auth_acl_t
+-AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IpAddress &src_addr)
++AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, SquidIpAddress &src_addr)
+ {
+ const char *proxy_auth;
+ assert(headertype != 0);
+@@ -503,7 +503,7 @@ AuthUserRequest::authenticate(AuthUserRequest ** auth_user_request, http_hdr_typ
+
+ auth_acl_t
+
+-AuthUserRequest::tryToAuthenticateAndSetAuthUser(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IpAddress &src_addr)
++AuthUserRequest::tryToAuthenticateAndSetAuthUser(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, SquidIpAddress &src_addr)
+ {
+ /* If we have already been called, return the cached value */
+ AuthUserRequest *t = authTryGetUser (auth_user_request, conn, request);
+diff --git a/src/auth/UserRequest.h b/src/auth/UserRequest.h
+index 6119176..8ca1488 100644
+--- a/src/auth/UserRequest.h
++++ b/src/auth/UserRequest.h
+@@ -48,7 +48,7 @@ struct AuthUserIP {
+ dlink_node node;
+ /* IP addr this user authenticated from */
+
+- IpAddress ipaddr;
++ SquidIpAddress ipaddr;
+ time_t ip_expiretime;
+ };
+
+@@ -108,7 +108,7 @@ public:
+
+ virtual void user(AuthUser *aUser) {_auth_user=aUser;}
+
+- static auth_acl_t tryToAuthenticateAndSetAuthUser(AuthUserRequest **, http_hdr_type, HttpRequest *, ConnStateData *, IpAddress &);
++ static auth_acl_t tryToAuthenticateAndSetAuthUser(AuthUserRequest **, http_hdr_type, HttpRequest *, ConnStateData *, SquidIpAddress &);
+ static void addReplyAuthHeader(HttpReply * rep, AuthUserRequest * auth_user_request, HttpRequest * request, int accelerated, int internal);
+
+ AuthUserRequest();
+@@ -146,7 +146,7 @@ public:
+
+ private:
+
+- static auth_acl_t authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, IpAddress &src_addr);
++ static auth_acl_t authenticate(AuthUserRequest ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData * conn, SquidIpAddress &src_addr);
+
+ /** return a message on the 407 error pages */
+ char *message;
+@@ -176,7 +176,7 @@ extern void authenticateFixHeader(HttpReply *, AuthUserRequest *, HttpRequest *,
+ extern void authenticateAddTrailer(HttpReply *, AuthUserRequest *, HttpRequest *, int);
+
+ /// \ingroup AuthAPI
+-extern void authenticateAuthUserRequestRemoveIp(AuthUserRequest *, IpAddress const &);
++extern void authenticateAuthUserRequestRemoveIp(AuthUserRequest *, SquidIpAddress const &);
+ /// \ingroup AuthAPI
+ extern void authenticateAuthUserRequestClearIp(AuthUserRequest *);
+ /// \ingroup AuthAPI
+diff --git a/src/auth/digest/auth_digest.cc b/src/auth/digest/auth_digest.cc
+index 933ad0a..87f5c87 100644
+--- a/src/auth/digest/auth_digest.cc
++++ b/src/auth/digest/auth_digest.cc
+@@ -678,7 +678,7 @@ AuthDigestUserRequest::authenticate(HttpRequest * request, ConnStateData * conn,
+ } else {
+ const char *useragent = request->header.getStr(HDR_USER_AGENT);
+
+- static IpAddress last_broken_addr;
++ static SquidIpAddress last_broken_addr;
+ static int seen_broken_client = 0;
+
+ if (!seen_broken_client) {
+diff --git a/src/cache_cf.cc b/src/cache_cf.cc
+index 17d11db..088460b 100644
+--- a/src/cache_cf.cc
++++ b/src/cache_cf.cc
+@@ -1107,14 +1107,14 @@ free_acl_access(acl_access ** head)
+ }
+
+ static void
+-dump_address(StoreEntry * entry, const char *name, IpAddress &addr)
++dump_address(StoreEntry * entry, const char *name, SquidIpAddress &addr)
+ {
+ char buf[MAX_IPSTRLEN];
+ storeAppendPrintf(entry, "%s %s\n", name, addr.NtoA(buf,MAX_IPSTRLEN) );
+ }
+
+ static void
+-parse_address(IpAddress *addr)
++parse_address(SquidIpAddress *addr)
+ {
+ char *token = strtok(NULL, w_space);
+
+@@ -1134,7 +1134,7 @@ parse_address(IpAddress *addr)
+ }
+
+ static void
+-free_address(IpAddress *addr)
++free_address(SquidIpAddress *addr)
+ {
+ addr->SetEmpty();
+ }
+@@ -2956,7 +2956,7 @@ parse_IpAddress_list_token(IpAddress_list ** head, char *token)
+ char *host;
+ char *tmp;
+
+- IpAddress ipa;
++ SquidIpAddress ipa;
+ unsigned short port;
+ IpAddress_list *s;
+
+diff --git a/src/client_db.cc b/src/client_db.cc
+index b91c034..1aea7c0 100644
+--- a/src/client_db.cc
++++ b/src/client_db.cc
+@@ -44,7 +44,7 @@
+
+ static hash_table *client_table = NULL;
+
+-static ClientInfo *clientdbAdd(const IpAddress &addr);
++static ClientInfo *clientdbAdd(const SquidIpAddress &addr);
+ static FREE clientdbFreeItem;
+ static void clientdbStartGC(void);
+ static void clientdbScheduledGC(void *);
+@@ -58,7 +58,7 @@ static int cleanup_removed;
+
+ static ClientInfo *
+
+-clientdbAdd(const IpAddress &addr)
++clientdbAdd(const SquidIpAddress &addr)
+ {
+ ClientInfo *c;
+ char *buf = new char[MAX_IPSTRLEN];
+@@ -96,7 +96,7 @@ clientdbInit(void)
+ }
+
+ void
+-clientdbUpdate(const IpAddress &addr, log_type ltype, protocol_t p, size_t size)
++clientdbUpdate(const SquidIpAddress &addr, log_type ltype, protocol_t p, size_t size)
+ {
+ char key[MAX_IPSTRLEN];
+ ClientInfo *c;
+@@ -140,7 +140,7 @@ clientdbUpdate(const IpAddress &addr, log_type ltype, protocol_t p, size_t size)
+ * -1. To get the current value, simply call with delta = 0.
+ */
+ int
+-clientdbEstablished(const IpAddress &addr, int delta)
++clientdbEstablished(const SquidIpAddress &addr, int delta)
+ {
+ char key[MAX_IPSTRLEN];
+ ClientInfo *c;
+@@ -167,7 +167,7 @@ clientdbEstablished(const IpAddress &addr, int delta)
+ #define CUTOFF_SECONDS 3600
+ int
+
+-clientdbCutoffDenied(const IpAddress &addr)
++clientdbCutoffDenied(const SquidIpAddress &addr)
+ {
+ char key[MAX_IPSTRLEN];
+ int NR;
+@@ -381,8 +381,8 @@ clientdbStartGC(void)
+
+ #if SQUID_SNMP
+
+-IpAddress *
+-client_entry(IpAddress *current)
++SquidIpAddress *
++client_entry(SquidIpAddress *current)
+ {
+ ClientInfo *c = NULL;
+ char key[MAX_IPSTRLEN];
+@@ -415,7 +415,7 @@ snmp_meshCtblFn(variable_list * Var, snint * ErrP)
+ {
+ char key[MAX_IPSTRLEN];
+ ClientInfo *c = NULL;
+- IpAddress keyIp;
++ SquidIpAddress keyIp;
+
+ *ErrP = SNMP_ERR_NOERROR;
+ MemBuf tmp;
+diff --git a/src/client_side.cc b/src/client_side.cc
+index d156b88..1338880 100644
+--- a/src/client_side.cc
++++ b/src/client_side.cc
+@@ -183,7 +183,7 @@ static void connNoteUseOfBuffer(ConnStateData* conn, size_t byteCount);
+ static int connKeepReadingIncompleteRequest(ConnStateData * conn);
+ static void connCancelIncompleteRequests(ConnStateData * conn);
+
+-static ConnStateData *connStateCreate(const IpAddress &peer, const IpAddress &me, int fd, http_port_list *port);
++static ConnStateData *connStateCreate(const SquidIpAddress &peer, const SquidIpAddress &me, int fd, http_port_list *port);
+
+
+ int
+@@ -3078,7 +3078,7 @@ okToAccept()
+ }
+
+ ConnStateData *
+-connStateCreate(const IpAddress &peer, const IpAddress &me, int fd, http_port_list *port)
++connStateCreate(const SquidIpAddress &peer, const SquidIpAddress &me, int fd, http_port_list *port)
+ {
+ ConnStateData *result = new ConnStateData;
+
+@@ -3091,7 +3091,7 @@ connStateCreate(const IpAddress &peer, const IpAddress &me, int fd, http_port_li
+ result->port = cbdataReference(port);
+
+ if (port->intercepted || port->spoof_client_ip) {
+- IpAddress client, dst;
++ SquidIpAddress client, dst;
+
+ if (IpInterceptor.NatLookup(fd, me, peer, client, dst) == 0) {
+ result->me = client;
+diff --git a/src/client_side.h b/src/client_side.h
+index 9f5f07a..fb9577d 100644
+--- a/src/client_side.h
++++ b/src/client_side.h
+@@ -185,11 +185,11 @@ public:
+ */
+ ClientSocketContext::Pointer currentobject;
+
+- IpAddress peer;
++ SquidIpAddress peer;
+
+- IpAddress me;
++ SquidIpAddress me;
+
+- IpAddress log_addr;
++ SquidIpAddress log_addr;
+ char rfc931[USER_IDENT_SZ];
+ int nrequests;
+
+diff --git a/src/client_side_reply.cc b/src/client_side_reply.cc
+index c7e3f81..75fa608 100644
+--- a/src/client_side_reply.cc
++++ b/src/client_side_reply.cc
+@@ -64,7 +64,7 @@ CBDATA_CLASS_INIT(clientReplyContext);
+
+ /* Local functions */
+ extern "C" CSS clientReplyStatus;
+-extern ErrorState *clientBuildError(err_type, http_status, char const *, IpAddress &, HttpRequest *);
++extern ErrorState *clientBuildError(err_type, http_status, char const *, SquidIpAddress &, HttpRequest *);
+
+ /* privates */
+
+@@ -94,7 +94,7 @@ clientReplyContext::clientReplyContext(ClientHttpRequest *clientContext) : http
+ void
+ clientReplyContext::setReplyToError(
+ err_type err, http_status status, const HttpRequestMethod& method, char const *uri,
+- IpAddress &addr, HttpRequest * failedrequest, const char *unparsedrequest,
++ SquidIpAddress &addr, HttpRequest * failedrequest, const char *unparsedrequest,
+ AuthUserRequest * auth_user_request)
+ {
+ ErrorState *errstate =
+@@ -1797,7 +1797,7 @@ clientReplyContext::next() const
+ void
+ clientReplyContext::sendBodyTooLargeError()
+ {
+- IpAddress tmp_noaddr;
++ SquidIpAddress tmp_noaddr;
+ tmp_noaddr.SetNoAddr(); // TODO: make a global const
+ http->logType = LOG_TCP_DENIED_REPLY;
+ ErrorState *err = clientBuildError(ERR_TOO_BIG, HTTP_FORBIDDEN, NULL,
+@@ -1920,7 +1920,7 @@ clientReplyContext::processReplyAccessResult(bool accessAllowed)
+ if (page_id == ERR_NONE)
+ page_id = ERR_ACCESS_DENIED;
+
+- IpAddress tmp_noaddr;
++ SquidIpAddress tmp_noaddr;
+ tmp_noaddr.SetNoAddr();
+ err = clientBuildError(page_id, HTTP_FORBIDDEN, NULL,
+ http->getConn() != NULL ? http->getConn()->peer : tmp_noaddr,
+@@ -2151,7 +2151,7 @@ clientReplyContext::createStoreEntry(const HttpRequestMethod& m, request_flags r
+
+ ErrorState *
+ clientBuildError(err_type page_id, http_status status, char const *url,
+- IpAddress &src_addr, HttpRequest * request)
++ SquidIpAddress &src_addr, HttpRequest * request)
+ {
+ ErrorState *err = errorCon(page_id, status, request);
+ err->src_addr = src_addr;
+diff --git a/src/client_side_reply.h b/src/client_side_reply.h
+index c979fe4..221161f 100644
+--- a/src/client_side_reply.h
++++ b/src/client_side_reply.h
+@@ -38,7 +38,7 @@
+ #include "client_side_request.h"
+
+ class ErrorState;
+-class IpAddress;
++class SquidIpAddress;
+
+ /* XXX make static method */
+
+@@ -72,7 +72,7 @@ public:
+ int storeOKTransferDone() const;
+ int storeNotOKTransferDone() const;
+
+- void setReplyToError(err_type, http_status, const HttpRequestMethod&, char const *, IpAddress &, HttpRequest *, const char *, AuthUserRequest *);
++ void setReplyToError(err_type, http_status, const HttpRequestMethod&, char const *, SquidIpAddress &, HttpRequest *, const char *, AuthUserRequest *);
+ void createStoreEntry(const HttpRequestMethod& m, request_flags flags);
+ void removeStoreReference(store_client ** scp, StoreEntry ** ep);
+ void removeClientStoreReference(store_client **scp, ClientHttpRequest *http);
+diff --git a/src/client_side_request.cc b/src/client_side_request.cc
+index 531e437..803feb4 100644
+--- a/src/client_side_request.cc
++++ b/src/client_side_request.cc
+@@ -452,7 +452,7 @@ clientFollowXForwardedForCheck(int answer, void *data)
+ const char *p;
+ const char *asciiaddr;
+ int l;
+- IpAddress addr;
++ SquidIpAddress addr;
+ p = request->x_forwarded_for_iterator.termedBuf();
+ l = request->x_forwarded_for_iterator.size();
+
+@@ -628,7 +628,7 @@ ClientRequestContext::clientAccessCheckDone(int answer)
+ clientStreamNode *node = (clientStreamNode *)http->client_stream.tail->prev->data;
+ clientReplyContext *repContext = dynamic_cast<clientReplyContext *>(node->data.getRaw());
+ assert (repContext);
+- IpAddress tmpnoaddr;
++ SquidIpAddress tmpnoaddr;
+ tmpnoaddr.SetNoAddr();
+ repContext->setReplyToError(page_id, status,
+ http->request->method, NULL,
+@@ -1579,7 +1579,7 @@ ClientHttpRequest::handleAdaptationFailure(bool bypassable)
+ // The original author of the code also wanted to pass an errno to
+ // setReplyToError, but it seems unlikely that the errno reflects the
+ // true cause of the error at this point, so I did not pass it.
+- IpAddress noAddr;
++ SquidIpAddress noAddr;
+ noAddr.SetNoAddr();
+ ConnStateData * c = getConn();
+ repContext->setReplyToError(ERR_ICAP_FAILURE, HTTP_INTERNAL_SERVER_ERROR,
+diff --git a/src/comm.cc b/src/comm.cc
+index aff238b..c864653 100644
+--- a/src/comm.cc
++++ b/src/comm.cc
+@@ -208,11 +208,11 @@ public:
+ // defaults given by client
+ char *host;
+ unsigned short default_port;
+- IpAddress default_addr;
++ SquidIpAddress default_addr;
+ // NP: CANNOT store the default addr:port together as it gets set/reset differently.
+
+ DnsLookupDetails dns; ///< host lookup details
+- IpAddress S;
++ SquidIpAddress S;
+ AsyncCall::Pointer callback;
+
+ int fd;
+@@ -498,7 +498,7 @@ comm_read_cancel(int fd, AsyncCall::Pointer &callback)
+ * synchronous wrapper around udp socket functions
+ */
+ int
+-comm_udp_recvfrom(int fd, void *buf, size_t len, int flags, IpAddress &from)
++comm_udp_recvfrom(int fd, void *buf, size_t len, int flags, SquidIpAddress &from)
+ {
+ statCounter.syscalls.sock.recvfroms++;
+ int x = 0;
+@@ -522,7 +522,7 @@ comm_udp_recvfrom(int fd, void *buf, size_t len, int flags, IpAddress &from)
+ int
+ comm_udp_recv(int fd, void *buf, size_t len, int flags)
+ {
+- IpAddress nul;
++ SquidIpAddress nul;
+ return comm_udp_recvfrom(fd, buf, len, flags, nul);
+ }
+
+@@ -549,7 +549,7 @@ comm_has_incomplete_write(int fd)
+ unsigned short
+ comm_local_port(int fd)
+ {
+- IpAddress temp;
++ SquidIpAddress temp;
+ struct addrinfo *addr = NULL;
+ fde *F = &fd_table[fd];
+
+@@ -614,7 +614,7 @@ commBind(int s, struct addrinfo &inaddr)
+ int
+ comm_open(int sock_type,
+ int proto,
+- IpAddress &addr,
++ SquidIpAddress &addr,
+ int flags,
+ const char *note)
+ {
+@@ -624,7 +624,7 @@ comm_open(int sock_type,
+ int
+ comm_open_listener(int sock_type,
+ int proto,
+- IpAddress &addr,
++ SquidIpAddress &addr,
+ int flags,
+ const char *note)
+ {
+@@ -699,7 +699,7 @@ comm_set_transparent(int fd)
+ int
+ comm_openex(int sock_type,
+ int proto,
+- IpAddress &addr,
++ SquidIpAddress &addr,
+ int flags,
+ unsigned char TOS,
+ const char *note)
+@@ -1229,7 +1229,7 @@ int commSetTimeout(int fd, int timeout, AsyncCall::Pointer &callback)
+ }
+
+ int
+-comm_connect_addr(int sock, const IpAddress &address)
++comm_connect_addr(int sock, const SquidIpAddress &address)
+ {
+ comm_err_t status = COMM_OK;
+ fde *F = &fd_table[sock];
+@@ -1653,7 +1653,7 @@ _comm_close(int fd, char const *file, int line)
+ /* Send a udp datagram to specified TO_ADDR. */
+ int
+ comm_udp_sendto(int fd,
+- const IpAddress &to_addr,
++ const SquidIpAddress &to_addr,
+ const void *buf,
+ int len)
+ {
+diff --git a/src/comm.h b/src/comm.h
+index 2c9a5bc..d1e58ef 100644
+--- a/src/comm.h
++++ b/src/comm.h
+@@ -49,11 +49,11 @@ SQUIDCEXTERN void comm_lingering_close(int fd);
+ SQUIDCEXTERN void commConnectStart(int fd, const char *, unsigned short, CNCB *, void *);
+ void commConnectStart(int fd, const char *, unsigned short, AsyncCall::Pointer &cb);
+
+-SQUIDCEXTERN int comm_connect_addr(int sock, const IpAddress &addr);
++SQUIDCEXTERN int comm_connect_addr(int sock, const SquidIpAddress &addr);
+ SQUIDCEXTERN void comm_init(void);
+ SQUIDCEXTERN void comm_exit(void);
+
+-SQUIDCEXTERN int comm_open(int, int, IpAddress &, int, const char *note);
++SQUIDCEXTERN int comm_open(int, int, SquidIpAddress &, int, const char *note);
+
+ /**
+ * Open a port specially bound for listening or sending through a specific port.
+@@ -70,16 +70,16 @@ SQUIDCEXTERN int comm_open(int, int, IpAddress &, int, const char *note);
+ * (in debugs or cachemgr) will occur in Native IPv4 format.
+ * A reconfigure is needed to reset the stored IP in most cases and attempt a port re-open.
+ */
+-SQUIDCEXTERN int comm_open_listener(int sock_type, int proto, IpAddress &addr, int flags, const char *note);
++SQUIDCEXTERN int comm_open_listener(int sock_type, int proto, SquidIpAddress &addr, int flags, const char *note);
+
+-SQUIDCEXTERN int comm_openex(int, int, IpAddress &, int, unsigned char TOS, const char *);
++SQUIDCEXTERN int comm_openex(int, int, SquidIpAddress &, int, unsigned char TOS, const char *);
+ SQUIDCEXTERN unsigned short comm_local_port(int fd);
+ SQUIDCEXTERN int comm_set_tos(int fd, int tos);
+
+ SQUIDCEXTERN void commSetSelect(int, unsigned int, PF *, void *, time_t);
+ SQUIDCEXTERN void commResetSelect(int);
+
+-SQUIDCEXTERN int comm_udp_sendto(int sock, const IpAddress &to, const void *buf, int buflen);
++SQUIDCEXTERN int comm_udp_sendto(int sock, const SquidIpAddress &to, const void *buf, int buflen);
+ extern void comm_write(int fd, const char *buf, int len, IOCB *callback, void *callback_data, FREE *func);
+ extern void comm_write(int fd, const char *buf, int size, AsyncCall::Pointer &callback, FREE * free_func = NULL);
+ SQUIDCEXTERN void comm_write_mbuf(int fd, MemBuf *mb, IOCB * handler, void *handler_data);
+@@ -115,7 +115,7 @@ extern void comm_read(int fd, char *buf, int len, IOCB *handler, void *data);
+ extern void comm_read(int fd, char *buf, int len, AsyncCall::Pointer &callback);
+ extern void comm_read_cancel(int fd, IOCB *callback, void *data);
+ extern void comm_read_cancel(int fd, AsyncCall::Pointer &callback);
+-extern int comm_udp_recvfrom(int fd, void *buf, size_t len, int flags, IpAddress &from);
++extern int comm_udp_recvfrom(int fd, void *buf, size_t len, int flags, SquidIpAddress &from);
+ extern int comm_udp_recv(int fd, void *buf, size_t len, int flags);
+ extern ssize_t comm_udp_send(int s, const void *buf, size_t len, int flags);
+ extern bool comm_has_incomplete_write(int);
+diff --git a/src/delay_pools.cc b/src/delay_pools.cc
+index da7c0b3..6cf8fc9 100644
+--- a/src/delay_pools.cc
++++ b/src/delay_pools.cc
+@@ -159,7 +159,7 @@ protected:
+
+ virtual char const *label() const = 0;
+
+- virtual unsigned int makeKey(IpAddress &src_addr) const = 0;
++ virtual unsigned int makeKey(SquidIpAddress &src_addr) const = 0;
+
+ DelaySpec spec;
+
+@@ -190,7 +190,7 @@ public:
+
+ protected:
+ virtual char const *label() const {return "Individual";}
+- virtual unsigned int makeKey(IpAddress &src_addr) const;
++ virtual unsigned int makeKey(SquidIpAddress &src_addr) const;
+ };
+
+ /// \ingroup DelayPoolsInternal
+@@ -203,7 +203,7 @@ public:
+
+ protected:
+ virtual char const *label() const {return "Network";}
+- virtual unsigned int makeKey (IpAddress &src_addr) const;
++ virtual unsigned int makeKey (SquidIpAddress &src_addr) const;
+ };
+
+ /* don't use remote storage for these */
+@@ -247,9 +247,9 @@ protected:
+
+ virtual char const *label() const {return "Individual";}
+
+- virtual unsigned int makeKey (IpAddress &src_addr) const;
++ virtual unsigned int makeKey (SquidIpAddress &src_addr) const;
+
+- unsigned char makeHostKey (IpAddress &src_addr) const;
++ unsigned char makeHostKey (SquidIpAddress &src_addr) const;
+
+ DelaySpec spec;
+ VectorMap<unsigned char, ClassCBucket> buckets;
+@@ -855,7 +855,7 @@ VectorPool::Id::bytesIn(int qty)
+ }
+
+ unsigned int
+-IndividualPool::makeKey (IpAddress &src_addr) const
++IndividualPool::makeKey (SquidIpAddress &src_addr) const
+ {
+ /* IPv4 required for this pool */
+ if ( !src_addr.IsIPv4() )
+@@ -881,7 +881,7 @@ ClassCNetPool::operator delete (void *address)
+ }
+
+ unsigned int
+-ClassCNetPool::makeKey (IpAddress &src_addr) const
++ClassCNetPool::makeKey (SquidIpAddress &src_addr) const
+ {
+ /* IPv4 required for this pool */
+ if ( !src_addr.IsIPv4() )
+@@ -954,7 +954,7 @@ ClassCHostPool::keyAllocated (unsigned char const key) const
+ }
+
+ unsigned char
+-ClassCHostPool::makeHostKey (IpAddress &src_addr) const
++ClassCHostPool::makeHostKey (SquidIpAddress &src_addr) const
+ {
+ /* IPv4 required for this pool */
+ if ( !src_addr.IsIPv4() )
+@@ -967,7 +967,7 @@ ClassCHostPool::makeHostKey (IpAddress &src_addr) const
+ }
+
+ unsigned int
+-ClassCHostPool::makeKey (IpAddress &src_addr) const
++ClassCHostPool::makeKey (SquidIpAddress &src_addr) const
+ {
+ /* IPv4 required for this pool */
+ if ( !src_addr.IsIPv4() )
+diff --git a/src/dns_internal.cc b/src/dns_internal.cc
+index 52087de..06d5e1a 100644
+--- a/src/dns_internal.cc
++++ b/src/dns_internal.cc
+@@ -138,7 +138,7 @@ struct _nsvc {
+ };
+
+ struct _ns {
+- IpAddress S;
++ SquidIpAddress S;
+ int nqueries;
+ int nreplies;
+ nsvc *vc;
+@@ -181,7 +181,7 @@ static void idnsSendQuery(idns_query * q);
+ static IOCB idnsReadVCHeader;
+ static void idnsDoSendQueryVC(nsvc *vc);
+
+-static int idnsFromKnownNameserver(IpAddress const &from);
++static int idnsFromKnownNameserver(SquidIpAddress const &from);
+ static idns_query *idnsFindQuery(unsigned short id);
+ static void idnsGrokReply(const char *buf, size_t sz);
+ static PF idnsRead;
+@@ -192,7 +192,7 @@ static void idnsRcodeCount(int, int);
+ static void
+ idnsAddNameserver(const char *buf)
+ {
+- IpAddress A;
++ SquidIpAddress A;
+
+ if (!(A = buf)) {
+ debugs(78, 0, "WARNING: rejecting '" << buf << "' as a name server, because it is not a numeric IP address");
+@@ -745,7 +745,7 @@ idnsInitVC(int ns)
+ nameservers[ns].vc = vc;
+ vc->ns = ns;
+
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ if (!Config.Addrs.udp_outgoing.IsNoAddr())
+ addr = Config.Addrs.udp_outgoing;
+@@ -863,7 +863,7 @@ idnsSendQuery(idns_query * q)
+ }
+
+ static int
+-idnsFromKnownNameserver(IpAddress const &from)
++idnsFromKnownNameserver(SquidIpAddress const &from)
+ {
+ int i;
+
+@@ -1163,7 +1163,7 @@ idnsRead(int fd, void *data)
+ int max = INCOMING_DNS_MAX;
+ static char rbuf[SQUID_UDP_SO_RCVBUF];
+ int ns;
+- IpAddress from;
++ SquidIpAddress from;
+
+ debugs(78, 3, "idnsRead: starting with FD " << fd);
+
+@@ -1178,7 +1178,7 @@ idnsRead(int fd, void *data)
+ * The cause of this is still unknown, however copying the data appears
+ * to allow it to be passed further without this erasure.
+ */
+- IpAddress bugbypass;
++ SquidIpAddress bugbypass;
+
+ while (max--) {
+ len = comm_udp_recvfrom(fd, rbuf, SQUID_UDP_SO_RCVBUF, 0, bugbypass);
+@@ -1386,14 +1386,14 @@ idnsInit(void)
+ CBDATA_INIT_TYPE(idns_query);
+
+ if (DnsSocketA < 0 && DnsSocketB < 0) {
+- IpAddress addrA; // since we don't want to alter Config.Addrs.udp_* and dont have one of our own.
++ SquidIpAddress addrA; // since we don't want to alter Config.Addrs.udp_* and dont have one of our own.
+
+ if (!Config.Addrs.udp_outgoing.IsNoAddr())
+ addrA = Config.Addrs.udp_outgoing;
+ else
+ addrA = Config.Addrs.udp_incoming;
+
+- IpAddress addrB = addrA;
++ SquidIpAddress addrB = addrA;
+ addrA.SetIPv4();
+
+ if (Ip::EnableIpv6 && addrB.IsIPv6()) {
+@@ -1591,7 +1591,7 @@ idnsALookup(const char *name, IDNSCB * callback, void *data)
+ }
+
+ void
+-idnsPTRLookup(const IpAddress &addr, IDNSCB * callback, void *data)
++idnsPTRLookup(const SquidIpAddress &addr, IDNSCB * callback, void *data)
+ {
+ idns_query *q;
+
+diff --git a/src/errorpage.h b/src/errorpage.h
+index 4d58370..1b9e8df 100644
+--- a/src/errorpage.h
++++ b/src/errorpage.h
+@@ -136,7 +136,7 @@ public:
+ String dnsError; ///< DNS lookup error message
+ time_t ttl;
+
+- IpAddress src_addr;
++ SquidIpAddress src_addr;
+ char *redirect_url;
+ ERCB *callback;
+ void *callback_data;
+diff --git a/src/esi/Esi.cc b/src/esi/Esi.cc
+index a456bdb..cbbef95 100644
+--- a/src/esi/Esi.cc
++++ b/src/esi/Esi.cc
+@@ -1441,7 +1441,7 @@ ESIContext::freeResources ()
+ /* don't touch incoming, it's a pointer into buffered anyway */
+ }
+
+-extern ErrorState *clientBuildError (err_type, http_status, char const *, IpAddress &, HttpRequest *);
++extern ErrorState *clientBuildError (err_type, http_status, char const *, SquidIpAddress &, HttpRequest *);
+
+
+ /* This can ONLY be used before we have sent *any* data to the client */
+diff --git a/src/external_acl.cc b/src/external_acl.cc
+index 10da9d8..d749718 100644
+--- a/src/external_acl.cc
++++ b/src/external_acl.cc
+@@ -131,7 +131,7 @@ public:
+ QUOTE_METHOD_URL
+ } quote;
+
+- IpAddress local_addr;
++ SquidIpAddress local_addr;
+ };
+
+ struct _external_acl_format {
+diff --git a/src/fde.h b/src/fde.h
+index 8bad6ca..435f9ec 100644
+--- a/src/fde.h
++++ b/src/fde.h
+@@ -55,7 +55,7 @@ public:
+ unsigned int type;
+ unsigned short remote_port;
+
+- IpAddress local_addr;
++ SquidIpAddress local_addr;
+ unsigned char tos;
+ int sock_family;
+ char ipaddr[MAX_IPSTRLEN]; /* dotted decimal address of peer */
+@@ -121,7 +121,7 @@ private:
+ halfClosedReader = NULL;
+ // XXX: the following memset may corrupt or leak new or changed members
+ memset(this, 0, sizeof(fde));
+- local_addr.SetEmpty(); // IpAddress likes to be setup nicely.
++ local_addr.SetEmpty(); // SquidIpAddress likes to be setup nicely.
+ }
+
+ };
+diff --git a/src/forward.cc b/src/forward.cc
+index 7645324..a011649 100644
+--- a/src/forward.cc
++++ b/src/forward.cc
+@@ -798,9 +798,9 @@ FwdState::connectStart()
+ int ctimeout;
+ int ftimeout = Config.Timeout.forward - (squid_curtime - start_t);
+
+- IpAddress outgoing;
++ SquidIpAddress outgoing;
+ unsigned short tos;
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+ assert(fs);
+ assert(server_fd == -1);
+ debugs(17, 3, "fwdConnectStart: " << url);
+@@ -1266,7 +1266,7 @@ FwdState::reforwardableStatus(http_status s)
+ * - address of the client for which we made the connection
+ */
+ void
+-FwdState::pconnPush(int fd, const peer *_peer, const HttpRequest *req, const char *domain, IpAddress &client_addr)
++FwdState::pconnPush(int fd, const peer *_peer, const HttpRequest *req, const char *domain, SquidIpAddress &client_addr)
+ {
+ if (_peer) {
+ fwdPconnPool->push(fd, _peer->name, _peer->http_port, domain, client_addr);
+@@ -1380,12 +1380,12 @@ fwdServerFree(FwdServer * fs)
+ memFree(fs, MEM_FWD_SERVER);
+ }
+
+-static IpAddress
++static SquidIpAddress
+ aclMapAddr(acl_address * head, ACLChecklist * ch)
+ {
+ acl_address *l;
+
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ for (l = head; l; l = l->next) {
+ if (!l->aclList || ch->matchAclListFast(l->aclList))
+@@ -1413,7 +1413,7 @@ aclMapTOS(acl_tos * head, ACLChecklist * ch)
+ return 0;
+ }
+
+-IpAddress
++SquidIpAddress
+ getOutgoingAddr(HttpRequest * request, struct peer *dst_peer)
+ {
+ if (request && request->flags.spoof_client_ip) {
+@@ -1423,7 +1423,7 @@ getOutgoingAddr(HttpRequest * request, struct peer *dst_peer)
+ }
+
+ if (!Config.accessList.outgoing_address) {
+- return IpAddress(); // anything will do.
++ return SquidIpAddress(); // anything will do.
+ }
+
+ ACLFilledChecklist ch(NULL, request, NULL);
+diff --git a/src/forward.h b/src/forward.h
+index 4023774..a217f65 100644
+--- a/src/forward.h
++++ b/src/forward.h
+@@ -44,7 +44,7 @@ public:
+ bool checkRetry();
+ bool checkRetriable();
+ void dispatch();
+- void pconnPush(int fd, const peer *_peer, const HttpRequest *req, const char *domain, IpAddress &client_addr);
++ void pconnPush(int fd, const peer *_peer, const HttpRequest *req, const char *domain, SquidIpAddress &client_addr);
+
+ bool dontRetry() { return flags.dont_retry; }
+
+@@ -101,7 +101,7 @@ private:
+ unsigned int forward_completed:1;
+ } flags;
+
+- IpAddress src; /* Client address for this connection. Needed for transparent operations. */
++ SquidIpAddress src; /* Client address for this connection. Needed for transparent operations. */
+
+ // NP: keep this last. It plays with private/public
+ CBDATA_CLASS2(FwdState);
+diff --git a/src/fqdncache.cc b/src/fqdncache.cc
+index 6a79b5f..4fae189 100644
+--- a/src/fqdncache.cc
++++ b/src/fqdncache.cc
+@@ -526,7 +526,7 @@ fqdncacheHandleReply(void *data, rfc1035_rr * answers, int na, const char *error
+ * and does not affect the FQDN cache.
+ */
+ void
+-fqdncache_nbgethostbyaddr(IpAddress &addr, FQDNH * handler, void *handlerData)
++fqdncache_nbgethostbyaddr(SquidIpAddress &addr, FQDNH * handler, void *handlerData)
+ {
+ fqdncache_entry *f = NULL;
+ char name[MAX_IPSTRLEN];
+@@ -644,7 +644,7 @@ fqdncache_init(void)
+ *
+ */
+ const char *
+-fqdncache_gethostbyaddr(IpAddress &addr, int flags)
++fqdncache_gethostbyaddr(SquidIpAddress &addr, int flags)
+ {
+ char name[MAX_IPSTRLEN];
+ fqdncache_entry *f = NULL;
+@@ -752,7 +752,7 @@ dummy_handler(const char *, const DnsLookupDetails &, void *)
+
+ /// \ingroup FQDNCacheAPI
+ const char *
+-fqdnFromAddr(IpAddress &addr)
++fqdnFromAddr(SquidIpAddress &addr)
+ {
+ const char *n;
+ static char buf[MAX_IPSTRLEN];
+diff --git a/src/ftp.cc b/src/ftp.cc
+index 5d4f5cd..a1eb048 100644
+--- a/src/ftp.cc
++++ b/src/ftp.cc
+@@ -2453,7 +2453,7 @@ ftpReadEPSV(FtpStateData* ftpState)
+ int code = ftpState->ctrl.replycode;
+ char h1, h2, h3, h4;
+ unsigned short port;
+- IpAddress ipa_remote;
++ SquidIpAddress ipa_remote;
+ int fd = ftpState->data.fd;
+ char *buf;
+ debugs(9, 3, HERE);
+@@ -2575,7 +2575,7 @@ ftpReadEPSV(FtpStateData* ftpState)
+ static void
+ ftpSendPassive(FtpStateData * ftpState)
+ {
+- IpAddress addr;
++ SquidIpAddress addr;
+ struct addrinfo *AI = NULL;
+
+ /** Checks the server control channel is still available before running. */
+@@ -2758,7 +2758,7 @@ ftpReadPasv(FtpStateData * ftpState)
+ int p1, p2;
+ int n;
+ unsigned short port;
+- IpAddress ipa_remote;
++ SquidIpAddress ipa_remote;
+ int fd = ftpState->data.fd;
+ char *buf;
+ LOCAL_ARRAY(char, ipaddr, 1024);
+@@ -2866,7 +2866,7 @@ ftpOpenListenSocket(FtpStateData * ftpState, int fallback)
+ {
+ int fd;
+
+- IpAddress addr;
++ SquidIpAddress addr;
+ struct addrinfo *AI = NULL;
+ int on = 1;
+ int x = 0;
+@@ -2933,7 +2933,7 @@ ftpSendPORT(FtpStateData * ftpState)
+ {
+ int fd;
+
+- IpAddress ipa;
++ SquidIpAddress ipa;
+ struct addrinfo *AI = NULL;
+ unsigned char *addrptr;
+ unsigned char *portptr;
+@@ -3014,7 +3014,7 @@ ftpSendEPRT(FtpStateData * ftpState)
+ }
+
+ int fd;
+- IpAddress addr;
++ SquidIpAddress addr;
+ struct addrinfo *AI = NULL;
+ char buf[MAX_IPSTRLEN];
+
+diff --git a/src/globals.h b/src/globals.h
+index 5145c5a..a3b364a 100644
+--- a/src/globals.h
++++ b/src/globals.h
+@@ -114,8 +114,8 @@ extern "C" {
+
+ extern struct acl_deny_info_list *DenyInfoList; /* NULL */
+
+-//MOVED:icp_v2.cc extern IpAddress theOutICPAddr;
+-//MOVED:snmp_core.cc extern IpAddress theOutSNMPAddr;
++//MOVED:icp_v2.cc extern SquidIpAddress theOutICPAddr;
++//MOVED:snmp_core.cc extern SquidIpAddress theOutSNMPAddr;
+
+ extern struct timeval squid_start;
+ extern int shutting_down; /* 0 */
+diff --git a/src/helper.h b/src/helper.h
+index 317f024..4573b58 100644
+--- a/src/helper.h
++++ b/src/helper.h
+@@ -62,7 +62,7 @@ struct _helper {
+ int n_running; ///< Total helper children objects currently existing
+ int n_active; ///< Count of helper children active (not shutting down)
+ int ipc_type;
+- IpAddress addr;
++ SquidIpAddress addr;
+ unsigned int concurrency;
+ time_t last_queue_warn;
+ time_t last_restart;
+@@ -85,7 +85,7 @@ struct _helper_stateful {
+ int n_running; ///< Total helper children objects currently existing
+ int n_active; ///< Count of helper children active (not shutting down)
+ int ipc_type;
+- IpAddress addr;
++ SquidIpAddress addr;
+ MemAllocator *datapool;
+ HLPSAVAIL *IsAvailable;
+ HLPSONEQ *OnEmptyQueue;
+@@ -104,7 +104,7 @@ struct _helper_stateful {
+ struct _helper_server {
+ int index;
+ int pid;
+- IpAddress addr;
++ SquidIpAddress addr;
+ int rfd;
+ int wfd;
+ MemBuf *wqueue;
+@@ -140,7 +140,7 @@ class helper_stateful_request;
+ struct _helper_stateful_server {
+ int index;
+ int pid;
+- IpAddress addr;
++ SquidIpAddress addr;
+ int rfd;
+ int wfd;
+ /* MemBuf wqueue; */
+diff --git a/src/htcp.cc b/src/htcp.cc
+index e3b0e89..9c423f3 100644
+--- a/src/htcp.cc
++++ b/src/htcp.cc
+@@ -154,7 +154,7 @@ public:
+ void checkHit();
+ void checkedHit(StoreEntry *e);
+
+- void setFrom (IpAddress &from);
++ void setFrom (SquidIpAddress &from);
+ void setDataHeader (htcpDataHeader *);
+ char *method;
+ char *uri;
+@@ -165,7 +165,7 @@ public:
+ private:
+ HttpRequest *checkHitRequest;
+
+- IpAddress from; // was a ptr. return to such IFF needed. otherwise copy should do.
++ SquidIpAddress from; // was a ptr. return to such IFF needed. otherwise copy should do.
+ htcpDataHeader *dhdr;
+ };
+
+@@ -233,7 +233,7 @@ static int htcpOutSocket = -1;
+ static u_int32_t queried_id[N_QUERIED_KEYS];
+ static cache_key queried_keys[N_QUERIED_KEYS][SQUID_MD5_DIGEST_LENGTH];
+
+-static IpAddress queried_addr[N_QUERIED_KEYS];
++static SquidIpAddress queried_addr[N_QUERIED_KEYS];
+ static MemAllocator *htcpDetailPool = NULL;
+
+ static int old_squid_format = 0;
+@@ -252,26 +252,26 @@ static ssize_t htcpBuildTstOpData(char *buf, size_t buflen, htcpStuff * stuff);
+ static void htcpFreeSpecifier(htcpSpecifier * s);
+ static void htcpFreeDetail(htcpDetail * s);
+
+-static void htcpHandleMsg(char *buf, int sz, IpAddress &from);
++static void htcpHandleMsg(char *buf, int sz, SquidIpAddress &from);
+
+-static void htcpLogHtcp(IpAddress &, int, log_type, const char *);
+-static void htcpHandleMon(htcpDataHeader *, char *buf, int sz, IpAddress &from);
++static void htcpLogHtcp(SquidIpAddress &, int, log_type, const char *);
++static void htcpHandleMon(htcpDataHeader *, char *buf, int sz, SquidIpAddress &from);
+
+-static void htcpHandleNop(htcpDataHeader *, char *buf, int sz, IpAddress &from);
++static void htcpHandleNop(htcpDataHeader *, char *buf, int sz, SquidIpAddress &from);
+
+-static void htcpHandleSet(htcpDataHeader *, char *buf, int sz, IpAddress &from);
++static void htcpHandleSet(htcpDataHeader *, char *buf, int sz, SquidIpAddress &from);
+
+-static void htcpHandleTst(htcpDataHeader *, char *buf, int sz, IpAddress &from);
++static void htcpHandleTst(htcpDataHeader *, char *buf, int sz, SquidIpAddress &from);
+
+ static void htcpRecv(int fd, void *data);
+
+-static void htcpSend(const char *buf, int len, IpAddress &to);
++static void htcpSend(const char *buf, int len, SquidIpAddress &to);
+
+-static void htcpTstReply(htcpDataHeader *, StoreEntry *, htcpSpecifier *, IpAddress &);
++static void htcpTstReply(htcpDataHeader *, StoreEntry *, htcpSpecifier *, SquidIpAddress &);
+
+-static void htcpHandleTstRequest(htcpDataHeader *, char *buf, int sz, IpAddress &from);
++static void htcpHandleTstRequest(htcpDataHeader *, char *buf, int sz, SquidIpAddress &from);
+
+-static void htcpHandleTstResponse(htcpDataHeader *, char *, int, IpAddress &);
++static void htcpHandleTstResponse(htcpDataHeader *, char *, int, SquidIpAddress &);
+
+ static void
+ htcpHexdump(const char *tag, const char *s, int sz)
+@@ -594,7 +594,7 @@ htcpBuildPacket(char *buf, size_t buflen, htcpStuff * stuff)
+
+ static void
+
+-htcpSend(const char *buf, int len, IpAddress &to)
++htcpSend(const char *buf, int len, SquidIpAddress &to)
+ {
+ int x;
+
+@@ -618,7 +618,7 @@ htcpSend(const char *buf, int len, IpAddress &to)
+
+ void
+
+-htcpSpecifier::setFrom (IpAddress &aSocket)
++htcpSpecifier::setFrom (SquidIpAddress &aSocket)
+ {
+ from = aSocket;
+ }
+@@ -848,7 +848,7 @@ htcpUnpackDetail(char *buf, int sz)
+ }
+
+ static int
+-htcpAccessCheck(acl_access * acl, htcpSpecifier * s, IpAddress &from)
++htcpAccessCheck(acl_access * acl, htcpSpecifier * s, SquidIpAddress &from)
+ {
+ /* default deny if no access list present */
+ if (!acl)
+@@ -862,7 +862,7 @@ htcpAccessCheck(acl_access * acl, htcpSpecifier * s, IpAddress &from)
+ }
+
+ static void
+-htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, IpAddress &from)
++htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, SquidIpAddress &from)
+ {
+ htcpStuff stuff;
+ static char pkt[8192];
+@@ -951,7 +951,7 @@ htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, IpAddr
+
+ static void
+
+-htcpClrReply(htcpDataHeader * dhdr, int purgeSucceeded, IpAddress &from)
++htcpClrReply(htcpDataHeader * dhdr, int purgeSucceeded, SquidIpAddress &from)
+ {
+ htcpStuff stuff;
+ static char pkt[8192];
+@@ -988,7 +988,7 @@ htcpClrReply(htcpDataHeader * dhdr, int purgeSucceeded, IpAddress &from)
+
+ static void
+
+-htcpHandleNop(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleNop(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ debugs(31, 3, "htcpHandleNop: Unimplemented");
+ }
+@@ -1085,7 +1085,7 @@ htcpClrStore(const htcpSpecifier * s)
+
+ static void
+
+-htcpHandleTst(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleTst(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ debugs(31, 3, "htcpHandleTst: sz = " << sz);
+
+@@ -1100,12 +1100,12 @@ HtcpReplyData::HtcpReplyData() : hdr(hoHtcpReply)
+
+ static void
+
+-htcpHandleTstResponse(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleTstResponse(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ htcpReplyData htcpReply;
+ cache_key *key = NULL;
+
+- IpAddress *peer;
++ SquidIpAddress *peer;
+ htcpDetail *d = NULL;
+ char *t;
+
+@@ -1172,7 +1172,7 @@ htcpHandleTstResponse(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
+
+ static void
+
+-htcpHandleTstRequest(htcpDataHeader * dhdr, char *buf, int sz, IpAddress &from)
++htcpHandleTstRequest(htcpDataHeader * dhdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ /* buf should be a SPECIFIER */
+ htcpSpecifier *s;
+@@ -1233,20 +1233,20 @@ htcpSpecifier::checkedHit(StoreEntry *e)
+
+ static void
+
+-htcpHandleMon(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleMon(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ debugs(31, 3, "htcpHandleMon: Unimplemented");
+ }
+
+ static void
+
+-htcpHandleSet(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleSet(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ debugs(31, 3, "htcpHandleSet: Unimplemented");
+ }
+
+ static void
+-htcpHandleClr(htcpDataHeader * hdr, char *buf, int sz, IpAddress &from)
++htcpHandleClr(htcpDataHeader * hdr, char *buf, int sz, SquidIpAddress &from)
+ {
+ htcpSpecifier *s;
+ /* buf[0/1] is reserved and reason */
+@@ -1341,7 +1341,7 @@ htcpForwardClr(char *buf, int sz)
+ * hands it off to other functions to break apart message-specific data.
+ */
+ static void
+-htcpHandleMsg(char *buf, int sz, IpAddress &from)
++htcpHandleMsg(char *buf, int sz, SquidIpAddress &from)
+ {
+ htcpHeader htcpHdr;
+ htcpDataHeader hdr;
+@@ -1461,7 +1461,7 @@ htcpRecv(int fd, void *data)
+ {
+ static char buf[8192];
+ int len;
+- static IpAddress from;
++ static SquidIpAddress from;
+
+ /* Receive up to 8191 bytes, leaving room for a null */
+
+@@ -1491,7 +1491,7 @@ htcpInit(void)
+ return;
+ }
+
+- IpAddress incomingAddr = Config.Addrs.udp_incoming;
++ SquidIpAddress incomingAddr = Config.Addrs.udp_incoming;
+ incomingAddr.SetPort(Config.Port.htcp);
+
+ if (!Ip::EnableIpv6 && !incomingAddr.SetIPv4()) {
+@@ -1519,7 +1519,7 @@ htcpInit(void)
+ debugs(31, 1, "Accepting HTCP messages on port " << Config.Port.htcp << ", FD " << htcpInSocket << ".");
+
+ if (!Config.Addrs.udp_outgoing.IsNoAddr()) {
+- IpAddress outgoingAddr = Config.Addrs.udp_outgoing;
++ SquidIpAddress outgoingAddr = Config.Addrs.udp_outgoing;
+ outgoingAddr.SetPort(Config.Port.htcp);
+
+ if (!Ip::EnableIpv6 && !outgoingAddr.SetIPv4()) {
+@@ -1730,7 +1730,7 @@ htcpSocketClose(void)
+ }
+
+ static void
+-htcpLogHtcp(IpAddress &caddr, int opcode, log_type logcode, const char *url)
++htcpLogHtcp(SquidIpAddress &caddr, int opcode, log_type logcode, const char *url)
+ {
+ AccessLogEntry al;
+ if (LOG_TAG_NONE == logcode)
+diff --git a/src/htcp.h b/src/htcp.h
+index bcbc00b..d7228a6 100644
+--- a/src/htcp.h
++++ b/src/htcp.h
+@@ -35,7 +35,7 @@
+ #include "HttpHeader.h"
+ #include "typedefs.h"
+
+-class IpAddress;
++class SquidIpAddress;
+
+ /// \ingroup ServerProtocolHTCP
+ class HtcpReplyData
+@@ -60,7 +60,7 @@ public:
+ typedef class HtcpReplyData htcpReplyData;
+
+ /// \ingroup ServerProtocolHTCP
+-SQUIDCEXTERN void neighborsHtcpReply(const cache_key *, htcpReplyData *, const IpAddress &);
++SQUIDCEXTERN void neighborsHtcpReply(const cache_key *, htcpReplyData *, const SquidIpAddress &);
+
+ /// \ingroup ServerProtocolHTCP
+ SQUIDCEXTERN void htcpInit(void);
+diff --git a/src/http.cc b/src/http.cc
+index 4352b5e..4f052f6 100644
+--- a/src/http.cc
++++ b/src/http.cc
+@@ -1296,7 +1296,7 @@ void
+ HttpStateData::processReplyBody()
+ {
+ AsyncCall::Pointer call;
+- IpAddress client_addr;
++ SquidIpAddress client_addr;
+ bool ispinned = false;
+
+ if (!flags.headers_parsed) {
+diff --git a/src/icmp/Icmp.cc b/src/icmp/Icmp.cc
+index c660197..94d1ff2 100644
+--- a/src/icmp/Icmp.cc
++++ b/src/icmp/Icmp.cc
+@@ -107,7 +107,7 @@ Icmp::ipHops(int ttl)
+ }
+
+ void
+-Icmp::Log(const IpAddress &addr, const u_int8_t type, const char* pkt_str, const int rtt, const int hops)
++Icmp::Log(const SquidIpAddress &addr, const u_int8_t type, const char* pkt_str, const int rtt, const int hops)
+ {
+ debugs(42, 2, "pingerLog: " << std::setw(9) << current_time.tv_sec <<
+ "." << std::setfill('0') << std::setw(6) <<
+diff --git a/src/icmp/Icmp.h b/src/icmp/Icmp.h
+index f30d7f6..da936b0 100644
+--- a/src/icmp/Icmp.h
++++ b/src/icmp/Icmp.h
+@@ -45,7 +45,7 @@
+
+ /* This is a line-data format struct. DO NOT alter. */
+ struct pingerEchoData {
+- IpAddress to;
++ SquidIpAddress to;
+ unsigned char opcode;
+ int psize;
+ char payload[PINGER_PAYLOAD_SZ];
+@@ -53,7 +53,7 @@ struct pingerEchoData {
+
+ /* This is a line-data format struct. DO NOT alter. */
+ struct pingerReplyData {
+- IpAddress from;
++ SquidIpAddress from;
+ unsigned char opcode;
+ int rtt;
+ int hops;
+@@ -107,7 +107,7 @@ public:
+ * Content longer than MAX_PAYLOAD will be truncated.
+ \param len Length of the payload in bytes if any is to be sent or 0.
+ */
+- virtual void SendEcho(IpAddress &to, int opcode, const char *payload=NULL, int len=0) =0;
++ virtual void SendEcho(SquidIpAddress &to, int opcode, const char *payload=NULL, int len=0) =0;
+
+ /// Handle ICMP responses.
+ virtual void Recv(void) =0;
+@@ -135,7 +135,7 @@ protected:
+ int ipHops(int ttl);
+
+ /// Log the packet.
+- void Log(const IpAddress &addr, const u_int8_t type, const char* pkt_str, const int rtt, const int hops);
++ void Log(const SquidIpAddress &addr, const u_int8_t type, const char* pkt_str, const int rtt, const int hops);
+
+ /* no use wasting memory */
+ int icmp_sock;
+diff --git a/src/icmp/Icmp4.cc b/src/icmp/Icmp4.cc
+index 20382d0..92bb2b2 100644
+--- a/src/icmp/Icmp4.cc
++++ b/src/icmp/Icmp4.cc
+@@ -90,7 +90,7 @@ Icmp4::Open(void)
+ }
+
+ void
+-Icmp4::SendEcho(IpAddress &to, int opcode, const char *payload, int len)
++Icmp4::SendEcho(SquidIpAddress &to, int opcode, const char *payload, int len)
+ {
+ int x;
+ LOCAL_ARRAY(char, pkt, MAX_PKT4_SZ);
+diff --git a/src/icmp/Icmp4.h b/src/icmp/Icmp4.h
+index 101d563..b67f25c 100644
+--- a/src/icmp/Icmp4.h
++++ b/src/icmp/Icmp4.h
+@@ -170,7 +170,7 @@ public:
+ virtual int Open();
+
+ #if USE_ICMP
+- virtual void SendEcho(IpAddress &, int, const char*, int);
++ virtual void SendEcho(SquidIpAddress &, int, const char*, int);
+ virtual void Recv(void);
+ #endif
+ };
+diff --git a/src/icmp/Icmp6.cc b/src/icmp/Icmp6.cc
+index 945916d..cb84858 100644
+--- a/src/icmp/Icmp6.cc
++++ b/src/icmp/Icmp6.cc
+@@ -133,7 +133,7 @@ Icmp6::Open(void)
+ * Generates an RFC 4443 Icmp6 ECHO Packet and sends into the network.
+ */
+ void
+-Icmp6::SendEcho(IpAddress &to, int opcode, const char *payload, int len)
++Icmp6::SendEcho(SquidIpAddress &to, int opcode, const char *payload, int len)
+ {
+ int x;
+ LOCAL_ARRAY(char, pkt, MAX_PKT6_SZ);
+diff --git a/src/icmp/Icmp6.h b/src/icmp/Icmp6.h
+index 7b688f1..24599cd 100644
+--- a/src/icmp/Icmp6.h
++++ b/src/icmp/Icmp6.h
+@@ -74,7 +74,7 @@ public:
+ virtual int Open();
+
+ #if USE_ICMP
+- virtual void SendEcho(IpAddress &, int, const char*, int);
++ virtual void SendEcho(SquidIpAddress &, int, const char*, int);
+ virtual void Recv(void);
+ #endif
+ };
+diff --git a/src/icmp/IcmpPinger.h b/src/icmp/IcmpPinger.h
+index f51609e..6bd1d8b 100644
+--- a/src/icmp/IcmpPinger.h
++++ b/src/icmp/IcmpPinger.h
+@@ -62,7 +62,7 @@ public:
+
+ private:
+ // unused in IcmpPinger
+- virtual void SendEcho(IpAddress &to, int opcode, const char *payload, int len) {};
++ virtual void SendEcho(SquidIpAddress &to, int opcode, const char *payload, int len) {};
+
+ /**
+ * Control channel(s) to squid.
+diff --git a/src/icmp/IcmpSquid.cc b/src/icmp/IcmpSquid.cc
+index 6250a67..d9ec784 100644
+--- a/src/icmp/IcmpSquid.cc
++++ b/src/icmp/IcmpSquid.cc
+@@ -70,7 +70,7 @@ IcmpSquid::~IcmpSquid()
+ #if USE_ICMP
+
+ void
+-IcmpSquid::SendEcho(IpAddress &to, int opcode, const char *payload, int len)
++IcmpSquid::SendEcho(SquidIpAddress &to, int opcode, const char *payload, int len)
+ {
+ static pingerEchoData pecho;
+ int x, slen;
+@@ -142,7 +142,7 @@ IcmpSquid::Recv()
+ int n;
+ static int fail_count = 0;
+ pingerReplyData preply;
+- static IpAddress F;
++ static SquidIpAddress F;
+
+ commSetSelect(icmp_sock, COMM_SELECT_READ, icmpSquidRecv, NULL, 0);
+ memset(&preply, '\0', sizeof(pingerReplyData));
+@@ -197,7 +197,7 @@ IcmpSquid::Recv()
+ #endif /* USE_ICMP */
+
+ void
+-IcmpSquid::DomainPing(IpAddress &to, const char *domain)
++IcmpSquid::DomainPing(SquidIpAddress &to, const char *domain)
+ {
+ #if USE_ICMP
+ debugs(37, 4, HERE << "'" << domain << "' (" << to << ")");
+@@ -212,7 +212,7 @@ IcmpSquid::Open(void)
+ const char *args[2];
+ int rfd;
+ int wfd;
+- IpAddress localhost;
++ SquidIpAddress localhost;
+
+ /* User configured disabled. */
+ if (!Config.pinger.enable) {
+diff --git a/src/icmp/IcmpSquid.h b/src/icmp/IcmpSquid.h
+index 108e081..886e0e9 100644
+--- a/src/icmp/IcmpSquid.h
++++ b/src/icmp/IcmpSquid.h
+@@ -52,10 +52,10 @@ public:
+ virtual int Open();
+ virtual void Close();
+
+- void DomainPing(IpAddress &to, const char *domain);
++ void DomainPing(SquidIpAddress &to, const char *domain);
+
+ #if USE_ICMP
+- virtual void SendEcho(IpAddress &to, int opcode, const char* payload=NULL, int len=0);
++ virtual void SendEcho(SquidIpAddress &to, int opcode, const char* payload=NULL, int len=0);
+ virtual void Recv(void);
+ #endif
+ };
+diff --git a/src/icmp/net_db.cc b/src/icmp/net_db.cc
+index 009ab31..1241167 100644
+--- a/src/icmp/net_db.cc
++++ b/src/icmp/net_db.cc
+@@ -81,10 +81,10 @@ typedef struct {
+ static hash_table *addr_table = NULL;
+ static hash_table *host_table = NULL;
+
+-IpAddress networkFromInaddr(const IpAddress &a);
++SquidIpAddress networkFromInaddr(const SquidIpAddress &a);
+ static void netdbRelease(netdbEntry * n);
+
+-static void netdbHashInsert(netdbEntry * n, IpAddress &addr);
++static void netdbHashInsert(netdbEntry * n, SquidIpAddress &addr);
+ static void netdbHashDelete(const char *key);
+ static void netdbHostInsert(netdbEntry * n, const char *hostname);
+ static void netdbHostDelete(const net_db_name * x);
+@@ -109,7 +109,7 @@ static void netdbExchangeDone(void *);
+ static wordlist *peer_names = NULL;
+
+ static void
+-netdbHashInsert(netdbEntry * n, IpAddress &addr)
++netdbHashInsert(netdbEntry * n, SquidIpAddress &addr)
+ {
+ networkFromInaddr(addr).NtoA(n->network, MAX_IPSTRLEN);
+ n->hash.key = n->network;
+@@ -245,7 +245,7 @@ netdbPurgeLRU(void)
+ }
+
+ static netdbEntry *
+-netdbLookupAddr(const IpAddress &addr)
++netdbLookupAddr(const SquidIpAddress &addr)
+ {
+ netdbEntry *n;
+ char *key = new char[MAX_IPSTRLEN];
+@@ -256,7 +256,7 @@ netdbLookupAddr(const IpAddress &addr)
+ }
+
+ static netdbEntry *
+-netdbAdd(IpAddress &addr)
++netdbAdd(SquidIpAddress &addr)
+ {
+ netdbEntry *n;
+
+@@ -274,7 +274,7 @@ netdbAdd(IpAddress &addr)
+ static void
+ netdbSendPing(const ipcache_addrs *ia, const DnsLookupDetails &, void *data)
+ {
+- IpAddress addr;
++ SquidIpAddress addr;
+ char *hostname = NULL;
+ static_cast<generic_cbdata *>(data)->unwrap(&hostname);
+ netdbEntry *n;
+@@ -339,10 +339,10 @@ netdbSendPing(const ipcache_addrs *ia, const DnsLookupDetails &, void *data)
+ xfree(hostname);
+ }
+
+-IpAddress
+-networkFromInaddr(const IpAddress &in)
++SquidIpAddress
++networkFromInaddr(const SquidIpAddress &in)
+ {
+- IpAddress out;
++ SquidIpAddress out;
+
+ out = in;
+
+@@ -532,7 +532,7 @@ netdbReloadState(void)
+ netdbEntry *n;
+ netdbEntry N;
+
+- IpAddress addr;
++ SquidIpAddress addr;
+ int count = 0;
+
+ struct timeval start = current_time;
+@@ -673,7 +673,7 @@ netdbFreeNameEntry(void *data)
+ static void
+ netdbExchangeHandleReply(void *data, StoreIOBuffer receivedData)
+ {
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ netdbExchangeState *ex = (netdbExchangeState *)data;
+ int rec_sz = 0;
+@@ -933,7 +933,7 @@ netdbPingSite(const char *hostname)
+ }
+
+ void
+-netdbHandlePingReply(const IpAddress &from, int hops, int rtt)
++netdbHandlePingReply(const SquidIpAddress &from, int hops, int rtt)
+ {
+ #if USE_ICMP
+ netdbEntry *n;
+@@ -980,7 +980,7 @@ netdbFreeMemory(void)
+
+ #if 0 // AYJ: Looks to be unused code.
+ int
+-netdbHops(IpAddress &addr)
++netdbHops(SquidIpAddress &addr)
+ {
+ #if USE_ICMP
+ netdbEntry *n = netdbLookupAddr(addr);
+@@ -1147,7 +1147,7 @@ netdbUpdatePeer(HttpRequest * r, peer * e, int irtt, int ihops)
+ }
+
+ void
+-netdbExchangeUpdatePeer(IpAddress &addr, peer * e, double rtt, double hops)
++netdbExchangeUpdatePeer(SquidIpAddress &addr, peer * e, double rtt, double hops)
+ {
+ #if USE_ICMP
+ netdbEntry *n;
+@@ -1189,7 +1189,7 @@ netdbExchangeUpdatePeer(IpAddress &addr, peer * e, double rtt, double hops)
+ }
+
+ void
+-netdbDeleteAddrNetwork(IpAddress &addr)
++netdbDeleteAddrNetwork(SquidIpAddress &addr)
+ {
+ #if USE_ICMP
+ netdbEntry *n = netdbLookupAddr(addr);
+@@ -1210,7 +1210,7 @@ netdbBinaryExchange(StoreEntry * s)
+ HttpReply *reply = new HttpReply;
+ #if USE_ICMP
+
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ netdbEntry *n;
+ int i;
+diff --git a/src/icmp/net_db.h b/src/icmp/net_db.h
+index 151f50d..2db8bc4 100644
+--- a/src/icmp/net_db.h
++++ b/src/icmp/net_db.h
+@@ -3,7 +3,7 @@
+
+ #include "config.h"
+
+-class IpAddress;
++class SquidIpAddress;
+ class StoreEntry;
+ class HttpRequest;
+
+@@ -13,12 +13,12 @@ class HttpRequest;
+
+ SQUIDCEXTERN void netdbInit(void);
+
+-SQUIDCEXTERN void netdbHandlePingReply(const IpAddress &from, int hops, int rtt);
++SQUIDCEXTERN void netdbHandlePingReply(const SquidIpAddress &from, int hops, int rtt);
+ SQUIDCEXTERN void netdbPingSite(const char *hostname);
+ SQUIDCEXTERN void netdbDump(StoreEntry *);
+
+ #if 0 // AYJ: Looks to be unused now.
+-SQUIDCEXTERN int netdbHops(IpAddress &);
++SQUIDCEXTERN int netdbHops(SquidIpAddress &);
+ #endif
+
+ SQUIDCEXTERN void netdbFreeMemory(void);
+@@ -26,11 +26,11 @@ SQUIDCEXTERN int netdbHostHops(const char *host);
+ SQUIDCEXTERN int netdbHostRtt(const char *host);
+ SQUIDCEXTERN void netdbUpdatePeer(HttpRequest *, peer * e, int rtt, int hops);
+
+-SQUIDCEXTERN void netdbDeleteAddrNetwork(IpAddress &addr);
++SQUIDCEXTERN void netdbDeleteAddrNetwork(SquidIpAddress &addr);
+ SQUIDCEXTERN void netdbBinaryExchange(StoreEntry *);
+ SQUIDCEXTERN void netdbExchangeStart(void *);
+
+-SQUIDCEXTERN void netdbExchangeUpdatePeer(IpAddress &, peer *, double, double);
++SQUIDCEXTERN void netdbExchangeUpdatePeer(SquidIpAddress &, peer *, double, double);
+ SQUIDCEXTERN peer *netdbClosestParent(HttpRequest *);
+ SQUIDCEXTERN void netdbHostData(const char *host, int *samp, int *rtt, int *hops);
+
+diff --git a/src/icmp/testIcmp.h b/src/icmp/testIcmp.h
+index e0692bf..cf99bbf 100644
+--- a/src/icmp/testIcmp.h
++++ b/src/icmp/testIcmp.h
+@@ -15,7 +15,7 @@ public:
+ virtual void Close() {};
+
+ /// Construct ECHO request
+- virtual void SendEcho(IpAddress &to, int opcode, const char *payload, int len) {};
++ virtual void SendEcho(SquidIpAddress &to, int opcode, const char *payload, int len) {};
+
+ /// Handle ICMP responses.
+ virtual void Recv(void) {};
+diff --git a/src/icp_v2.cc b/src/icp_v2.cc
+index bb8143b..0fbd544 100644
+--- a/src/icp_v2.cc
++++ b/src/icp_v2.cc
+@@ -52,10 +52,10 @@
+ #include "rfc1738.h"
+
+ /// \ingroup ServerProtocolICPInternal2
+-static void icpLogIcp(const IpAddress &, log_type, int, const char *, int);
++static void icpLogIcp(const SquidIpAddress &, log_type, int, const char *, int);
+
+ /// \ingroup ServerProtocolICPInternal2
+-static void icpHandleIcpV2(int, IpAddress &, char *, int);
++static void icpHandleIcpV2(int, SquidIpAddress &, char *, int);
+
+ /// \ingroup ServerProtocolICPInternal2
+ static void icpCount(void *, int, size_t, int);
+@@ -70,7 +70,7 @@ static icpUdpData *IcpQueueHead = NULL;
+ static icpUdpData *IcpQueueTail = NULL;
+
+ /// \ingroup ServerProtocolICPInternal2
+-IpAddress theOutICPAddr;
++SquidIpAddress theOutICPAddr;
+
+ /* icp_common_t */
+ _icp_common_t::_icp_common_t() : opcode(ICP_INVALID), version(0), length(0), reqnum(0), flags(0), pad(0), shostid(0)
+@@ -175,7 +175,7 @@ ICP2State::created(StoreEntry *newEntry)
+
+ /// \ingroup ServerProtocolICPInternal2
+ static void
+-icpLogIcp(const IpAddress &caddr, log_type logcode, int len, const char *url, int delay)
++icpLogIcp(const SquidIpAddress &caddr, log_type logcode, int len, const char *url, int delay)
+ {
+ AccessLogEntry al;
+
+@@ -272,7 +272,7 @@ _icp_common_t::createMessage(
+
+ int
+ icpUdpSend(int fd,
+- const IpAddress &to,
++ const SquidIpAddress &to,
+ icp_common_t * msg,
+ log_type logcode,
+ int delay)
+@@ -382,14 +382,14 @@ icpLogFromICPCode(icp_opcode opcode)
+ }
+
+ void
+-icpCreateAndSend(icp_opcode opcode, int flags, char const *url, int reqnum, int pad, int fd, const IpAddress &from)
++icpCreateAndSend(icp_opcode opcode, int flags, char const *url, int reqnum, int pad, int fd, const SquidIpAddress &from)
+ {
+ icp_common_t *reply = _icp_common_t::createMessage(opcode, flags, url, reqnum, pad);
+ icpUdpSend(fd, from, reply, icpLogFromICPCode(opcode), 0);
+ }
+
+ void
+-icpDenyAccess(IpAddress &from, char *url, int reqnum, int fd)
++icpDenyAccess(SquidIpAddress &from, char *url, int reqnum, int fd)
+ {
+ debugs(12, 2, "icpDenyAccess: Access Denied for " << from << " by " << AclMatchedName << ".");
+
+@@ -405,7 +405,7 @@ icpDenyAccess(IpAddress &from, char *url, int reqnum, int fd)
+ }
+
+ int
+-icpAccessAllowed(IpAddress &from, HttpRequest * icp_request)
++icpAccessAllowed(SquidIpAddress &from, HttpRequest * icp_request)
+ {
+ /* absent an explicit allow, we deny all */
+ if (!Config.accessList.icp)
+@@ -428,7 +428,7 @@ icpGetUrlToSend(char *url)
+ }
+
+ HttpRequest *
+-icpGetRequest(char *url, int reqnum, int fd, IpAddress &from)
++icpGetRequest(char *url, int reqnum, int fd, SquidIpAddress &from)
+ {
+ if (strpbrk(url, w_space)) {
+ url = rfc1738_escape(url);
+@@ -446,7 +446,7 @@ icpGetRequest(char *url, int reqnum, int fd, IpAddress &from)
+ }
+
+ static void
+-doV2Query(int fd, IpAddress &from, char *buf, icp_common_t header)
++doV2Query(int fd, SquidIpAddress &from, char *buf, icp_common_t header)
+ {
+ int rtt = 0;
+ int src_rtt = 0;
+@@ -497,7 +497,7 @@ doV2Query(int fd, IpAddress &from, char *buf, icp_common_t header)
+ }
+
+ void
+-_icp_common_t::handleReply(char *buf, IpAddress &from)
++_icp_common_t::handleReply(char *buf, SquidIpAddress &from)
+ {
+ if (neighbors_do_private_keys && reqnum == 0) {
+ debugs(12, 0, "icpHandleIcpV2: Neighbor " << from << " returned reqnum = 0");
+@@ -514,7 +514,7 @@ _icp_common_t::handleReply(char *buf, IpAddress &from)
+ }
+
+ static void
+-icpHandleIcpV2(int fd, IpAddress &from, char *buf, int len)
++icpHandleIcpV2(int fd, SquidIpAddress &from, char *buf, int len)
+ {
+ if (len <= 0) {
+ debugs(12, 3, "icpHandleIcpV2: ICP message is too small");
+@@ -567,7 +567,7 @@ static void
+ icpPktDump(icp_common_t * pkt)
+ {
+
+- IpAddress a;
++ SquidIpAddress a;
+
+ debugs(12, 9, "opcode: " << std::setw(3) << pkt->opcode << " " << icp_opcode_str[pkt->opcode]);
+ debugs(12, 9, "version: "<< std::left << std::setw(8) << pkt->version);
+@@ -586,7 +586,7 @@ icpHandleUdp(int sock, void *data)
+ {
+ int *N = &incoming_sockets_accepted;
+
+- IpAddress from;
++ SquidIpAddress from;
+ LOCAL_ARRAY(char, buf, SQUID_UDP_SO_RCVBUF);
+ int len;
+ int icp_version;
+@@ -653,7 +653,7 @@ icpConnectionsOpen(void)
+ {
+ u_int16_t port;
+
+- IpAddress addr;
++ SquidIpAddress addr;
+
+ struct addrinfo *xai = NULL;
+ int x;
+diff --git a/src/icp_v3.cc b/src/icp_v3.cc
+index 52434d9..5dc72db 100644
+--- a/src/icp_v3.cc
++++ b/src/icp_v3.cc
+@@ -56,7 +56,7 @@ public:
+
+ /// \ingroup ServerProtocolICPInternal3
+ static void
+-doV3Query(int fd, IpAddress &from, char *buf, icp_common_t header)
++doV3Query(int fd, SquidIpAddress &from, char *buf, icp_common_t header)
+ {
+ /* We have a valid packet */
+ char *url = buf + sizeof(icp_common_t) + sizeof(u_int32_t);
+@@ -109,7 +109,7 @@ ICP3State::created(StoreEntry *newEntry)
+ /// \ingroup ServerProtocolICPInternal3
+ /* Currently Harvest cached-2.x uses ICP_VERSION_3 */
+ void
+-icpHandleIcpV3(int fd, IpAddress&from, char *buf, int len)
++icpHandleIcpV3(int fd, SquidIpAddress&from, char *buf, int len)
+ {
+ if (len <= 0) {
+ debugs(12, 3, "icpHandleIcpV3: ICP message is too small");
+diff --git a/src/ident/Ident.cc b/src/ident/Ident.cc
+index 43c05e2..83a8c50 100644
+--- a/src/ident/Ident.cc
++++ b/src/ident/Ident.cc
+@@ -58,9 +58,9 @@ typedef struct _IdentStateData {
+ hash_link hash; /* must be first */
+ int fd; /* IDENT fd */
+
+- IpAddress me;
++ SquidIpAddress me;
+
+- IpAddress my_peer;
++ SquidIpAddress my_peer;
+ IdentClient *clients;
+ char buf[4096];
+ } IdentStateData;
+@@ -214,7 +214,7 @@ CBDATA_TYPE(IdentStateData);
+ * start a TCP connection to the peer host on port 113
+ */
+ void
+-Ident::Start(IpAddress &me, IpAddress &my_peer, IDCB * callback, void *data)
++Ident::Start(SquidIpAddress &me, SquidIpAddress &my_peer, IDCB * callback, void *data)
+ {
+ IdentStateData *state;
+ int fd;
+@@ -235,7 +235,7 @@ Ident::Start(IpAddress &me, IpAddress &my_peer, IDCB * callback, void *data)
+ return;
+ }
+
+- IpAddress addr = me;
++ SquidIpAddress addr = me;
+ addr.SetPort(0); // NP: use random port for secure outbound to IDENT_PORT
+
+ fd = comm_open_listener(SOCK_STREAM,
+diff --git a/src/ident/Ident.h b/src/ident/Ident.h
+index fe035f2..6a3a705 100644
+--- a/src/ident/Ident.h
++++ b/src/ident/Ident.h
+@@ -15,7 +15,7 @@
+
+ #include "cbdata.h"
+
+-class IpAddress;
++class SquidIpAddress;
+
+ namespace Ident
+ {
+@@ -28,7 +28,7 @@ namespace Ident
+ * Self-registers with a global ident lookup manager,
+ * will call Ident::Init() itself if the manager has not been initialized already.
+ */
+-void Start(IpAddress &me, IpAddress &my_peer, IDCB * callback, void *cbdata);
++void Start(SquidIpAddress &me, SquidIpAddress &my_peer, IDCB * callback, void *cbdata);
+
+ /**
+ \ingroup IdentAPI
+diff --git a/src/internal.cc b/src/internal.cc
+index c3edf1c..903971f 100644
+--- a/src/internal.cc
++++ b/src/internal.cc
+@@ -102,7 +102,7 @@ internalRemoteUri(const char *host, unsigned short port, const char *dir, const
+ Tolower(lc_host);
+
+ /* check for an IP address and format appropriately if found */
+- IpAddress test = lc_host;
++ SquidIpAddress test = lc_host;
+ if ( !test.IsAnyAddr() ) {
+ test.ToHostname(lc_host,SQUIDHOSTNAMELEN);
+ }
+diff --git a/src/ip/IpAddress.cc b/src/ip/IpAddress.cc
+index 8ea0d06..0dc5c9c 100644
+--- a/src/ip/IpAddress.cc
++++ b/src/ip/IpAddress.cc
+@@ -14,7 +14,7 @@
+ * developed and/or copyrighted by other sources. Please see the
+ * CREDITS file for full details.
+ *
+- * This IpAddress code is copyright (C) 2007 by Treehouse Networks Ltd
++ * This SquidIpAddress code is copyright (C) 2007 by Treehouse Networks Ltd
+ * of New Zealand. It is published and Lisenced as an extension of
+ * squid under the same conditions as the main squid application.
+ *
+@@ -59,32 +59,32 @@
+ #ifndef SQUID_DEBUG
+ # define debugs(a,b,c) // drop.
+ #else
+-#warning "IpAddress built with Debugs!!"
++#warning "SquidIpAddress built with Debugs!!"
+ # include "../src/Debug.h"
+ #endif
+
+ /* Debugging only. Dump the address content when a fatal assert is encountered. */
+ #define IASSERT(a,b) \
+ if(!(b)){ printf("assert \"%s\" at line %d\n", a, __LINE__); \
+- printf("IpAddress invalid? with IsIPv4()=%c, IsIPv6()=%c\n",(IsIPv4()?'T':'F'),(IsIPv6()?'T':'F')); \
++ printf("SquidIpAddress invalid? with IsIPv4()=%c, IsIPv6()=%c\n",(IsIPv4()?'T':'F'),(IsIPv6()?'T':'F')); \
+ printf("ADDRESS:"); \
+ for(unsigned int i = 0; i < sizeof(m_SocketAddr.sin6_addr); i++) { \
+ printf(" %x", m_SocketAddr.sin6_addr.s6_addr[i]); \
+ } printf("\n"); assert(b); \
+ }
+
+-IpAddress::IpAddress()
++SquidIpAddress::SquidIpAddress()
+ {
+ SetEmpty();
+ }
+
+-IpAddress::~IpAddress()
++SquidIpAddress::~SquidIpAddress()
+ {
+- memset(this,0,sizeof(IpAddress));
++ memset(this,0,sizeof(SquidIpAddress));
+ }
+
+ int
+-IpAddress::GetCIDR() const
++SquidIpAddress::GetCIDR() const
+ {
+ uint8_t shift,byte;
+ uint8_t bit,caught;
+@@ -126,7 +126,7 @@ IpAddress::GetCIDR() const
+ return len;
+ }
+
+-const int IpAddress::ApplyMask(IpAddress const &mask_addr)
++const int SquidIpAddress::ApplyMask(SquidIpAddress const &mask_addr)
+ {
+ uint32_t *p1 = (uint32_t*)(&m_SocketAddr.sin6_addr);
+ uint32_t const *p2 = (uint32_t const *)(&mask_addr.m_SocketAddr.sin6_addr);
+@@ -143,7 +143,7 @@ const int IpAddress::ApplyMask(IpAddress const &mask_addr)
+ return changes;
+ }
+
+-bool IpAddress::ApplyMask(const unsigned int cidr, int mtype)
++bool SquidIpAddress::ApplyMask(const unsigned int cidr, int mtype)
+ {
+ uint8_t clearbits = 0;
+ uint8_t* p = NULL;
+@@ -182,53 +182,53 @@ bool IpAddress::ApplyMask(const unsigned int cidr, int mtype)
+ return true;
+ }
+
+-bool IpAddress::IsSockAddr() const
++bool SquidIpAddress::IsSockAddr() const
+ {
+ return (m_SocketAddr.sin6_port != 0);
+ }
+
+-bool IpAddress::IsIPv4() const
++bool SquidIpAddress::IsIPv4() const
+ {
+ return IsAnyAddr() || IsNoAddr() || IN6_IS_ADDR_V4MAPPED( &m_SocketAddr.sin6_addr );
+ }
+
+-bool IpAddress::IsIPv6() const
++bool SquidIpAddress::IsIPv6() const
+ {
+ return IsAnyAddr() || IsNoAddr() || !IN6_IS_ADDR_V4MAPPED( &m_SocketAddr.sin6_addr );
+ }
+
+-bool IpAddress::IsAnyAddr() const
++bool SquidIpAddress::IsAnyAddr() const
+ {
+ return IN6_IS_ADDR_UNSPECIFIED( &m_SocketAddr.sin6_addr );
+ }
+
+ /// NOTE: Does NOT clear the Port stored. Ony the Address and Type.
+-void IpAddress::SetAnyAddr()
++void SquidIpAddress::SetAnyAddr()
+ {
+ memset(&m_SocketAddr.sin6_addr, 0, sizeof(struct in6_addr) );
+ }
+
+-/// NOTE: completely empties the IpAddress structure. Address, Port, Type, everything.
+-void IpAddress::SetEmpty()
++/// NOTE: completely empties the SquidIpAddress structure. Address, Port, Type, everything.
++void SquidIpAddress::SetEmpty()
+ {
+ memset(&m_SocketAddr, 0, sizeof(m_SocketAddr) );
+ }
+
+-const struct in6_addr IpAddress::v4_localhost = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++const struct in6_addr SquidIpAddress::v4_localhost = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x01 }}
+ };
+-const struct in6_addr IpAddress::v4_anyaddr = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++const struct in6_addr SquidIpAddress::v4_anyaddr = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}
+ };
+-const struct in6_addr IpAddress::v4_noaddr = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++const struct in6_addr SquidIpAddress::v4_noaddr = {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }}
+ };
+-const struct in6_addr IpAddress::v6_noaddr = {{{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++const struct in6_addr SquidIpAddress::v6_noaddr = {{{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }}
+ };
+
+
+-bool IpAddress::SetIPv4()
++bool SquidIpAddress::SetIPv4()
+ {
+ if ( IsLocalhost() ) {
+ m_SocketAddr.sin6_addr = v4_localhost;
+@@ -247,12 +247,12 @@ bool IpAddress::SetIPv4()
+ return false;
+ }
+
+-bool IpAddress::IsLocalhost() const
++bool SquidIpAddress::IsLocalhost() const
+ {
+ return IN6_IS_ADDR_LOOPBACK( &m_SocketAddr.sin6_addr ) || IN6_ARE_ADDR_EQUAL( &m_SocketAddr.sin6_addr, &v4_localhost );
+ }
+
+-void IpAddress::SetLocalhost()
++void SquidIpAddress::SetLocalhost()
+ {
+ if (Ip::EnableIpv6) {
+ m_SocketAddr.sin6_addr = in6addr_loopback;
+@@ -263,19 +263,19 @@ void IpAddress::SetLocalhost()
+ }
+ }
+
+-bool IpAddress::IsNoAddr() const
++bool SquidIpAddress::IsNoAddr() const
+ {
+ // IFF the address == 0xff..ff (all ones)
+ return IN6_ARE_ADDR_EQUAL( &m_SocketAddr.sin6_addr, &v6_noaddr );
+ }
+
+-void IpAddress::SetNoAddr()
++void SquidIpAddress::SetNoAddr()
+ {
+ memset(&m_SocketAddr.sin6_addr, 0xFF, sizeof(struct in6_addr) );
+ m_SocketAddr.sin6_family = AF_INET6;
+ }
+
+-bool IpAddress::GetReverseString6(char buf[MAX_IPSTRLEN], const struct in6_addr &dat) const
++bool SquidIpAddress::GetReverseString6(char buf[MAX_IPSTRLEN], const struct in6_addr &dat) const
+ {
+ char *p = buf;
+ unsigned char const *r = dat.s6_addr;
+@@ -301,7 +301,7 @@ bool IpAddress::GetReverseString6(char buf[MAX_IPSTRLEN], const struct in6_addr
+ return true;
+ }
+
+-bool IpAddress::GetReverseString4(char buf[MAX_IPSTRLEN], const struct in_addr &dat) const
++bool SquidIpAddress::GetReverseString4(char buf[MAX_IPSTRLEN], const struct in_addr &dat) const
+ {
+ unsigned int i = (unsigned int) ntohl(dat.s_addr);
+ snprintf(buf, 32, "%u.%u.%u.%u.in-addr.arpa.",
+@@ -312,7 +312,7 @@ bool IpAddress::GetReverseString4(char buf[MAX_IPSTRLEN], const struct in_addr &
+ return true;
+ }
+
+-bool IpAddress::GetReverseString(char buf[MAX_IPSTRLEN], int show_type) const
++bool SquidIpAddress::GetReverseString(char buf[MAX_IPSTRLEN], int show_type) const
+ {
+
+ if (show_type == AF_UNSPEC) {
+@@ -333,29 +333,29 @@ bool IpAddress::GetReverseString(char buf[MAX_IPSTRLEN], int show_type) const
+ return false;
+ }
+
+-IpAddress& IpAddress::operator =(const IpAddress &s)
++SquidIpAddress& SquidIpAddress::operator =(const SquidIpAddress &s)
+ {
+- memcpy(this, &s, sizeof(IpAddress));
++ memcpy(this, &s, sizeof(SquidIpAddress));
+ return *this;
+ };
+
+-IpAddress::IpAddress(const char*s)
++SquidIpAddress::SquidIpAddress(const char*s)
+ {
+ SetEmpty();
+ LookupHostIP(s, true);
+ }
+
+-bool IpAddress::operator =(const char* s)
++bool SquidIpAddress::operator =(const char* s)
+ {
+ return LookupHostIP(s, true);
+ }
+
+-bool IpAddress::GetHostByName(const char* s)
++bool SquidIpAddress::GetHostByName(const char* s)
+ {
+ return LookupHostIP(s, false);
+ }
+
+-bool IpAddress::LookupHostIP(const char *s, bool nodns)
++bool SquidIpAddress::LookupHostIP(const char *s, bool nodns)
+ {
+ int err = 0;
+
+@@ -400,13 +400,13 @@ bool IpAddress::LookupHostIP(const char *s, bool nodns)
+ return true;
+ }
+
+-IpAddress::IpAddress(struct sockaddr_in const &s)
++SquidIpAddress::SquidIpAddress(struct sockaddr_in const &s)
+ {
+ SetEmpty();
+ operator=(s);
+ };
+
+-IpAddress& IpAddress::operator =(struct sockaddr_in const &s)
++SquidIpAddress& SquidIpAddress::operator =(struct sockaddr_in const &s)
+ {
+ Map4to6((const in_addr)s.sin_addr, m_SocketAddr.sin6_addr);
+ m_SocketAddr.sin6_port = s.sin_port;
+@@ -414,7 +414,7 @@ IpAddress& IpAddress::operator =(struct sockaddr_in const &s)
+ return *this;
+ };
+
+-IpAddress& IpAddress::operator =(const struct sockaddr_storage &s)
++SquidIpAddress& SquidIpAddress::operator =(const struct sockaddr_storage &s)
+ {
+ /* some AF_* magic to tell socket types apart and what we need to do */
+ if (s.ss_family == AF_INET6) {
+@@ -427,39 +427,39 @@ IpAddress& IpAddress::operator =(const struct sockaddr_storage &s)
+ return *this;
+ };
+
+-IpAddress::IpAddress(struct sockaddr_in6 const &s)
++SquidIpAddress::SquidIpAddress(struct sockaddr_in6 const &s)
+ {
+ SetEmpty();
+ operator=(s);
+ };
+
+-IpAddress& IpAddress::operator =(struct sockaddr_in6 const &s)
++SquidIpAddress& SquidIpAddress::operator =(struct sockaddr_in6 const &s)
+ {
+ memcpy(&m_SocketAddr, &s, sizeof(struct sockaddr_in6));
+
+ return *this;
+ };
+
+-IpAddress::IpAddress(struct in_addr const &s)
++SquidIpAddress::SquidIpAddress(struct in_addr const &s)
+ {
+ SetEmpty();
+ operator=(s);
+ };
+
+-IpAddress& IpAddress::operator =(struct in_addr const &s)
++SquidIpAddress& SquidIpAddress::operator =(struct in_addr const &s)
+ {
+ Map4to6((const in_addr)s, m_SocketAddr.sin6_addr);
+ m_SocketAddr.sin6_family = AF_INET6;
+ return *this;
+ };
+
+-IpAddress::IpAddress(struct in6_addr const &s)
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list