]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/CommCalls.cc
2 #include "comm/Connection.h"
7 /* CommCommonCbParams */
9 CommCommonCbParams::CommCommonCbParams(void *aData
):
10 data(cbdataReference(aData
)), conn(), flag(COMM_OK
), xerrno(0), fd(-1)
14 CommCommonCbParams::CommCommonCbParams(const CommCommonCbParams
&p
):
15 data(cbdataReference(p
.data
)), conn(p
.conn
), flag(p
.flag
), xerrno(p
.xerrno
), fd(p
.fd
)
19 CommCommonCbParams::~CommCommonCbParams()
21 cbdataReferenceDone(data
);
25 CommCommonCbParams::print(std::ostream
&os
) const
33 os
<< ", errno=" << xerrno
;
35 os
<< ", flag=" << flag
;
37 os
<< ", data=" << data
;
40 /* CommAcceptCbParams */
42 CommAcceptCbParams::CommAcceptCbParams(void *aData
):
43 CommCommonCbParams(aData
), xaction()
48 CommAcceptCbParams::print(std::ostream
&os
) const
50 CommCommonCbParams::print(os
);
53 os
<< ", " << xaction
->id
;
56 /* CommConnectCbParams */
58 CommConnectCbParams::CommConnectCbParams(void *aData
):
59 CommCommonCbParams(aData
)
64 CommConnectCbParams::syncWithComm()
66 // drop the call if the call was scheduled before comm_close but
67 // is being fired after comm_close
68 if (fd
>= 0 && fd_table
[fd
].closing()) {
69 debugs(5, 3, HERE
<< "dropping late connect call: FD " << fd
);
72 return true; // now we are in sync and can handle the call
77 CommIoCbParams::CommIoCbParams(void *aData
): CommCommonCbParams(aData
),
83 CommIoCbParams::syncWithComm()
85 // change parameters if the call was scheduled before comm_close but
86 // is being fired after comm_close
87 if ((conn
->fd
< 0 || fd_table
[conn
->fd
].closing()) && flag
!= COMM_ERR_CLOSING
) {
88 debugs(5, 3, HERE
<< "converting late call to COMM_ERR_CLOSING: " << conn
);
89 flag
= COMM_ERR_CLOSING
;
91 return true; // now we are in sync and can handle the call
95 CommIoCbParams::print(std::ostream
&os
) const
97 CommCommonCbParams::print(os
);
99 os
<< ", size=" << size
;
100 os
<< ", buf=" << (void*)buf
;
104 /* CommCloseCbParams */
106 CommCloseCbParams::CommCloseCbParams(void *aData
):
107 CommCommonCbParams(aData
)
111 /* CommTimeoutCbParams */
113 CommTimeoutCbParams::CommTimeoutCbParams(void *aData
):
114 CommCommonCbParams(aData
)
120 FdeCbParams::FdeCbParams(void *aData
):
121 CommCommonCbParams(aData
)
125 /* CommAcceptCbPtrFun */
127 CommAcceptCbPtrFun::CommAcceptCbPtrFun(IOACB
*aHandler
,
128 const CommAcceptCbParams
&aParams
):
129 CommDialerParamsT
<CommAcceptCbParams
>(aParams
),
134 CommAcceptCbPtrFun::CommAcceptCbPtrFun(const CommAcceptCbPtrFun
&o
):
135 CommDialerParamsT
<CommAcceptCbParams
>(o
.params
),
141 CommAcceptCbPtrFun::dial()
147 CommAcceptCbPtrFun::print(std::ostream
&os
) const
154 /* CommConnectCbPtrFun */
156 CommConnectCbPtrFun::CommConnectCbPtrFun(CNCB
*aHandler
,
157 const CommConnectCbParams
&aParams
):
158 CommDialerParamsT
<CommConnectCbParams
>(aParams
),
164 CommConnectCbPtrFun::dial()
166 handler(params
.conn
, params
.flag
, params
.xerrno
, params
.data
);
170 CommConnectCbPtrFun::print(std::ostream
&os
) const
179 CommIoCbPtrFun::CommIoCbPtrFun(IOCB
*aHandler
, const CommIoCbParams
&aParams
):
180 CommDialerParamsT
<CommIoCbParams
>(aParams
),
186 CommIoCbPtrFun::dial()
188 handler(params
.conn
, params
.buf
, params
.size
, params
.flag
, params
.xerrno
, params
.data
);
192 CommIoCbPtrFun::print(std::ostream
&os
) const
199 /* CommCloseCbPtrFun */
201 CommCloseCbPtrFun::CommCloseCbPtrFun(CLCB
*aHandler
,
202 const CommCloseCbParams
&aParams
):
203 CommDialerParamsT
<CommCloseCbParams
>(aParams
),
209 CommCloseCbPtrFun::dial()
215 CommCloseCbPtrFun::print(std::ostream
&os
) const
222 /* CommTimeoutCbPtrFun */
224 CommTimeoutCbPtrFun::CommTimeoutCbPtrFun(CTCB
*aHandler
,
225 const CommTimeoutCbParams
&aParams
):
226 CommDialerParamsT
<CommTimeoutCbParams
>(aParams
),
232 CommTimeoutCbPtrFun::dial()
238 CommTimeoutCbPtrFun::print(std::ostream
&os
) const
247 FdeCbPtrFun::FdeCbPtrFun(FDECB
*aHandler
, const FdeCbParams
&aParams
) :
248 CommDialerParamsT
<FdeCbParams
>(aParams
),
260 FdeCbPtrFun::print(std::ostream
&os
) const