summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-08-28 21:10:03 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-08-28 21:10:03 +0000
commit5691bc64df8444cfbebe7a97480f49f79497b19b (patch)
tree2b216dae115fae465b70cda2e14712bef080c08e
parentd594db1b68d6a2c890d385087799dd8cdf6dc966 (diff)
downloads6-networking-5691bc64df8444cfbebe7a97480f49f79497b19b.tar.xz
Moderately big hammer: force kill on s6-tlsd when it has nothing to write to the network
-rw-r--r--src/sbearssl/sbearssl_run.c6
-rw-r--r--src/stls/stls_run.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/sbearssl/sbearssl_run.c b/src/sbearssl/sbearssl_run.c
index 26a8bd3..177a252 100644
--- a/src/sbearssl/sbearssl_run.c
+++ b/src/sbearssl/sbearssl_run.c
@@ -112,7 +112,11 @@ int sbearssl_run (br_ssl_engine_context *ctx, int *fds, pid_t pid, unsigned int
/* Signal */
- if (x[0].revents & IOPAUSE_READ) handle_signals(pid, &e) ;
+ if (x[0].revents & IOPAUSE_READ)
+ {
+ handle_signals(pid, &e) ;
+ if (e >= 0 && xindex[0] == 5 && xindex[3] == 5) break ;
+ }
/* Flush to local */
diff --git a/src/stls/stls_run.c b/src/stls/stls_run.c
index 3f2742d..11a7234 100644
--- a/src/stls/stls_run.c
+++ b/src/stls/stls_run.c
@@ -214,7 +214,11 @@ int stls_run (struct tls *ctx, int *fds, pid_t pid, unsigned int verbosity, uint
/* Signal */
- if (x[0].revents & IOPAUSE_READ) handle_signals(pid, &e) ;
+ if (x[0].revents & IOPAUSE_READ)
+ {
+ handle_signals(pid, &e) ;
+ if (e >= 0 && xindex[0] == 5 && xindex[3] == 5) break ;
+ }
/* Flush to local */