]>
Commit | Line | Data |
---|---|---|
cc192b50 | 1 | /* |
bbc27441 | 2 | * Copyright (C) 1996-2014 The Squid Software Foundation and contributors |
cc192b50 | 3 | * |
bbc27441 AJ |
4 | * Squid software is distributed under GPLv2+ license and includes |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
cc192b50 | 7 | */ |
bbc27441 AJ |
8 | |
9 | /* DEBUG: section 37 ICMP Routines */ | |
10 | ||
cc192b50 | 11 | #ifndef _INCLUDE_ICMPSQUID_H |
12 | #define _INCLUDE_ICMPSQUID_H | |
13 | ||
b826ffb5 | 14 | #include "Icmp.h" |
cc192b50 | 15 | |
16 | /** | |
17 | * Implements a non-blocking pseudo-ICMP engine for squid internally. | |
18 | * | |
19 | * Rather than doing all the work itself it passes each request off to | |
20 | * an external pinger helper and returns results form that helper to squid. | |
21 | * | |
22 | * Provides ECHO-REQUEST, ECHO-REPLY in a protocol-neutral manner. | |
23 | */ | |
b826ffb5 | 24 | class IcmpSquid : public Icmp |
cc192b50 | 25 | { |
26 | public: | |
b826ffb5 AJ |
27 | IcmpSquid(); |
28 | virtual ~IcmpSquid(); | |
cc192b50 | 29 | |
30 | virtual int Open(); | |
31 | virtual void Close(); | |
32 | ||
b7ac5457 | 33 | void DomainPing(Ip::Address &to, const char *domain); |
cc192b50 | 34 | |
35 | #if USE_ICMP | |
b7ac5457 | 36 | virtual void SendEcho(Ip::Address &to, int opcode, const char* payload=NULL, int len=0); |
cc192b50 | 37 | virtual void Recv(void); |
38 | #endif | |
39 | }; | |
40 | ||
41 | // global engine within squid. | |
d9c252f2 | 42 | extern IcmpSquid icmpEngine; |
cc192b50 | 43 | |
44 | #endif /* _INCLUDE_ICMPSQUID_H */ |