I have a TLS Server and TLS Client which is running on the top of *Edge
Triggered EPOLL* and *Non Blocking Sockets.*

 Client and server is doing following operations

   1. Client -> Connect to TLS Server. (SSL_CTX_new -> SSL_new ->
   SSL_set_fd)
   2. Client -> Set modes
    (SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER, SSL_MODE_AUTO_RETRY)
   3. Server -> Sends streaming data to the connected clients.
   4. Client -> Read data whenever EPOLLIN occurs.
   5. Server -> When it fails to send data (Client is slow to read), stores
   data into local buffer and waits for EPOLLOUT to occur.
   6. Server -> When EPOLLOUT occurs for particular socket it sends the
   same data which was failed previously.


Problem that I am seeing is even after the client is successfully reading
all the data from Kernel Buffer, Event EPOLLOUT is not invoked in Server
Side (In Server Buffered data is ready for writing to clients).

EPOLLOUT is invoked only one time in Server side, when the SSL_WRITE fails
for first time.

Is there any specific way to handle SSL_READ and SSL_WRITE over Edge
Triggered EPOLL ?

I am very new to openssl. Please help.

--
Harikrishnan R

-- 
Connect with Market Simplified on Linked-in 
<http://www.linkedin.com/company/market-simplified-inc> | Facebook 
<https://www.facebook.com/MarketSimplified> | Twitter 
<https://twitter.com/MarketGoMobile> | Google Plus 
<https://plus.google.com/114913942441116940871/> | Pinterest 
<http://pinterest.com/marketGoMobile/mobility-in-bfsi>

--------------------------------------------------------------------------------
Confidentiality Statement:

This message is intended only for the use of the Addressee and may contain 
information 
that is PRIVILEDGED and CONFIDENTIAL:  If you are not the intended 
recipient, dissemination of this communication is prohibited.  If you have 
received this communication in error, please erase all copies of the 
message and its attachments and notify us immediately

Reply via email to