--------------------- PatchSet 4209 Date: 2007/04/07 22:39:19 Author: amosjeffries Branch: squid3-ipv6 Tag: (none) Log: Rollout IPAddress into AuthUser* Members: src/ACLMaxUserIP.cc:1.5.6.6->1.5.6.7 src/AuthUser.cc:1.1.8.2->1.1.8.3 src/AuthUser.h:1.1.8.1->1.1.8.2 src/AuthUserRequest.cc:1.2.4.8->1.2.4.9 src/AuthUserRequest.h:1.1.8.7->1.1.8.8 Index: squid3/src/ACLMaxUserIP.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/ACLMaxUserIP.cc,v retrieving revision 1.5.6.6 retrieving revision 1.5.6.7 diff -u -r1.5.6.6 -r1.5.6.7 --- squid3/src/ACLMaxUserIP.cc 5 Apr 2007 10:37:17 -0000 1.5.6.6 +++ squid3/src/ACLMaxUserIP.cc 7 Apr 2007 22:39:19 -0000 1.5.6.7 @@ -1,5 +1,5 @@ /* - * $Id: ACLMaxUserIP.cc,v 1.5.6.6 2007/04/05 10:37:17 amosjeffries Exp $ + * $Id: ACLMaxUserIP.cc,v 1.5.6.7 2007/04/07 22:39:19 amosjeffries Exp $ * * DEBUG: section 28 Access Control * AUTHOR: Duane Wessels @@ -137,8 +137,7 @@ * the request */ /* remove _this_ ip, as it is the culprit for going over the limit */ -/* FIXME INET6 : drop temp conversion */ struct IN_ADDR tmp; src_addr.GetInAddr(tmp); - authenticateAuthUserRequestRemoveIp(auth_user_request, tmp); + authenticateAuthUserRequestRemoveIp(auth_user_request, src_addr); debug(28, 4) ("aclMatchUserMaxIP: Denying access in strict mode\n"); } else { Index: squid3/src/AuthUser.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/AuthUser.cc,v retrieving revision 1.1.8.2 retrieving revision 1.1.8.3 diff -u -r1.1.8.2 -r1.1.8.3 --- squid3/src/AuthUser.cc 23 Mar 2007 06:35:18 -0000 1.1.8.2 +++ squid3/src/AuthUser.cc 7 Apr 2007 22:39:20 -0000 1.1.8.3 @@ -1,6 +1,6 @@ /* - * $Id: AuthUser.cc,v 1.1.8.2 2007/03/23 06:35:18 amosjeffries Exp $ + * $Id: AuthUser.cc,v 1.1.8.3 2007/04/07 22:39:20 amosjeffries Exp $ * * DEBUG: section 29 Authenticator * AUTHOR: Robert Collins @@ -236,7 +236,7 @@ } void -AuthUser::removeIp(struct IN_ADDR ipaddr) +AuthUser::removeIp(IPAddress ipaddr) { auth_user_ip_t *ipdata = (auth_user_ip_t *) ip_list.head; @@ -244,7 +244,7 @@ { /* walk the ip list */ - if (ipdata->ipaddr.s_addr == ipaddr.s_addr) { + if (ipdata->ipaddr == ipaddr) { /* remove the node */ dlinkDelete(&ipdata->node, &ip_list); cbdataFree(ipdata); @@ -260,10 +260,10 @@ } void -AuthUser::addIp(struct IN_ADDR ipaddr) +AuthUser::addIp(IPAddress ipaddr) { auth_user_ip_t *ipdata = (auth_user_ip_t *) ip_list.head; - char *ip1; + char ip1[MAX_IPSTRLEN]; int found = 0; CBDATA_INIT_TYPE(auth_user_ip_t); @@ -278,7 +278,7 @@ auth_user_ip_t *tempnode = (auth_user_ip_t *) ipdata->node.next; /* walk the ip list */ - if (ipdata->ipaddr.s_addr == ipaddr.s_addr) { + if (ipdata->ipaddr == ipaddr) { /* This ip has alreadu been seen. */ found = 1; /* update IP ttl */ @@ -309,11 +309,8 @@ ipcount++; - ip1 = xstrdup(inet_ntoa(ipaddr)); - - debug(29, 2) ("authenticateAuthUserAddIp: user '%s' has been seen at a new IP address (%s)\n", username(), ip1); - - safe_free(ip1); + debug(29, 2) ("authenticateAuthUserAddIp: user '%s' has been seen at a new IP address (%s)\n", username(), + ipaddr.NtoA(ip1,MAX_IPSTRLEN) ); } Index: squid3/src/AuthUser.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/AuthUser.h,v retrieving revision 1.1.8.1 retrieving revision 1.1.8.2 diff -u -r1.1.8.1 -r1.1.8.2 --- squid3/src/AuthUser.h 5 Jan 2007 16:58:27 -0000 1.1.8.1 +++ squid3/src/AuthUser.h 7 Apr 2007 22:39:20 -0000 1.1.8.2 @@ -1,6 +1,6 @@ /* - * $Id: AuthUser.h,v 1.1.8.1 2007/01/05 16:58:27 hno Exp $ + * $Id: AuthUser.h,v 1.1.8.2 2007/04/07 22:39:20 amosjeffries Exp $ * * * SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -35,6 +35,8 @@ #ifndef SQUID_AUTHUSER_H #define SQUID_AUTHUSER_H +#include "IPAddress.h" + class AuthUser { @@ -68,8 +70,8 @@ _SQUID_INLINE_ char const *username() const; _SQUID_INLINE_ void username(char const *); void clearIp(); - void removeIp(struct IN_ADDR); - void addIp(struct IN_ADDR); + void removeIp(IPAddress); + void addIp(IPAddress); _SQUID_INLINE_ void addRequest(AuthUserRequest *); void lock() Index: squid3/src/AuthUserRequest.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/AuthUserRequest.cc,v retrieving revision 1.2.4.8 retrieving revision 1.2.4.9 diff -u -r1.2.4.8 -r1.2.4.9 --- squid3/src/AuthUserRequest.cc 21 Mar 2007 08:55:10 -0000 1.2.4.8 +++ squid3/src/AuthUserRequest.cc 7 Apr 2007 22:39:20 -0000 1.2.4.9 @@ -1,6 +1,6 @@ /* - * $Id: AuthUserRequest.cc,v 1.2.4.8 2007/03/21 08:55:10 amosjeffries Exp $ + * $Id: AuthUserRequest.cc,v 1.2.4.9 2007/04/07 22:39:20 amosjeffries Exp $ * * DO NOT MODIFY NEXT 2 LINES: * arch-tag: 6803fde1-d5a2-4c29-9034-1c0c9f650eb4 @@ -198,7 +198,7 @@ } static void -authenticateAuthUserRequestSetIp(auth_user_request_t * auth_user_request, struct IN_ADDR ipaddr) +authenticateAuthUserRequestSetIp(auth_user_request_t * auth_user_request, IPAddress &ipaddr) { auth_user_t *auth_user = auth_user_request->user(); @@ -209,7 +209,7 @@ } void -authenticateAuthUserRequestRemoveIp(auth_user_request_t * auth_user_request, struct IN_ADDR ipaddr) +authenticateAuthUserRequestRemoveIp(auth_user_request_t * auth_user_request, IPAddress const &ipaddr) { auth_user_t *auth_user = auth_user_request->user(); @@ -325,7 +325,7 @@ */ auth_acl_t -AuthUserRequest::authenticate(auth_user_request_t ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, struct IN_ADDR src_addr) +AuthUserRequest::authenticate(auth_user_request_t ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, IPAddress &src_addr) { char buf[MAX_IPSTRLEN]; const char *proxy_auth; @@ -405,9 +405,8 @@ AuthConfig * scheme = AuthConfig::Find(proxy_auth); if (!conn->auth_user_request->user() || conn->auth_user_request->user()->config != scheme) { -/* FIXME INET6 : drop temp conversion */ IPAddress tmp(src_addr); debug(29, 1) ("authenticateAuthenticate: Unexpected change of authentication scheme from '%s' to '%s' (client %s)\n", - conn->auth_user_request->user()->config->type(), proxy_auth, tmp.NtoA(buf,MAX_IPSTRLEN)); + conn->auth_user_request->user()->config->type(), proxy_auth, src_addr.NtoA(buf,MAX_IPSTRLEN)); conn->auth_user_request->unlock(); conn->auth_user_request = NULL; conn->auth_type = AUTH_UNKNOWN; @@ -572,8 +571,7 @@ } /* ok, call the actual authenticator routine. */ - /* FIXME INET6 : drop temp conversion */ struct IN_ADDR tmp; src_addr.GetInAddr(tmp); - auth_acl_t result = authenticate(auth_user_request, headertype, request, conn, tmp); + auth_acl_t result = authenticate(auth_user_request, headertype, request, conn, src_addr); t = authTryGetUser (auth_user_request, conn, request); Index: squid3/src/AuthUserRequest.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/AuthUserRequest.h,v retrieving revision 1.1.8.7 retrieving revision 1.1.8.8 diff -u -r1.1.8.7 -r1.1.8.8 --- squid3/src/AuthUserRequest.h 21 Mar 2007 08:55:11 -0000 1.1.8.7 +++ squid3/src/AuthUserRequest.h 7 Apr 2007 22:39:21 -0000 1.1.8.8 @@ -1,6 +1,6 @@ /* - * $Id: AuthUserRequest.h,v 1.1.8.7 2007/03/21 08:55:11 amosjeffries Exp $ + * $Id: AuthUserRequest.h,v 1.1.8.8 2007/04/07 22:39:21 amosjeffries Exp $ * * DO NOT MODIFY NEXT 2 LINES: * arch-tag: 674533af-8b21-4641-b71a-74c4639072a0 @@ -49,7 +49,7 @@ dlink_node node; /* IP addr this user authenticated from */ - struct IN_ADDR ipaddr; + IPAddress ipaddr; time_t ip_expiretime; }; @@ -108,7 +108,7 @@ private: - static auth_acl_t authenticate(auth_user_request_t ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, struct IN_ADDR src_addr); + static auth_acl_t authenticate(auth_user_request_t ** auth_user_request, http_hdr_type headertype, HttpRequest * request, ConnStateData::Pointer conn, IPAddress &src_addr); /* return a message on the 407 error pages */ char *message; @@ -129,7 +129,7 @@ extern void authenticateFixHeader(HttpReply *, auth_user_request_t *, HttpRequest *, int, int); extern void authenticateAddTrailer(HttpReply *, auth_user_request_t *, HttpRequest *, int); -extern void authenticateAuthUserRequestRemoveIp(auth_user_request_t *, struct IN_ADDR); +extern void authenticateAuthUserRequestRemoveIp(auth_user_request_t *, IPAddress const &); extern void authenticateAuthUserRequestClearIp(auth_user_request_t *); extern int authenticateAuthUserRequestIPCount(auth_user_request_t *); extern int authenticateDirection(auth_user_request_t *);