]>
Commit | Line | Data |
---|---|---|
e6ccf245 | 1 | /* |
e6ccf245 | 2 | * SQUID Web Proxy Cache http://www.squid-cache.org/ |
3 | * ---------------------------------------------------------- | |
4 | * | |
5 | * Squid is the result of efforts by numerous individuals from | |
6 | * the Internet community; see the CONTRIBUTORS file for full | |
7 | * details. Many organizations have provided support for Squid's | |
8 | * development; see the SPONSORS file for full details. Squid is | |
9 | * Copyrighted (C) 2001 by the Regents of the University of | |
10 | * California; see the COPYRIGHT file for full details. Squid | |
11 | * incorporates software developed and/or copyrighted by other | |
12 | * sources; see the CREDITS file for full details. | |
13 | * | |
14 | * This program is free software; you can redistribute it and/or modify | |
15 | * it under the terms of the GNU General Public License as published by | |
16 | * the Free Software Foundation; either version 2 of the License, or | |
17 | * (at your option) any later version. | |
26ac0430 | 18 | * |
e6ccf245 | 19 | * This program is distributed in the hope that it will be useful, |
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 | * GNU General Public License for more details. | |
26ac0430 | 23 | * |
e6ccf245 | 24 | * You should have received a copy of the GNU General Public License |
25 | * along with this program; if not, write to the Free Software | |
26 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. | |
27 | * | |
28 | */ | |
29 | ||
30 | #ifndef SQUID_HTCP_H | |
31 | #define SQUID_HTCP_H | |
32 | ||
924f73bc | 33 | #if USE_HTCP |
9837e5f0 | 34 | |
924f73bc | 35 | #include "HttpHeader.h" |
582c2af2 | 36 | #include "HttpRequestMethod.h" |
e06b8df8 | 37 | #include "ip/forward.h" |
924f73bc | 38 | |
582c2af2 FC |
39 | class HttpRequest; |
40 | ||
63be0a78 | 41 | /// \ingroup ServerProtocolHTCP |
75faaa7a | 42 | class HtcpReplyData |
924f73bc | 43 | { |
75faaa7a | 44 | |
45 | public: | |
46 | HtcpReplyData(); | |
924f73bc | 47 | int hit; |
48 | HttpHeader hdr; | |
09aabd84 | 49 | uint32_t msg_id; |
924f73bc | 50 | double version; |
51 | ||
26ac0430 | 52 | struct cto_t { |
924f73bc | 53 | /* cache-to-origin */ |
54 | double rtt; | |
55 | int samp; | |
56 | int hops; | |
2fadd50d | 57 | } cto; |
924f73bc | 58 | }; |
59 | ||
63be0a78 | 60 | /// \bug redundant typedef |
75faaa7a | 61 | typedef class HtcpReplyData htcpReplyData; |
62 | ||
63be0a78 | 63 | /// \ingroup ServerProtocolHTCP |
b7ac5457 | 64 | SQUIDCEXTERN void neighborsHtcpReply(const cache_key *, htcpReplyData *, const Ip::Address &); |
63be0a78 | 65 | |
66 | /// \ingroup ServerProtocolHTCP | |
65d448bc | 67 | SQUIDCEXTERN void htcpOpenPorts(void); |
63be0a78 | 68 | |
bebf08ff AJ |
69 | /** |
70 | * \ingroup ServerProtocolHTCP | |
71 | * | |
72 | * Generate and Send an HTCP query to the specified peer. | |
73 | * | |
74 | * \param e | |
75 | * \param req | |
76 | * \param p | |
77 | * \retval 1 Successfully sent request. | |
78 | * \retval 0 Unable to send request at this time. HTCP may be shutting down or starting up. | |
79 | * Don't wait for a reply or count in stats as sent. | |
80 | * \retval -1 Error sending request. | |
81 | */ | |
a3c6762c | 82 | SQUIDCEXTERN int htcpQuery(StoreEntry * e, HttpRequest * req, CachePeer * p); |
63be0a78 | 83 | |
4f4fa815 | 84 | /// \ingroup ServerProtocolHTCP |
a3c6762c | 85 | SQUIDCEXTERN void htcpClear(StoreEntry * e, const char *uri, HttpRequest * req, const HttpRequestMethod &method, CachePeer * p, htcp_clr_reason reason); |
4f4fa815 | 86 | |
63be0a78 | 87 | /// \ingroup ServerProtocolHTCP |
75faaa7a | 88 | SQUIDCEXTERN void htcpSocketShutdown(void); |
63be0a78 | 89 | |
90 | /// \ingroup ServerProtocolHTCP | |
65d448bc | 91 | SQUIDCEXTERN void htcpClosePorts(void); |
75faaa7a | 92 | |
63be0a78 | 93 | #endif /* USE_HTCP */ |
924f73bc | 94 | |
e6ccf245 | 95 | #endif /* SQUID_HTCP_H */ |