]> git.ipfire.org Git - thirdparty/squid.git/blame - src/icmp/IcmpSquid.h
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / icmp / IcmpSquid.h
CommitLineData
cc192b50 1/*
f70aedc4 2 * Copyright (C) 1996-2021 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 24class IcmpSquid : public Icmp
cc192b50 25{
26public:
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 42extern IcmpSquid icmpEngine;
cc192b50 43
44#endif /* _INCLUDE_ICMPSQUID_H */
f53969cc 45