squid-
cache.org
Optimising Web Delivery
Docs
Download
Donate
Support
About
Contact
Shop
Blog
src
dlink.cc
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1996-2022 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
#include "
squid.h
"
10
#include "
dlink.h
"
11
12
dlink_list
ClientActiveRequests
;
13
14
void
15
dlinkAdd
(
void
*data,
dlink_node
* m,
dlink_list
* list)
16
{
17
m->
data
= data;
18
m->
prev
=
NULL
;
19
m->
next
= list->
head
;
20
21
if
(list->
head
)
22
list->
head
->
prev
= m;
23
24
list->
head
= m;
25
26
if
(list->
tail
==
NULL
)
27
list->
tail
= m;
28
}
29
30
void
31
dlinkAddAfter
(
void
*data,
dlink_node
* m,
dlink_node
* n,
dlink_list
* list)
32
{
33
m->
data
= data;
34
m->
prev
= n;
35
m->
next
= n->
next
;
36
37
if
(n->
next
)
38
n->
next
->
prev
= m;
39
else
{
40
assert
(list->
tail
== n);
41
list->
tail
= m;
42
}
43
44
n->
next
= m;
45
}
46
47
void
48
dlinkAddTail
(
void
*data,
dlink_node
* m,
dlink_list
* list)
49
{
50
m->
data
= data;
51
m->
next
=
NULL
;
52
m->
prev
= list->
tail
;
53
54
if
(list->
tail
)
55
list->
tail
->
next
= m;
56
57
list->
tail
= m;
58
59
if
(list->
head
==
NULL
)
60
list->
head
= m;
61
}
62
63
void
64
dlinkDelete
(
dlink_node
* m,
dlink_list
* list)
65
{
66
if
(m->
next
)
67
m->
next
->
prev
= m->
prev
;
68
69
if
(m->
prev
)
70
m->
prev
->
next
= m->
next
;
71
72
if
(m == list->
head
)
73
list->
head
= m->
next
;
74
75
if
(m == list->
tail
)
76
list->
tail
= m->
prev
;
77
78
m->
next
= m->
prev
=
NULL
;
79
}
80
dlinkAdd
void dlinkAdd(void *data, dlink_node *m, dlink_list *list)
Definition:
dlink.cc:15
dlink_list::head
dlink_node * head
Definition:
dlink.h:26
dlink_list::tail
dlink_node * tail
Definition:
dlink.h:27
dlink_node::data
void * data
Definition:
dlink.h:18
dlink.h
dlinkAddAfter
void dlinkAddAfter(void *data, dlink_node *m, dlink_node *n, dlink_list *list)
Definition:
dlink.cc:31
NULL
#define NULL
Definition:
types.h:166
ClientActiveRequests
dlink_list ClientActiveRequests
Definition:
dlink.cc:12
dlink_node
Definition:
dlink.h:15
assert
#define assert(EX)
Definition:
assert.h:19
dlinkDelete
void dlinkDelete(dlink_node *m, dlink_list *list)
Definition:
dlink.cc:64
dlink_node::next
dlink_node * next
Definition:
dlink.h:20
dlink_node::prev
dlink_node * prev
Definition:
dlink.h:19
dlink_list
Definition:
dlink.h:24
squid.h
dlinkAddTail
void dlinkAddTail(void *data, dlink_node *m, dlink_list *list)
Definition:
dlink.cc:48
Introduction
About Squid
Why Squid?
Squid Developers
How to Donate
How to Help Out
Getting Squid
Squid Source Packages
Squid Deployment Case-Studies
Squid Software Foundation
Documentation
Configuration:
Reference
Examples
FAQ
and
Wiki
Guide Books:
Beginners
Definitive
Non-English
More...
Support
Security Advisories
Bugzilla Database
Mailing lists
Contacting us
Commercial services
Project Sponsors
Squid-based products
Miscellaneous
Developer Resources
Related Writings
Related Software:
Authenticators
Ecap
Icap
Ident
Log Analysis
Monitor
Proxies
Redirectors
General
Squid Artwork
Web Site Translations
Japanese
Mirrors
Website:
gr
il
jp
pl
...
full list
FTP Package Archive