Make ssl-opt.sh more robust against client timeout

Retry one time in case we have a client timeout. These should be fairly rare
but still happen from time to time with udp_proxy tests which is annoying, and
until now has never indicated an actual issue.
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 953ebe8..c2da888 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -255,7 +255,7 @@
     CLI_DELAY=$(( $DOG_DELAY * $CLI_DELAY_FACTOR ))
     CLI_DELAY_FACTOR=1
 
-    ( sleep $CLI_DELAY; echo "TIMEOUT" >> $CLI_OUT; kill $CLI_PID ) &
+    ( sleep $CLI_DELAY; echo "===CLIENT_TIMEOUT===" >> $CLI_OUT; kill $CLI_PID ) &
     DOG_PID=$!
 
     wait $CLI_PID
@@ -335,6 +335,10 @@
         fi
     fi
 
+    TIMES_LEFT=2
+    while [ $TIMES_LEFT -gt 0 ]; do
+    TIMES_LEFT=$(( $TIMES_LEFT - 1 ))
+
     # run the commands
     if [ -n "$PXY_CMD" ]; then
         echo "$PXY_CMD" > $PXY_OUT
@@ -361,6 +365,14 @@
         wait $PXY_PID
     fi
 
+    # retry only on timeouts
+    if grep '===CLIENT_TIMEOUT===' $CLI_OUT >/dev/null; then
+        printf "RETRY "
+    else
+        TIMES_LEFT=0
+    fi
+    done
+
     # check if the client and server went at least to the handshake stage
     # (useful to avoid tests with only negative assertions and non-zero
     # expected client exit to incorrectly succeed in case of catastrophic