*
*/
-#include "config.h"
+#include "squid.h"
#include "base/TextException.h"
#include "comm/Connection.h"
#include "CommCalls.h"
#include "comm/Write.h"
#include "ipc/FdNotes.h"
#include "mgr/StoreToCommWriter.h"
+#include "protos.h"
#include "StoreClient.h"
#include "Store.h"
-
CBDATA_NAMESPACED_CLASS_INIT(Mgr, StoreToCommWriter);
-
Mgr::StoreToCommWriter::StoreToCommWriter(const Comm::ConnectionPointer &conn, StoreEntry* anEntry):
AsyncJob("Mgr::StoreToCommWriter"),
clientConnection(conn), entry(anEntry), sc(NULL), writeOffset(0), closer(NULL)
if (Comm::IsConnOpen(mgrWriter->clientConnection))
mgrWriter->clientConnection->close();
}
-
-Comm::ConnectionPointer
-Mgr::ImportHttpFdIntoComm(int fd)
-{
- Comm::ConnectionPointer result = new Comm::Connection();
- struct sockaddr_in addr;
- socklen_t len = sizeof(addr);
- if (getsockname(fd, reinterpret_cast<sockaddr*>(&addr), &len) == 0) {
- result->fd = fd;
- result->local = addr;
- struct addrinfo* addr_info = NULL;
- result->local.GetAddrInfo(addr_info);
- addr_info->ai_socktype = SOCK_STREAM;
- addr_info->ai_protocol = IPPROTO_TCP;
- comm_import_opened(result, Ipc::FdNote(Ipc::fdnHttpSocket), addr_info);
- result->local.FreeAddrInfo(addr_info);
- } else {
- debugs(16, DBG_CRITICAL, HERE << "ERROR: FD " << fd << ' ' << xstrerror());
- ::close(fd);
- fd = -1;
- }
- return result;
-}