]> git.ipfire.org Git - thirdparty/squid.git/blob - src/auth/State.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / auth / State.h
1 /*
2 * Copyright (C) 1996-2017 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 __AUTH_AUTHENTICATE_STATE_T__
10 #define __AUTH_AUTHENTICATE_STATE_T__
11
12 #if USE_AUTH
13
14 #include "auth/UserRequest.h"
15 #include "cbdata.h"
16
17 namespace Auth
18 {
19
20 /**
21 * CBDATA state for NTLM, Negotiate, and Digest stateful authentication.
22 */
23 class StateData
24 {
25 CBDATA_CLASS(StateData);
26
27 public:
28 StateData(const UserRequest::Pointer &r, AUTHCB *h, void *d) :
29 data(cbdataReference(d)),
30 auth_user_request(r),
31 handler(h) {}
32
33 ~StateData() {
34 auth_user_request = NULL;
35 cbdataReferenceDone(data);
36 }
37
38 void *data;
39 UserRequest::Pointer auth_user_request;
40 AUTHCB *handler;
41 };
42
43 } // namespace Auth
44
45 #endif /* USE_AUTH */
46 #endif /* __AUTH_AUTHENTICATE_STATE_T__ */
47