2 * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
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.
9 #ifndef SQUID_SRC_AUTH_QUEUENODE_H
10 #define SQUID_SRC_AUTH_QUEUENODE_H
18 * A queue of auth requests waiting for verification to occur.
20 * Certain authentication schemes such a Basic and Bearer auth
21 * permit credentials tokens to be repeated from multiple sources
22 * simultaneously. This queue node allows multiple validation
23 * queries to be collapsed into one backend helper lookup.
24 * CBDATA and handlers stored in these queue nodes can be notified
25 * all at once with a result when the lookup completes.
29 MEMPROXY_CLASS(Auth::QueueNode
);
32 // we store CBDATA here, copy is not safe
33 QueueNode(const QueueNode
&);
34 QueueNode
&operator =(const QueueNode
&);
37 QueueNode(Auth::UserRequest
*aRequest
, AUTHCB
*aHandler
, void *aData
) :
39 auth_user_request(aRequest
),
41 data(cbdataReference(aData
)) {}
43 cbdataReferenceDone(data
);
45 QueueNode
*tmp
= next
->next
;
52 Auth::QueueNode
*next
;
53 Auth::UserRequest::Pointer auth_user_request
;
60 #endif /* SQUID_SRC_AUTH_QUEUENODE_H */