[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