]>
| 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 |