]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (C) 1996-2025 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_STATE_H | |
10 | #define SQUID_SRC_AUTH_STATE_H | |
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 = nullptr; | |
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 /* SQUID_SRC_AUTH_STATE_H */ | |
47 |