File qmailtoaster-openssl_1_1.patch of Package qmail-toaster

diff -ur orig/qmail-1.03/qmail-remote.c patched/qmail-1.03/qmail-remote.c
--- orig/qmail-1.03/qmail-remote.c	2022-01-31 11:55:56.999070158 +0100
+++ patched/qmail-1.03/qmail-remote.c	2022-01-31 12:01:33.311102219 +0100
@@ -284,8 +284,8 @@
 {
 #ifdef TLS
   /* shouldn't talk to the client unless in an appropriate state */
-  int state = ssl ? ssl->state : SSL_ST_BEFORE;
-  if (state & SSL_ST_OK || (!smtps && state & SSL_ST_BEFORE))
+  int state = ssl ? SSL_get_state(ssl) : TLS_ST_BEFORE;
+  if (state & TLS_ST_OK || (!smtps && state & TLS_ST_BEFORE))		  
 #endif
   substdio_putsflush(&smtpto,"QUIT\r\n");
   /* waiting for remote side is just too ridiculous */
@@ -511,7 +511,7 @@
       X509_NAME *subj = X509_get_subject_name(peercert);
       i = X509_NAME_get_index_by_NID(subj, NID_commonName, -1);
       if (i >= 0) {
-        const ASN1_STRING *s = X509_NAME_get_entry(subj, i)->value;
+	const ASN1_STRING *s = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(subj, i));
         if (s) { peer.len = s->length; peer.s = s->data; }
       }
       if (peer.len <= 0) {
diff -ur orig/qmail-1.03/qmail-smtpd.c patched/qmail-1.03/qmail-smtpd.c
--- orig/qmail-1.03/qmail-smtpd.c	2022-01-31 11:57:24.400118013 +0100
+++ patched/qmail-1.03/qmail-smtpd.c	2022-01-31 12:02:34.335833848 +0100
@@ -1239,7 +1239,7 @@
     subj = X509_get_subject_name(peercert);
     n = X509_NAME_get_index_by_NID(subj, NID_pkcs9_emailAddress, -1);
     if (n >= 0) {
-      const ASN1_STRING *s = X509_NAME_get_entry(subj, n)->value;
+      const ASN1_STRING *s = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(subj, n));
       if (s) { email.len = s->length; email.s = s->data; }
     }
 
diff -ur orig/qmail-1.03/ssl_timeoutio.c patched/qmail-1.03/ssl_timeoutio.c
--- orig/qmail-1.03/ssl_timeoutio.c	2022-01-31 11:55:57.003070206 +0100
+++ patched/qmail-1.03/ssl_timeoutio.c	2022-01-31 12:03:52.064765743 +0100
@@ -73,10 +73,10 @@
 
   SSL_renegotiate(ssl);
   r = ssl_timeoutio(SSL_do_handshake, t, rfd, wfd, ssl, NULL, 0);
-  if (r <= 0 || ssl->type == SSL_ST_CONNECT) return r;
+  if (r <= 0 || SSL_get_state(ssl) == SSL_ST_CONNECT) return r;
 
   /* this is for the server only */
-  ssl->state = SSL_ST_ACCEPT;
+  SSL_set_accept_state(ssl);
   return ssl_timeoutio(SSL_do_handshake, t, rfd, wfd, ssl, NULL, 0);
 }
 
openSUSE Build Service is sponsored by