Icmp6.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
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.
7  */
8 
9 /* DEBUG: section 37 ICMP Routines */
10 
11 #ifndef SQUID_SRC_ICMP_ICMP6_H
12 #define SQUID_SRC_ICMP_ICMP6_H
13 
14 #include "Icmp.h"
15 
16 #if HAVE_NETINET_IN_H
17 #include <netinet/in.h>
18 #endif
19 #if HAVE_NETINET_ICMP6_H
20 #include <netinet/icmp6.h>
21 #endif
22 #if HAVE_NETINET_IP6_H
23 #include <netinet/ip6.h>
24 #endif
25 
26 /* see RFC 4443 section 2.1 */
27 #ifndef ICMP6_ECHOREQUEST
28 #define ICMP6_ECHOREQUEST 128
29 #endif
30 
31 /* see RFC 4443 section 2.1 */
32 #ifndef ICMP6_ECHOREPLY
33 #define ICMP6_ECHOREPLY 129
34 #endif
35 
36 /* see RFC 4443 section 2.1 */
37 #ifndef IPPROTO_ICMPV6
38 #define IPPROTO_ICMPV6 58
39 #endif
40 
45 class Icmp6 : public Icmp
46 {
47 public:
48  Icmp6();
49  ~Icmp6() override;
50 
51  int Open() override;
52 
53 #if USE_ICMP
54  void SendEcho(Ip::Address &, int, const char*, int) override;
55  void Recv(void) override;
56 #endif
57 };
58 
59 #if USE_ICMP
60 
62 extern Icmp6 icmp6;
63 
64 #endif /* USE_ICMP && SQUID_HELPER */
65 #endif /* SQUID_SRC_ICMP_ICMP6_H */
66 
int Open() override
Start pinger helper and initiate control channel.
Definition: Icmp6.cc:98
void Recv(void) override
Definition: Icmp6.cc:196
void SendEcho(Ip::Address &, int, const char *, int) override
Definition: Icmp6.cc:118
Icmp6()
Definition: Icmp6.cc:87
Definition: Icmp6.h:45
~Icmp6() override
Definition: Icmp6.cc:92
Icmp6 icmp6
pinger helper contains one of these as a global object.
Definition: pinger.cc:92
Definition: Icmp.h:67

 

Introduction

Documentation

Support

Miscellaneous