commit - 5e7561542faa3aaedb393525a646c82fb7811c7a
commit + 00e0705065383afc96aab09ee41d09ca4c76a2d5
blob - 3d747c03afa11b9d1acf05ac00a5bb5276c21b51
blob + 6baca4a63621b979b8a99635af6e57c175e237a9
--- vostok/transport.cc
+++ vostok/transport.cc
/* in */ Span<const char> buff
)
{
- ssize_t ret{0};
while (buff.size() > 0)
{
- ret = tls_write(ctx, buff.begin(), buff.size());
+ auto ret = tls_write(ctx, buff.begin(), buff.size());
if (ret == TLS_WANT_POLLIN || ret == TLS_WANT_POLLOUT)
continue;
+
+ if (ret == -1)
+ {
+ error::occurred("TLS write", PrintIfError{tls_error(ctx)});
+ return false;
+ }
+
buff = buff.subspan(ret);
}
- if (ret == -1)
- {
- error::occurred("TLS write", PrintIfError{tls_error(ctx)});
- return false;
- }
return true;
}
blob - 22377af14c3007012e8fa2ff78e237365c6fa08e
blob + df7bf0dab186cee47db6271b9a9a8be91a51a3b5
--- vostok/vostok.cc
+++ vostok/vostok.cc
#include "open_file.h"
#include "gemini.h"
+#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
if (!vostok::parse_command_line_arguments(argc, argv, args))
return 1;
+ signal(SIGPIPE, SIG_IGN);
return vostok::main(args) ? 0 : 1;
}