]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/ipc/Port.cc
2 * DEBUG: section 54 Interprocess Communication
8 #include "comm/Connection.h"
12 const char Ipc::coordinatorAddr
[] = DEFAULT_STATEDIR
"/coordinator.ipc";
13 const char Ipc::strandAddrPfx
[] = DEFAULT_STATEDIR
"/kid";
15 Ipc::Port::Port(const String
& aListenAddr
):
18 setOptions(COMM_NONBLOCKING
| COMM_DOBIND
);
21 void Ipc::Port::start()
27 void Ipc::Port::doListen()
31 typedef CommCbMemFunT
<Port
, CommIoCbParams
> Dialer
;
32 AsyncCall::Pointer readHandler
= JobCallback(54, 6,
33 Dialer
, this, Port::noteRead
);
34 comm_read(conn(), buf
.raw(), buf
.size(), readHandler
);
37 bool Ipc::Port::doneAll() const
39 return false; // listen forever
42 String
Ipc::Port::MakeAddr(const char* pathAddr
, int id
)
45 String addr
= pathAddr
;
47 addr
.append(xitoa(id
));
52 void Ipc::Port::noteRead(const CommIoCbParams
& params
)
54 debugs(54, 6, HERE
<< params
.conn
<< " flag " << params
.flag
<<
56 if (params
.flag
== COMM_OK
) {
57 assert(params
.buf
== buf
.raw());
60 // TODO: if there was a fatal error on our socket, close the socket before
61 // trying to listen again and print a level-1 error message.