]> git.ipfire.org Git - thirdparty/squid.git/blob - src/anyp/ProtocolType.h
Remove support for Gopher protocol (#1092)
[thirdparty/squid.git] / src / anyp / ProtocolType.h
1 /*
2 * Copyright (C) 1996-2022 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 #ifndef _SQUID_SRC_ANYP_PROTOCOLTYPE_H
10 #define _SQUID_SRC_ANYP_PROTOCOLTYPE_H
11
12 #include <ostream>
13
14 namespace AnyP
15 {
16
17 // TODO order by current protocol popularity (eg HTTPS before FTP)
18 /**
19 * List of all protocols known and supported.
20 * This is a combined list. It is used as type-codes where needed and
21 * the AnyP::ProtocolType_Str array of strings may be used for display
22 */
23 typedef enum {
24 PROTO_NONE = 0,
25 PROTO_HTTP,
26 PROTO_FTP,
27 PROTO_HTTPS,
28 PROTO_COAP,
29 PROTO_COAPS,
30 PROTO_WAIS,
31 PROTO_CACHE_OBJECT,
32 PROTO_ICP,
33 #if USE_HTCP
34 PROTO_HTCP,
35 #endif
36 PROTO_URN,
37 PROTO_WHOIS,
38 PROTO_ICY,
39 PROTO_TLS,
40 PROTO_SSL,
41 PROTO_AUTHORITY_FORM,
42 PROTO_UNKNOWN,
43 PROTO_MAX
44 } ProtocolType;
45
46 extern const char *ProtocolType_str[];
47
48 /** Display the registered Protocol Type (in upper case).
49 * If the protocol is not a registered AnyP::ProtocolType nothing will be displayed.
50 * The caller is responsible for any alternative text.
51 */
52 inline std::ostream &
53 operator <<(std::ostream &os, ProtocolType const &p)
54 {
55 if (PROTO_NONE <= p && p < PROTO_MAX)
56 os << ProtocolType_str[p];
57 else
58 os << static_cast<int>(p);
59 return os;
60 }
61
62 } // namespace AnyP
63
64 #endif /* _SQUID_SRC_ANYP_PROTOCOLTYPE_H */
65