git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Testsuite: variances for OpenSSL 1.1.1
[exim.git]
/
test
/
src
/
client.c
diff --git
a/test/src/client.c
b/test/src/client.c
index de36ef0651ee9bae0b524fb217ffaef3d52ef796..c143739d08ad866d332455604b8da405b2a14670 100644
(file)
--- a/
test/src/client.c
+++ b/
test/src/client.c
@@
-578,18
+578,24
@@
nextinput:
case SSL_ERROR_ZERO_RETURN:
break;
case SSL_ERROR_SYSCALL:
case SSL_ERROR_ZERO_RETURN:
break;
case SSL_ERROR_SYSCALL:
- printf("%s\n", ERR_error_string(ERR_get_error(), NULL));
break;
+ printf("%s\n", ERR_error_string(ERR_get_error(), NULL));
rc = -1;
rc = -1;
+ break;
case SSL_ERROR_SSL:
case SSL_ERROR_SSL:
- printf("%s\n
", ERR_error_string(ERR_get_error(), NULL)); break
;
+ printf("%s\n
TLS terminated\n", ERR_error_string(ERR_get_error(), NULL))
;
SSL_shutdown(srv->ssl);
SSL_free(srv->ssl);
srv->tls_active = FALSE;
SSL_shutdown(srv->ssl);
SSL_free(srv->ssl);
srv->tls_active = FALSE;
+ { /* OpenSSL leaves it in restartsys mode */
+ struct sigaction act = {.sa_handler = sigalrm_handler_flag, .sa_flags = 0};
+ sigalrm_seen = 1;
+ sigaction(SIGALRM, &act, NULL);
+ }
+ *inptr = 0;
goto nextinput;
default:
printf("SSL error code %d\n", error);
}
goto nextinput;
default:
printf("SSL error code %d\n", error);
}
-
#endif
#ifdef HAVE_GNUTLS
rc = gnutls_record_recv(tls_session, CS inbuffer, bsiz - 1);
#endif
#ifdef HAVE_GNUTLS
rc = gnutls_record_recv(tls_session, CS inbuffer, bsiz - 1);
@@
-601,6
+607,8
@@
nextinput:
if (rc < 0)
{
if (rc < 0)
{
+ if (errno == EINTR && sigalrm_seen && resp_optional)
+ continue; /* next scriptline */
printf("Read error %s\n", strerror(errno));
exit(81);
}
printf("Read error %s\n", strerror(errno));
exit(81);
}