web: Try enabling kTLS
This commit is contained in:
@@ -361,6 +361,10 @@ fn maybeInitSsl(self: *const Server, fd: FileDescriptor) !?*openssl.Ssl {
|
||||
log.debug("Accepting SSL layer.", .{});
|
||||
try ssl.accept();
|
||||
log.debug("Accepted SSL layer.", .{});
|
||||
const opt = std.mem.toBytes(@as(c_int, 1));
|
||||
if (fd.setsockopt(linux.SOL.TLS, 3, &opt)) { // TLS_TX_ZEROCOPY_RO
|
||||
log.debug("Enabled zero-copy on sendfile.", .{});
|
||||
} else |_| {}
|
||||
return ssl;
|
||||
} else {
|
||||
return null;
|
||||
|
||||
@@ -88,8 +88,13 @@ pub fn main(init: std.process.Init) !void {
|
||||
const ssl_ctx = try ssl.SslContext.new(.tlsServerMethod());
|
||||
defer ssl_ctx.free();
|
||||
|
||||
_ = ssl_ctx.setMinProtoVersion(ssl.c_ssl.TLS1_3_VERSION);
|
||||
_ = ssl_ctx.setOptions(ssl.c_ssl.SSL_OP_NO_SSLv3 | ssl.c_ssl.SSL_OP_NO_TLSv1 | ssl.c_ssl.SSL_OP_NO_TLSv1_1 | ssl.c_ssl.SSL_OP_NO_TLSv1_2);
|
||||
_ = ssl_ctx.setMinProtoVersion(ssl.c_ssl.TLS1_2_VERSION);
|
||||
_ = ssl_ctx.setMaxProtoVersion(ssl.c_ssl.TLS1_2_VERSION);
|
||||
_ = ssl_ctx.setOptions(ssl.c_ssl.SSL_OP_NO_SSLv3 |
|
||||
ssl.c_ssl.SSL_OP_NO_TLSv1 |
|
||||
ssl.c_ssl.SSL_OP_NO_TLSv1_1 |
|
||||
ssl.c_ssl.SSL_OP_NO_TLSv1_3 |
|
||||
ssl.c_ssl.SSL_OP_ENABLE_KTLS);
|
||||
|
||||
try ssl_ctx.useCertificateFile("cert.pem", ssl.c_ssl.SSL_FILETYPE_PEM);
|
||||
try ssl_ctx.usePrivateKeyFile("key.pem", ssl.c_ssl.SSL_FILETYPE_PEM);
|
||||
|
||||
Reference in New Issue
Block a user