2 * Copyright (C) 1996-2014 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
16 * A queue of auth requests waiting for verification to occur.
18 * Certain authentication schemes such a Basic and Bearer auth
19 * permit credentials tokens to be repeated from multiple sources
20 * simultaneously. This queue node allows multiple validation
21 * queries to be collapsed into one backend helper lookup.
22 * CBDATA and handlers stored in these queue nodes can be notified
23 * all at once with a result when the lookup completes.
29 // we store CBDATA here, copy is not safe
30 QueueNode(const QueueNode
&);
31 QueueNode
&operator =(const QueueNode
&);
34 QueueNode(Auth::UserRequest
*aRequest
, AUTHCB
*aHandler
, void *aData
) :
36 auth_user_request(aRequest
),
38 data(cbdataReference(aData
)) {}
40 cbdataReferenceDone(data
);
42 QueueNode
*tmp
= next
->next
;
49 Auth::QueueNode
*next
;
50 Auth::UserRequest::Pointer auth_user_request
;
54 MEMPROXY_CLASS(Auth::QueueNode
);
57 MEMPROXY_CLASS_INLINE(Auth::QueueNode
);
61 #endif /* SQUID_SRC_AUTH_QUEUENODE_H */