]> git.ipfire.org Git - thirdparty/squid.git/blame - src/auth/ntlm/ntlmUserRequest.h
Unwind UserRequest child objects. Unify duplicate authenticateStateData code.
[thirdparty/squid.git] / src / auth / ntlm / ntlmUserRequest.h
CommitLineData
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
9class ConnStateData;
10class HttpReply;
11class HttpRequest;
12struct helper_stateful_server;
13
14class AuthNTLMUserRequest : public AuthUserRequest
15{
16
17public:
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
52private:
53 static HLPSCB HandleReply;
54};
55
56MEMPROXY_CLASS_INLINE(AuthNTLMUserRequest);
57
58#endif /* _SQUID_SRC_AUTH_NTLM_USERREQUEST_H */