m_BlockRead = false;
m_BlockWrite = false;
- rc = SSL_write(m_SSL.get(), (const char *)GetSendQueue()->GetReadBuffer(), GetSendQueue()->GetSize());
+ size_t write_size = std::min(GetSendQueue()->GetSize(), (size_t)(16 * 1024));
+
+ rc = SSL_write(m_SSL.get(), (const char *)GetSendQueue()->GetReadBuffer(), write_size);
if (rc <= 0) {
int error = SSL_get_error(m_SSL.get(), rc);
if (delegated > 0) {
// TODO: send clear message when session is established
// TODO: clear local assignments when session is lost
+ need_clear = true; /* remove this once clear messages are properly sent */
if (need_clear) {
map<Endpoint::Ptr, int>::iterator hit;
for (hit = histogram.begin(); hit != histogram.end(); hit++) {