]>
Commit | Line | Data |
---|---|---|
928f3421 AJ |
1 | #ifndef _SQUID_SRC_AUTH_NTLM_USERREQUEST_H |
2 | #define _SQUID_SRC_AUTH_NTLM_USERREQUEST_H | |
3 | ||
4 | #include "auth/State.h" | |
5 | #include "auth/UserRequest.h" | |
6 | #include "auth/ntlm/auth_ntlm.h" | |
7 | #include "MemPool.h" | |
8 | ||
9 | class ConnStateData; | |
10 | class HttpReply; | |
11 | class HttpRequest; | |
12 | struct helper_stateful_server; | |
13 | ||
14 | class AuthNTLMUserRequest : public AuthUserRequest | |
15 | { | |
16 | ||
17 | public: | |
18 | MEMPROXY_CLASS(AuthNTLMUserRequest); | |
19 | ||
20 | AuthNTLMUserRequest(); | |
21 | virtual ~AuthNTLMUserRequest(); | |
22 | virtual int authenticated() const; | |
23 | virtual void authenticate(HttpRequest * request, ConnStateData * conn, http_hdr_type type); | |
24 | virtual int module_direction(); | |
25 | virtual void onConnectionClose(ConnStateData *); | |
26 | virtual void module_start(RH *, void *); | |
27 | ||
28 | virtual const char * connLastHeader(); | |
29 | ||
30 | /* we need to store the helper server between requests */ | |
31 | helper_stateful_server *authserver; | |
32 | void releaseAuthServer(void); ///< Release authserver NTLM helpers properly when finished or abandoning. | |
33 | ||
34 | /* what connection is this associated with */ | |
35 | // ConnStateData * conn; | |
36 | ||
37 | /* how far through the authentication process are we? */ | |
38 | auth_state_t auth_state; | |
39 | ||
40 | /* our current blob to pass to the client */ | |
41 | char *server_blob; | |
42 | ||
43 | /* our current blob to pass to the server */ | |
44 | char *client_blob; | |
45 | ||
46 | /* currently waiting for helper response */ | |
47 | unsigned char waiting; | |
48 | ||
49 | /* need access to the request flags to mess around on pconn failure */ | |
50 | HttpRequest *request; | |
51 | ||
52 | private: | |
53 | static HLPSCB HandleReply; | |
54 | }; | |
55 | ||
56 | MEMPROXY_CLASS_INLINE(AuthNTLMUserRequest); | |
57 | ||
58 | #endif /* _SQUID_SRC_AUTH_NTLM_USERREQUEST_H */ |