]> git.ipfire.org Git - thirdparty/squid.git/blame - src/CommCalls.cc
Renamed squid.h to squid-old.h and config.h to squid.h
[thirdparty/squid.git] / src / CommCalls.cc
CommitLineData
f7f3304a 1#include "squid-old.h"
82ec8dfc 2#include "fde.h"
f9b72e0c 3#include "comm/Connection.h"
b0469965 4#include "CommCalls.h"
5
6/* CommCommonCbParams */
7
8CommCommonCbParams::CommCommonCbParams(void *aData):
3e4bebf8 9 data(cbdataReference(aData)), conn(), flag(COMM_OK), xerrno(0), fd(-1)
b0469965 10{
11}
12
13CommCommonCbParams::CommCommonCbParams(const CommCommonCbParams &p):
3e4bebf8 14 data(cbdataReference(p.data)), conn(p.conn), flag(p.flag), xerrno(p.xerrno), fd(p.fd)
b0469965 15{
16}
17
18CommCommonCbParams::~CommCommonCbParams()
19{
20 cbdataReferenceDone(data);
21}
22
23void
24CommCommonCbParams::print(std::ostream &os) const
25{
7957e704
AJ
26 if (conn != NULL)
27 os << conn;
28 else
29 os << "FD " << fd;
30
b0469965 31 if (xerrno)
32 os << ", errno=" << xerrno;
33 if (flag != COMM_OK)
34 os << ", flag=" << flag;
35 if (data)
36 os << ", data=" << data;
37}
38
39
40/* CommAcceptCbParams */
41
b9ddfca2
AJ
42CommAcceptCbParams::CommAcceptCbParams(void *aData):
43 CommCommonCbParams(aData)
b0469965 44{
45}
46
b0469965 47/* CommConnectCbParams */
48
49CommConnectCbParams::CommConnectCbParams(void *aData):
26ac0430 50 CommCommonCbParams(aData)
b0469965 51{
52}
53
4c3ba68d
AR
54bool
55CommConnectCbParams::syncWithComm()
56{
57 // drop the call if the call was scheduled before comm_close but
58 // is being fired after comm_close
59 if (fd >= 0 && fd_table[fd].closing()) {
2aecafa9 60 debugs(5, 3, HERE << "dropping late connect call: FD " << fd);
4c3ba68d
AR
61 return false;
62 }
63 return true; // now we are in sync and can handle the call
64}
b0469965 65
66/* CommIoCbParams */
67
68CommIoCbParams::CommIoCbParams(void *aData): CommCommonCbParams(aData),
26ac0430 69 buf(NULL), size(0)
b0469965 70{
71}
72
4c3ba68d 73bool
82ec8dfc
AR
74CommIoCbParams::syncWithComm()
75{
76 // change parameters if the call was scheduled before comm_close but
77 // is being fired after comm_close
68077594 78 if ((conn->fd < 0 || fd_table[conn->fd].closing()) && flag != COMM_ERR_CLOSING) {
a138c8fc 79 debugs(5, 3, HERE << "converting late call to COMM_ERR_CLOSING: " << conn);
26ac0430 80 flag = COMM_ERR_CLOSING;
82ec8dfc 81 }
4c3ba68d 82 return true; // now we are in sync and can handle the call
26ac0430 83}
82ec8dfc
AR
84
85
b0469965 86void
87CommIoCbParams::print(std::ostream &os) const
88{
89 CommCommonCbParams::print(os);
90 if (buf) {
91 os << ", size=" << size;
92 os << ", buf=" << (void*)buf;
26ac0430 93 }
b0469965 94}
95
96
97/* CommCloseCbParams */
98
99CommCloseCbParams::CommCloseCbParams(void *aData):
26ac0430 100 CommCommonCbParams(aData)
b0469965 101{
102}
103
104/* CommTimeoutCbParams */
105
106CommTimeoutCbParams::CommTimeoutCbParams(void *aData):
26ac0430 107 CommCommonCbParams(aData)
b0469965 108{
109}
110
a17bf806
AJ
111/* FdeCbParams */
112
113FdeCbParams::FdeCbParams(void *aData):
114 CommCommonCbParams(aData)
115{
116}
80463bb4 117
b0469965 118/* CommAcceptCbPtrFun */
119
120CommAcceptCbPtrFun::CommAcceptCbPtrFun(IOACB *aHandler,
26ac0430
AJ
121 const CommAcceptCbParams &aParams):
122 CommDialerParamsT<CommAcceptCbParams>(aParams),
123 handler(aHandler)
b0469965 124{
125}
126
b9ddfca2
AJ
127CommAcceptCbPtrFun::CommAcceptCbPtrFun(const CommAcceptCbPtrFun &o):
128 CommDialerParamsT<CommAcceptCbParams>(o.params),
129 handler(o.handler)
130{
131}
132
b0469965 133void
134CommAcceptCbPtrFun::dial()
135{
449f0115 136 handler(params);
b0469965 137}
138
139void
140CommAcceptCbPtrFun::print(std::ostream &os) const
141{
142 os << '(';
143 params.print(os);
144 os << ')';
145}
146
147
148/* CommConnectCbPtrFun */
149
150CommConnectCbPtrFun::CommConnectCbPtrFun(CNCB *aHandler,
26ac0430
AJ
151 const CommConnectCbParams &aParams):
152 CommDialerParamsT<CommConnectCbParams>(aParams),
153 handler(aHandler)
b0469965 154{
155}
156
157void
158CommConnectCbPtrFun::dial()
159{
aed188fd 160 handler(params.conn, params.flag, params.xerrno, params.data);
b0469965 161}
162
163void
164CommConnectCbPtrFun::print(std::ostream &os) const
165{
166 os << '(';
167 params.print(os);
168 os << ')';
169}
170
171
172/* CommIoCbPtrFun */
173
174CommIoCbPtrFun::CommIoCbPtrFun(IOCB *aHandler, const CommIoCbParams &aParams):
26ac0430
AJ
175 CommDialerParamsT<CommIoCbParams>(aParams),
176 handler(aHandler)
b0469965 177{
178}
179
180void
181CommIoCbPtrFun::dial()
182{
a138c8fc 183 handler(params.conn, params.buf, params.size, params.flag, params.xerrno, params.data);
b0469965 184}
185
186void
187CommIoCbPtrFun::print(std::ostream &os) const
188{
189 os << '(';
190 params.print(os);
191 os << ')';
192}
193
194
195/* CommCloseCbPtrFun */
196
575d05c4 197CommCloseCbPtrFun::CommCloseCbPtrFun(CLCB *aHandler,
26ac0430
AJ
198 const CommCloseCbParams &aParams):
199 CommDialerParamsT<CommCloseCbParams>(aParams),
200 handler(aHandler)
b0469965 201{
202}
203
204void
205CommCloseCbPtrFun::dial()
206{
575d05c4 207 handler(params);
b0469965 208}
209
210void
211CommCloseCbPtrFun::print(std::ostream &os) const
212{
213 os << '(';
214 params.print(os);
215 os << ')';
216}
217
218/* CommTimeoutCbPtrFun */
219
8d77a37c 220CommTimeoutCbPtrFun::CommTimeoutCbPtrFun(CTCB *aHandler,
26ac0430
AJ
221 const CommTimeoutCbParams &aParams):
222 CommDialerParamsT<CommTimeoutCbParams>(aParams),
223 handler(aHandler)
b0469965 224{
225}
226
227void
228CommTimeoutCbPtrFun::dial()
229{
8d77a37c 230 handler(params);
b0469965 231}
232
233void
234CommTimeoutCbPtrFun::print(std::ostream &os) const
235{
236 os << '(';
237 params.print(os);
238 os << ')';
239}
a17bf806
AJ
240
241/* FdeCbPtrFun */
242
243FdeCbPtrFun::FdeCbPtrFun(FDECB *aHandler, const FdeCbParams &aParams) :
244 CommDialerParamsT<FdeCbParams>(aParams),
245 handler(aHandler)
246{
247}
248
249void
250FdeCbPtrFun::dial()
251{
252 handler(params);
253}
254
255void
256FdeCbPtrFun::print(std::ostream &os) const
257{
258 os << '(';
259 params.print(os);
260 os << ')';
261}