]> git.ipfire.org Git - thirdparty/squid.git/blame - src/icmp/IcmpPinger.h
Boilerplate: update copyright blurbs on Squid helpers
[thirdparty/squid.git] / src / icmp / IcmpPinger.h
CommitLineData
cc192b50 1/*
cc192b50 2 * DEBUG: section 37 ICMP Routines
3 * AUTHOR: Duane Wessels, Amos Jeffries
4 *
5 * SQUID Web Proxy Cache http://www.squid-cache.org/
6 * ----------------------------------------------------------
7 *
8 * Squid is the result of efforts by numerous individuals from
9 * the Internet community; see the CONTRIBUTORS file for full
10 * details. Many organizations have provided support for Squid's
11 * development; see the SPONSORS file for full details. Squid is
12 * Copyrighted (C) 2001 by the Regents of the University of
13 * California; see the COPYRIGHT file for full details. Squid
14 * incorporates software developed and/or copyrighted by other
15 * sources; see the CREDITS file for full details.
16 *
17 * This program is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License as published by
19 * the Free Software Foundation; either version 2 of the License, or
20 * (at your option) any later version.
21 *
22 * This program is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * You should have received a copy of the GNU General Public License
28 * along with this program; if not, write to the Free Software
29 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
30 *
31 */
32#ifndef _INCLUDE_ICMPPINGER_H
33#define _INCLUDE_ICMPPINGER_H
b826ffb5 34#include "Icmp.h"
cc192b50 35
36/**
37 * Implements the interface to squid for ICMP operations
38 */
b826ffb5 39class IcmpPinger : public Icmp
cc192b50 40{
41public:
b826ffb5
AJ
42 IcmpPinger();
43 virtual ~IcmpPinger();
cc192b50 44
45 /// Start and initiate control channel to squid
46 virtual int Open();
47
48 /// Shutdown pinger helper and control channel
49 virtual void Close();
50
51#if USE_ICMP
52
53 /// Send ICMP results back to squid.
54 void SendResult(pingerReplyData &preply, int len);
55
56 /// Handle ICMP requests from squid, passing to helpers.
57 virtual void Recv(void);
58
59private:
b826ffb5 60 // unused in IcmpPinger
b7ac5457 61 virtual void SendEcho(Ip::Address &to, int opcode, const char *payload, int len) {};
cc192b50 62
63 /**
64 * Control channel(s) to squid.
65 * May be STDIN/STDOUT pipes or an IP socket depending on the OS
66 */
67 int socket_from_squid;
68 int socket_to_squid;
69#endif /* USE_ICMP */
70};
71
72#if USE_ICMP
73
74/// pinger helper contains one of these as a global object.
d9c252f2 75extern IcmpPinger control;
cc192b50 76
77#endif
78
79#endif