From: Alex Rousskov Date: Mon, 5 Jul 2010 21:28:23 +0000 (-0600) Subject: Removed Descriptor-related code used for testing fd passing via UDS messages. X-Git-Tag: SQUID_3_2_0_1~93^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9b9f3bc7881614667f51ad5bd61e9562b1bf417;p=thirdparty%2Fsquid.git Removed Descriptor-related code used for testing fd passing via UDS messages. --- diff --git a/src/ipc/Coordinator.cc b/src/ipc/Coordinator.cc index f1d414c80a..47ecf7ccfd 100644 --- a/src/ipc/Coordinator.cc +++ b/src/ipc/Coordinator.cc @@ -58,11 +58,6 @@ void Ipc::Coordinator::receive(const TypedMsgHdr& message) handleSharedListenRequest(SharedListenRequest(message)); break; - case mtDescriptorGet: - debugs(54, 6, HERE << "Descriptor get request"); - handleDescriptorGet(Descriptor(message)); - break; - default: debugs(54, 1, HERE << "Unhandled message type: " << message.type()); break; @@ -123,34 +118,6 @@ Ipc::Coordinator::openListenSocket(const SharedListenRequest& request, return sock; } -void Ipc::Coordinator::handleDescriptorGet(const Descriptor& request) -{ - // XXX: hack: create descriptor here - char buffer[64]; - snprintf(buffer, sizeof(buffer), "/tmp/squid_shared_file.txt"); - static int fd = -1; - if (fd < 0) { - fd = open(buffer, O_CREAT | O_RDWR | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - int n = snprintf(buffer, sizeof(buffer), "coord: created %d\n", fd); - ssize_t bytes = write(fd, buffer, n); - Must(bytes == n); - debugs(54, 6, "Created FD " << fd << " for kid" << request.fromKid); - } else { - int n = snprintf(buffer, sizeof(buffer), "coord: updated %d\n", fd); - ssize_t bytes = write(fd, buffer, n); - Must(bytes == n); - } - - debugs(54, 6, "Sending FD " << fd << " to kid" << request.fromKid); - - Descriptor response(-1, fd); - TypedMsgHdr message; - response.pack(message); - SendMessage(MakeAddr(strandAddrPfx, request.fromKid), message); - - // XXX: close(fd); fd should be opened until the message has not reached rec iver -} - void Ipc::Coordinator::broadcastSignal(int sig) const { typedef Strands::const_iterator SCI; diff --git a/src/ipc/Coordinator.h b/src/ipc/Coordinator.h index 716caed055..f508205eb0 100644 --- a/src/ipc/Coordinator.h +++ b/src/ipc/Coordinator.h @@ -39,7 +39,6 @@ protected: /// returns cached socket or calls openListenSocket() void handleSharedListenRequest(const SharedListenRequest& request); - void handleDescriptorGet(const Descriptor& request); /// calls comm_open_listener() int openListenSocket(const SharedListenRequest& request, int &errNo); diff --git a/src/ipc/Messages.cc b/src/ipc/Messages.cc index 99d9d9dd89..5526db7fed 100644 --- a/src/ipc/Messages.cc +++ b/src/ipc/Messages.cc @@ -7,7 +7,6 @@ #include "config.h" -#include "comm.h" #include "ipc/Messages.h" #include "ipc/TypedMsgHdr.h" @@ -29,33 +28,3 @@ void Ipc::StrandCoord::pack(TypedMsgHdr &hdrMsg) const { hdrMsg.putData(mtRegistration, this, sizeof(*this)); } - - -Ipc::Descriptor::Descriptor(): fromKid(-1), fd(-1) -{ -} - -Ipc::Descriptor::Descriptor(int aFromKid, int aFd): fromKid(aFromKid), fd(aFd) -{ -} - -Ipc::Descriptor::Descriptor(const TypedMsgHdr &hdrMsg): fromKid(-1), fd(-1) -{ - if (hdrMsg.type() == mtDescriptorGet) { - hdrMsg.getData(mtDescriptorGet, this, sizeof(*this)); - fd = -1; - } else { - hdrMsg.getData(mtDescriptorPut, this, sizeof(*this)); - fd = hdrMsg.getFd(); - } -} - -void Ipc::Descriptor::pack(TypedMsgHdr &hdrMsg) const -{ - if (fd >= 0) { - hdrMsg.putData(mtDescriptorPut, this, sizeof(*this)); - hdrMsg.putFd(fd); - } else { - hdrMsg.putData(mtDescriptorGet, this, sizeof(*this)); - } -} diff --git a/src/ipc/Messages.h b/src/ipc/Messages.h index 31cb6cb165..7ece20418d 100644 --- a/src/ipc/Messages.h +++ b/src/ipc/Messages.h @@ -9,19 +9,17 @@ #define SQUID_IPC_MESSAGES_H #include -#include -/// Declare IPC messages. These classes translate between high-level -/// information and low-level TypedMsgHdr (i.e., struct msghdr) buffers. +/** Declarations used by varios IPC messages */ namespace Ipc { class TypedMsgHdr; +/// message class identifier typedef enum { mtNone = 0, mtRegistration, - mtSharedListenRequest, mtSharedListenResponse, - mtDescriptorGet, mtDescriptorPut } MessageType; + mtSharedListenRequest, mtSharedListenResponse } MessageType; /// Strand location details class StrandCoord { @@ -36,21 +34,6 @@ public: pid_t pid; ///< OS process or thread identifier }; -/// a [socket] descriptor information -class Descriptor -{ -public: - Descriptor(); ///< unknown descriptor - Descriptor(int fromKid, int fd); ///< from descriptor sender or requestor - explicit Descriptor(const TypedMsgHdr &hdrMsg); ///< from recvmsg() - void pack(TypedMsgHdr &hdrMsg) const; ///< prepare for sendmsg() - -public: - int fromKid; /// the source of this message - int fd; ///< raw descriptor value -}; - - } // namespace Ipc; diff --git a/src/ipc/Strand.cc b/src/ipc/Strand.cc index c8f2c4119c..cc0bd841c2 100644 --- a/src/ipc/Strand.cc +++ b/src/ipc/Strand.cc @@ -50,10 +50,6 @@ void Ipc::Strand::receive(const TypedMsgHdr &message) SharedListenJoined(SharedListenResponse(message)); break; - case mtDescriptorPut: - putDescriptor(Descriptor(message)); - break; - default: debugs(54, 1, HERE << "Unhandled message type: " << message.type()); break; @@ -66,12 +62,6 @@ void Ipc::Strand::handleRegistrationResponse(const StrandCoord &strand) if (strand.kidId == KidIdentifier && strand.pid == getpid()) { debugs(54, 6, "kid" << KidIdentifier << " registered"); clearTimeout(); // we are done - - debugs(54, 6, HERE << "requesting FD"); - Descriptor request(KidIdentifier, -1); - TypedMsgHdr message; - request.pack(message); - SendMessage(coordinatorAddr, message); } else { // could be an ACK to the registration message of our dead predecessor debugs(54, 6, "kid" << KidIdentifier << " is not yet registered"); @@ -79,16 +69,6 @@ void Ipc::Strand::handleRegistrationResponse(const StrandCoord &strand) } } -/// receive descriptor we asked for -void Ipc::Strand::putDescriptor(const Descriptor &message) -{ - debugs(54, 6, HERE << "got FD " << message.fd); - char buffer[64]; - const int n = snprintf(buffer, sizeof(buffer), "strand: kid%d wrote using FD %d\n", KidIdentifier, message.fd); - ssize_t bytes = write(message.fd, buffer, n); - Must(bytes == n); -} - void Ipc::Strand::timedout() { debugs(54, 6, HERE << isRegistered);