From 9129837c55191c61241a96c499e3b18e6778925f Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Thu, 20 May 2021 08:39:21 +0200 Subject: [PATCH] mxshadowsrc: Hoist two variables into static context For prefork we need the listen_socket and the filename in the threads, so hoist these variables up into the static context. --- mxshadowsrv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mxshadowsrv.c b/mxshadowsrv.c index 9d1b423..a867fa5 100644 --- a/mxshadowsrv.c +++ b/mxshadowsrv.c @@ -74,6 +74,8 @@ static char *shadow_buf = NULL; // protected by shadow_mutex static struct stat statbuf; // protected by shadow_mutex static SSL_CTX *ssl_ctx; static sem_t free_worker; +static int listen_socket; +static char *filename; #ifdef DEBUG_MAX_CONNECTS static int debug_remaining_connects = DEBUG_MAX_CONNECTS; #endif @@ -239,7 +241,7 @@ int main(int argc, char **argv) { die_usage(argv[0]); if (optind+1 != argc) die_usage(argv[0]); - char *filename = argv[optind++]; + filename = argv[optind++]; SSL_CTX *_ssl_ctx _cleanup_(free_ssl_ctx) = SSL_CTX_new(TLS_server_method()); if (_ssl_ctx == NULL) { psslerror("SSL_CTX_new"); return 1; } @@ -248,7 +250,7 @@ int main(int argc, char **argv) { if (SSL_CTX_use_PrivateKey_file(ssl_ctx, key_file, SSL_FILETYPE_PEM) <= 0 ) { psslerror("SSL_CTX_use_PrivateKey_file"); return 1; } if (SSL_CTX_use_certificate_file(ssl_ctx, cert_file, SSL_FILETYPE_PEM) <= 0) { psslerror("SSL_CTX_use_certificate_file"); return 1; } - int listen_socket = socket(AF_INET, SOCK_STREAM, 0); + listen_socket = socket(AF_INET, SOCK_STREAM, 0); if (listen_socket == -1) { perror("socket"); return 1; } static int true = 1;