]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/CommCalls.cc
b080f2f63bdcf33409c1cec3af25cb7e7b7be201
3 #include "comm/Connection.h"
6 /* CommCommonCbParams */
8 CommCommonCbParams::CommCommonCbParams(void *aData
):
9 data(cbdataReference(aData
)), conn(), flag(COMM_OK
), xerrno(0), fd(-1)
13 CommCommonCbParams::CommCommonCbParams(const CommCommonCbParams
&p
):
14 data(cbdataReference(p
.data
)), conn(p
.conn
), flag(p
.flag
), xerrno(p
.xerrno
), fd(p
.fd
)
18 CommCommonCbParams::~CommCommonCbParams()
20 cbdataReferenceDone(data
);
24 CommCommonCbParams::print(std::ostream
&os
) const
32 os
<< ", errno=" << xerrno
;
34 os
<< ", flag=" << flag
;
36 os
<< ", data=" << data
;
40 /* CommAcceptCbParams */
42 CommAcceptCbParams::CommAcceptCbParams(void *aData
):
43 CommCommonCbParams(aData
)
47 /* CommConnectCbParams */
49 CommConnectCbParams::CommConnectCbParams(void *aData
):
50 CommCommonCbParams(aData
)
55 CommConnectCbParams::syncWithComm()
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()) {
60 debugs(5, 3, HERE
<< "dropping late connect call: FD " << fd
);
63 return true; // now we are in sync and can handle the call
68 CommIoCbParams::CommIoCbParams(void *aData
): CommCommonCbParams(aData
),
74 CommIoCbParams::syncWithComm()
76 // change parameters if the call was scheduled before comm_close but
77 // is being fired after comm_close
78 if ((conn
->fd
< 0 || fd_table
[conn
->fd
].closing()) && flag
!= COMM_ERR_CLOSING
) {
79 debugs(5, 3, HERE
<< "converting late call to COMM_ERR_CLOSING: " << conn
);
80 flag
= COMM_ERR_CLOSING
;
82 return true; // now we are in sync and can handle the call
87 CommIoCbParams::print(std::ostream
&os
) const
89 CommCommonCbParams::print(os
);
91 os
<< ", size=" << size
;
92 os
<< ", buf=" << (void*)buf
;
97 /* CommCloseCbParams */
99 CommCloseCbParams::CommCloseCbParams(void *aData
):
100 CommCommonCbParams(aData
)
104 /* CommTimeoutCbParams */
106 CommTimeoutCbParams::CommTimeoutCbParams(void *aData
):
107 CommCommonCbParams(aData
)
113 FdeCbParams::FdeCbParams(void *aData
):
114 CommCommonCbParams(aData
)
118 /* CommAcceptCbPtrFun */
120 CommAcceptCbPtrFun::CommAcceptCbPtrFun(IOACB
*aHandler
,
121 const CommAcceptCbParams
&aParams
):
122 CommDialerParamsT
<CommAcceptCbParams
>(aParams
),
127 CommAcceptCbPtrFun::CommAcceptCbPtrFun(const CommAcceptCbPtrFun
&o
):
128 CommDialerParamsT
<CommAcceptCbParams
>(o
.params
),
134 CommAcceptCbPtrFun::dial()
140 CommAcceptCbPtrFun::print(std::ostream
&os
) const
148 /* CommConnectCbPtrFun */
150 CommConnectCbPtrFun::CommConnectCbPtrFun(CNCB
*aHandler
,
151 const CommConnectCbParams
&aParams
):
152 CommDialerParamsT
<CommConnectCbParams
>(aParams
),
158 CommConnectCbPtrFun::dial()
160 handler(params
.conn
, params
.flag
, params
.xerrno
, params
.data
);
164 CommConnectCbPtrFun::print(std::ostream
&os
) const
174 CommIoCbPtrFun::CommIoCbPtrFun(IOCB
*aHandler
, const CommIoCbParams
&aParams
):
175 CommDialerParamsT
<CommIoCbParams
>(aParams
),
181 CommIoCbPtrFun::dial()
183 handler(params
.conn
, params
.buf
, params
.size
, params
.flag
, params
.xerrno
, params
.data
);
187 CommIoCbPtrFun::print(std::ostream
&os
) const
195 /* CommCloseCbPtrFun */
197 CommCloseCbPtrFun::CommCloseCbPtrFun(CLCB
*aHandler
,
198 const CommCloseCbParams
&aParams
):
199 CommDialerParamsT
<CommCloseCbParams
>(aParams
),
205 CommCloseCbPtrFun::dial()
211 CommCloseCbPtrFun::print(std::ostream
&os
) const
218 /* CommTimeoutCbPtrFun */
220 CommTimeoutCbPtrFun::CommTimeoutCbPtrFun(CTCB
*aHandler
,
221 const CommTimeoutCbParams
&aParams
):
222 CommDialerParamsT
<CommTimeoutCbParams
>(aParams
),
228 CommTimeoutCbPtrFun::dial()
234 CommTimeoutCbPtrFun::print(std::ostream
&os
) const
243 FdeCbPtrFun::FdeCbPtrFun(FDECB
*aHandler
, const FdeCbParams
&aParams
) :
244 CommDialerParamsT
<FdeCbParams
>(aParams
),
256 FdeCbPtrFun::print(std::ostream
&os
) const