Remove persistentCork in native land
authorYang Chi <yangchi@fb.com>
Fri, 4 Mar 2016 03:47:53 +0000 (19:47 -0800)
committerFacebook Github Bot 2 <facebook-github-bot-2-bot@fb.com>
Fri, 4 Mar 2016 03:50:28 +0000 (19:50 -0800)
Summary: Remove persistent cork

Reviewed By: francis-ma

Differential Revision: D3008550

fb-gh-sync-id: a5ce492876d98d74f5669c5ec5ff3486c0cb0b2c
shipit-source-id: a5ce492876d98d74f5669c5ec5ff3486c0cb0b2c

folly/io/async/AsyncSSLSocket.cpp
folly/io/async/AsyncSSLSocket.h
folly/io/async/AsyncSocket.cpp
folly/io/async/AsyncSocket.h

index 0b71f845fed02d6c53129dbe9d51725505392673..a0224877320dfff81a49580b307709525e826816 100644 (file)
@@ -1384,7 +1384,7 @@ ssize_t AsyncSSLSocket::performWrite(const iovec* vec,
       return -1;
   }
 
-  bool cork = isSet(flags, WriteFlags::CORK) || persistentCork_;
+  bool cork = isSet(flags, WriteFlags::CORK);
   CorkGuard guard(fd_, count > 1, cork, &corked_);
 
 #if 0
index 6cfd24b68b4b5e009059d61086bfa0ca897d343b..4ab048603ada9f546b69e43d898e2e1b42ad5bf6 100644 (file)
@@ -839,6 +839,8 @@ class AsyncSSLSocket : public virtual AsyncSocket {
 
   static void sslInfoCallback(const SSL *ssl, int type, int val);
 
+  // Whether we've applied the TCP_CORK option to the socket
+  bool corked_{false};
   // SSL related members.
   bool server_{false};
   // Used to prevent client-initiated renegotiation.  Note that AsyncSSLSocket
index 92defa38bce7205e0e3dbe8b076dedd75d1b5ad7..2732ace9b1404e389c85c3b89ee95035071368bf 100644 (file)
@@ -1203,37 +1203,6 @@ int AsyncSocket::setTCPProfile(int profd) {
   return 0;
 }
 
-void AsyncSocket::setPersistentCork(bool cork) {
-  if (setCork(cork) == 0) {
-    persistentCork_ = cork;
-  }
-}
-
-int AsyncSocket::setCork(bool cork) {
-#ifdef TCP_CORK
-  if (fd_ < 0) {
-    VLOG(4) << "AsyncSocket::setCork() called on non-open socket "
-            << this << "(stats=" << state_ << ")";
-    return EINVAL;
-  }
-
-  if (corked_ == cork) {
-    return 0;
-  }
-
-  int flag = cork ? 1 : 0;
-  if (setsockopt(fd_, IPPROTO_TCP, TCP_CORK, &flag, sizeof(flag)) != 0) {
-    int errnoCopy = errno;
-    VLOG(2) << "faield to turn on TCP_CORK option on AsyncSocket"
-            << this << "(fd=" << fd_ << ", state=" << state_ << "):"
-            << folly::errnoStr(errnoCopy);
-    return errnoCopy;
-  }
-  corked_ = cork;
-#endif
-  return 0;
-}
-
 void AsyncSocket::ioReady(uint16_t events) noexcept {
   VLOG(7) << "AsyncSocket::ioRead() this=" << this << ", fd" << fd_
           << ", events=" << std::hex << events << ", state=" << state_;
index 28c553a5f82683a39476e15a2833fb173dc02321..28f1c65d3449705dd17cd3b3ef0bfcca84ab0e83 100644 (file)
@@ -465,15 +465,6 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
   #define SO_SET_NAMESPACE        41
   int setTCPProfile(int profd);
 
-  /**
-   * Set TCP_CORK on the socket, and turn on/off the persistentCork_ flag
-   *
-   * When persistentCork_ is true, CorkGuard in AsyncSSLSocket will not be
-   * able to toggle TCP_CORK
-   *
-   */
-  void setPersistentCork(bool cork);
-
   /**
    * Generic API for reading a socket option.
    *
@@ -781,13 +772,6 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
 
   std::string withAddr(const std::string& s);
 
-  /**
-   * Set TCP_CORK on this socket
-   *
-   * @return 0 if Cork is turned on, or non-zero errno on error
-   */
-  int setCork(bool cork);
-
   StateEnum state_;                     ///< StateEnum describing current state
   uint8_t shutdownFlags_;               ///< Shutdown state (ShutdownFlags)
   uint16_t eventFlags_;                 ///< EventBase::HandlerFlags settings
@@ -818,11 +802,6 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
   std::chrono::steady_clock::time_point connectStartTime_;
   std::chrono::steady_clock::time_point connectEndTime_;
 
-  // Whether this connection is persistently corked
-  bool persistentCork_{false};
-  // Whether we've applied the TCP_CORK option to the socket
-  bool corked_{false};
-
   BufferCallback* bufferCallback_{nullptr};
 };
 #ifdef _MSC_VER