]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (C) 1996-2021 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_AUTH_NTLM_USERREQUEST_H | |
10 | #define _SQUID_SRC_AUTH_NTLM_USERREQUEST_H | |
11 | ||
12 | #if HAVE_AUTH_MODULE_NTLM | |
13 | ||
14 | #include "auth/UserRequest.h" | |
15 | #include "helper/forward.h" | |
16 | #include "helper/ReservationId.h" | |
17 | ||
18 | class ConnStateData; | |
19 | class HttpReply; | |
20 | class HttpRequest; | |
21 | ||
22 | namespace Auth | |
23 | { | |
24 | namespace Ntlm | |
25 | { | |
26 | ||
27 | class UserRequest : public Auth::UserRequest | |
28 | { | |
29 | MEMPROXY_CLASS(Auth::Ntlm::UserRequest); | |
30 | ||
31 | public: | |
32 | UserRequest(); | |
33 | virtual ~UserRequest(); | |
34 | virtual int authenticated() const; | |
35 | virtual void authenticate(HttpRequest * request, ConnStateData * conn, Http::HdrType type); | |
36 | virtual Auth::Direction module_direction(); | |
37 | virtual void startHelperLookup(HttpRequest *req, AccessLogEntry::Pointer &al, AUTHCB *, void *); | |
38 | virtual const char *credentialsStr(); | |
39 | ||
40 | virtual const char * connLastHeader(); | |
41 | ||
42 | virtual void releaseAuthServer(); ///< Release authserver NTLM helpers properly when finished or abandoning. | |
43 | ||
44 | /* our current blob to pass to the client */ | |
45 | char *server_blob; | |
46 | ||
47 | /* our current blob to pass to the server */ | |
48 | char *client_blob; | |
49 | ||
50 | /* currently waiting for helper response */ | |
51 | unsigned char waiting; | |
52 | ||
53 | /* need access to the request flags to mess around on pconn failure */ | |
54 | HttpRequest *request; | |
55 | ||
56 | /// a helper-issued reservation locking the helper state between | |
57 | /// HTTP requests | |
58 | Helper::ReservationId reservationId; | |
59 | private: | |
60 | static HLPCB HandleReply; | |
61 | }; | |
62 | ||
63 | } // namespace Ntlm | |
64 | } // namespace Auth | |
65 | ||
66 | #endif /* HAVE_AUTH_MODULE_NTLM */ | |
67 | #endif /* _SQUID_SRC_AUTH_NTLM_USERREQUEST_H */ | |
68 |