~clint-fewbar/ubuntu/precise/squid3/ignore-sighup-early

« back to all changes in this revision

Viewing changes to src/ACLIP.h

  • Committer: Bazaar Package Importer
  • Author(s): Luigi Gangitano
  • Date: 2009-09-24 14:51:06 UTC
  • mfrom: (1.1.12 upstream)
  • mto: (20.2.1 sid)
  • mto: This revision was merged to the branch mainline in revision 21.
  • Revision ID: james.westby@ubuntu.com-20090924145106-38jgrzmj0d73pha5
Tags: 3.1.0.13-1
* Upload to experimental

* New upstream release
  - Fixes Follow-X-Forwarded-For support (Closes: #523943)
  - Adds IPv6 support (Closes: #432351)

* debian/rules
  - Removed obsolete configuration options
  - Enable db and radius basic authentication modules

* debian/patches/01-cf.data.debian
  - Adapted to new upstream version

* debian/patches/02-makefile-defaults
  - Adapted to new upstream version

* debian/{squid.postinst,squid.rc,README.Debian,watch}
  - Updated references to squid 3.1

* debian/squid3.install
  - Install CSS file for error pages
  - Install manual pages for new authentication modules

* debian/squid3-common.install
  - Install documented version of configuration file in /usr/share/doc/squid3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
/*
3
 
 * $Id$
4
 
 *
5
 
 *
6
 
 * SQUID Web Proxy Cache          http://www.squid-cache.org/
7
 
 * ----------------------------------------------------------
8
 
 *
9
 
 *  Squid is the result of efforts by numerous individuals from
10
 
 *  the Internet community; see the CONTRIBUTORS file for full
11
 
 *  details.   Many organizations have provided support for Squid's
12
 
 *  development; see the SPONSORS file for full details.  Squid is
13
 
 *  Copyrighted (C) 2001 by the Regents of the University of
14
 
 *  California; see the COPYRIGHT file for full details.  Squid
15
 
 *  incorporates software developed and/or copyrighted by other
16
 
 *  sources; see the CREDITS file for full details.
17
 
 *
18
 
 *  This program is free software; you can redistribute it and/or modify
19
 
 *  it under the terms of the GNU General Public License as published by
20
 
 *  the Free Software Foundation; either version 2 of the License, or
21
 
 *  (at your option) any later version.
22
 
 *  
23
 
 *  This program is distributed in the hope that it will be useful,
24
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
 
 *  GNU General Public License for more details.
27
 
 *  
28
 
 *  You should have received a copy of the GNU General Public License
29
 
 *  along with this program; if not, write to the Free Software
30
 
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
31
 
 *
32
 
 *
33
 
 * Copyright (c) 2003, Robert Collins <robertc@squid-cache.org>
34
 
 */
35
 
 
36
 
#ifndef SQUID_ACLIP_H
37
 
#define SQUID_ACLIP_H
38
 
#include "ACL.h"
39
 
#include "splay.h"
40
 
 
41
 
class acl_ip_data
42
 
{
43
 
 
44
 
public:
45
 
    MEMPROXY_CLASS(acl_ip_data);
46
 
    static acl_ip_data *FactoryParse(char const *);
47
 
    static int NetworkCompare(acl_ip_data * const & a, acl_ip_data * const &b);
48
 
 
49
 
    acl_ip_data ();
50
 
 
51
 
    acl_ip_data (struct IN_ADDR const &, struct IN_ADDR const &, struct IN_ADDR const &, acl_ip_data *);
52
 
    void toStr(char *buf, int len) const;
53
 
 
54
 
    struct IN_ADDR addr1;       /* if addr2 non-zero then its a range */
55
 
 
56
 
    struct IN_ADDR addr2;
57
 
 
58
 
    struct IN_ADDR mask;
59
 
    acl_ip_data *next;          /* used for parsing, not for storing */
60
 
 
61
 
private:
62
 
 
63
 
    static bool DecodeMask(const char *asc, struct IN_ADDR *mask);
64
 
};
65
 
 
66
 
MEMPROXY_CLASS_INLINE(acl_ip_data)
67
 
 
68
 
class ACLIP : public ACL
69
 
{
70
 
 
71
 
public:
72
 
    void *operator new(size_t);
73
 
    void operator delete(void *);
74
 
 
75
 
    ACLIP() : data(NULL){}
76
 
 
77
 
    ~ACLIP();
78
 
 
79
 
    typedef SplayNode<acl_ip_data *> IPSplay;
80
 
 
81
 
    virtual char const *typeString() const = 0;
82
 
    virtual void parse();
83
 
    //    virtual bool isProxyAuth() const {return true;}
84
 
    virtual int match(ACLChecklist *checklist) = 0;
85
 
    virtual wordlist *dump() const;
86
 
    virtual bool empty () const;
87
 
 
88
 
protected:
89
 
 
90
 
    int match(struct IN_ADDR &);
91
 
    IPSplay *data;
92
 
 
93
 
private:
94
 
    static void DumpIpListWalkee(acl_ip_data * const & ip, void *state);
95
 
};
96
 
 
97
 
#endif /* SQUID_ACLIP_H */