commit - 9c066781cbe07d00c86d7e86b65c9c6b6bdea02a
commit + 3499712b1b7c25c2508044f857ab80055d878e52
blob - b3f83890c4effab7d20d410118e4c18cd4ad7214
blob + 7421e7e61bd03408033cc994362ed5e6ca6ffd13
--- vostok/transport.cc
+++ vostok/transport.cc
class PrintIfError
{
public:
- explicit PrintIfError(czstring error, const ssize_t *pret=nullptr)
- : m_error{error}
- , m_pret{pret}
- {
- }
+ explicit PrintIfError(czstring error) : m_error{error} {}
void operator() () const
{
- if (m_pret)
- error::g_log << "Return value: " << std::dec << *m_pret;
- if (m_pret && m_error)
- error::g_log << ". ";
if (m_error)
error::g_log << "Error: " << m_error;
}
private:
czstring m_error;
- const ssize_t *m_pret;
};
auto ret = tls_write(ctx, buff.begin(), buff.size());
if (ret == TLS_WANT_POLLIN || ret == TLS_WANT_POLLOUT)
continue;
- if ((ret == 0) || (ret == -1))
+ if (ret == -1)
{
- error::occurred("TLS write", PrintIfError{tls_error(ctx), &ret});
+ error::occurred("TLS write", PrintIfError{tls_error(ctx)});
return false;
}
buff = buff.subspan(ret);
+ if (buff.size() <= 0)
+ break;
+
+ error::g_log << "tls_write() == " << std::dec << ret << " ";
}
return true;
}