Use getWatchFd() from dasynq::FdWatcher rather than storing the fd in
authorDavin McCall <davmac@davmac.org>
Fri, 24 Jun 2016 12:39:13 +0000 (13:39 +0100)
committerDavin McCall <davmac@davmac.org>
Fri, 24 Jun 2016 12:39:13 +0000 (13:39 +0100)
a separate member variable, in various places.
Squashes some TODOs.

src/control.cc
src/control.h
src/dinit.cc

index 0a0462cd512f1f81f6a604782f8e38ce2d739f43..54a6722f9cdf3749f83a50cdaa303f42e809ff84 100644 (file)
@@ -318,7 +318,7 @@ bool ControlConn::queuePacket(const char *pkt, unsigned size) noexcept
     // If the queue is empty, we can try to write the packet out now rather than queueing it.
     // If the write is unsuccessful or partial, we queue the remainder.
     if (was_empty) {
-        int wr = write(iob.fd, pkt, size);
+        int wr = write(iob.getWatchedFd(), pkt, size);
         if (wr == -1) {
             if (errno == EPIPE) {
                 return false;
@@ -373,7 +373,7 @@ bool ControlConn::queuePacket(std::vector<char> &&pkt) noexcept
     if (was_empty) {
         outpkt_index = 0;
         // We can try sending the packet immediately:
-        int wr = write(iob.fd, pkt.data(), pkt.size());
+        int wr = write(iob.getWatchedFd(), pkt.data(), pkt.size());
         if (wr == -1) {
             if (errno == EPIPE) {
                 return false;
@@ -424,7 +424,7 @@ bool ControlConn::rollbackComplete() noexcept
 
 bool ControlConn::dataReady() noexcept
 {
-    int fd = iob.fd;
+    int fd = iob.getWatchedFd();
     
     int r = rbuf.fill(fd);
     
@@ -471,14 +471,14 @@ bool ControlConn::sendData() noexcept
         if (oom_close) {
             // Send oom response
             char oomBuf[] = { DINIT_RP_OOM };
-            write(iob.fd, oomBuf, 1);
+            write(iob.getWatchedFd(), oomBuf, 1);
         }
         return true;
     }
     
     vector<char> & pkt = outbuf.front();
     char *data = pkt.data();
-    int written = write(iob.fd, data + outpkt_index, pkt.size() - outpkt_index);
+    int written = write(iob.getWatchedFd(), data + outpkt_index, pkt.size() - outpkt_index);
     if (written == -1) {
         if (errno == EPIPE) {
             // read end closed
@@ -514,7 +514,7 @@ bool ControlConn::sendData() noexcept
 
 ControlConn::~ControlConn() noexcept
 {
-    close(iob.fd);
+    close(iob.getWatchedFd());
     iob.deregister(*loop);
     
     // Clear service listeners
index 7a472de0a2df4495c399dc72dc770842e54a1bf5..6bfd79053919b7827235358e647acab93a669ff6 100644 (file)
@@ -62,7 +62,6 @@ class ControlConnWatcher : public EventLoop_t::BidiFdWatcher
     }
     
     public:
-    int fd; // TODO this is already stored, find a better way to access it.
     EventLoop_t * eventLoop;
     
     void setWatches(int flags)
@@ -72,7 +71,6 @@ class ControlConnWatcher : public EventLoop_t::BidiFdWatcher
     
     void registerWith(EventLoop_t &loop, int fd, int flags)
     {
-        this->fd = fd;
         this->eventLoop = &loop;
         BidiFdWatcher<EventLoop_t>::addWatch(loop, fd, flags);
     }
index 3ee5a62bbf76fea5c4424eabb3083690b4bb060c..96df79ea62361d667144d6ec06bedfb4f8a5ef73 100644 (file)
@@ -59,16 +59,6 @@ class ControlSocketWatcher : public EventLoop_t::FdWatcher
         control_socket_cb(&loop, fd);
         return Rearm::REARM;
     }
-    
-    public:
-    // TODO the fd is already stored, must we really store it again...
-    int fd;
-    
-    void addWatch(EventLoop_t &loop, int fd, int flags)
-    {
-        this->fd = fd;
-        EventLoop_t::FdWatcher::addWatch(loop, fd, flags);
-    }
 };
 
 ControlSocketWatcher control_socket_io;
@@ -502,7 +492,7 @@ void open_control_socket(bool report_ro_failure) noexcept
 static void close_control_socket() noexcept
 {
     if (control_socket_open) {
-        int fd = control_socket_io.fd;
+        int fd = control_socket_io.getWatchedFd();
         control_socket_io.deregister(eventLoop);
         close(fd);