aboutsummaryrefslogtreecommitdiffstats
path: root/main/openssl/0005-s_client-ircv3-starttls.patch
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2012-09-22 16:32:37 -0500
committerWilliam Pitcock <nenolod@dereferenced.org>2012-09-22 16:32:37 -0500
commit056a1e89992a81827783d419b159f4205c2bea96 (patch)
tree3565398bba38abcc9f3e5019fb053f881fa777cd /main/openssl/0005-s_client-ircv3-starttls.patch
parent75bf81c17591a2a648b55455f5e6ca887ef2a626 (diff)
downloadaports-056a1e89992a81827783d419b159f4205c2bea96.tar.bz2
aports-056a1e89992a81827783d419b159f4205c2bea96.tar.xz
main/openssl: add ircv3 tls-3.1 extension support to s_client
Diffstat (limited to 'main/openssl/0005-s_client-ircv3-starttls.patch')
-rw-r--r--main/openssl/0005-s_client-ircv3-starttls.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/main/openssl/0005-s_client-ircv3-starttls.patch b/main/openssl/0005-s_client-ircv3-starttls.patch
new file mode 100644
index 0000000000..880cbb6518
--- /dev/null
+++ b/main/openssl/0005-s_client-ircv3-starttls.patch
@@ -0,0 +1,56 @@
+--- openssl-1.0.1c/apps/s_client.c
++++ openssl-1.0.1c.mod/apps/s_client.c
+@@ -344,7 +344,7 @@
+ BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
+ BIO_printf(bio_err," for those protocols that support it, where\n");
+ BIO_printf(bio_err," 'prot' defines which one to assume. Currently,\n");
+- BIO_printf(bio_err," only \"smtp\", \"pop3\", \"imap\", \"ftp\" and \"xmpp\"\n");
++ BIO_printf(bio_err," only \"smtp\", \"pop3\", \"imap\", \"ftp\", \"xmpp\" and \"ircv3\"\n");
+ BIO_printf(bio_err," are supported.\n");
+ #ifndef OPENSSL_NO_ENGINE
+ BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
+@@ -546,7 +546,8 @@
+ PROTO_POP3,
+ PROTO_IMAP,
+ PROTO_FTP,
+- PROTO_XMPP
++ PROTO_XMPP,
++ PROTO_IRCV3
+ };
+
+ int MAIN(int, char **);
+@@ -910,6 +911,8 @@
+ starttls_proto = PROTO_FTP;
+ else if (strcmp(*argv, "xmpp") == 0)
+ starttls_proto = PROTO_XMPP;
++ else if (strcmp(*argv, "ircv3") == 0)
++ starttls_proto = PROTO_IRCV3;
+ else
+ goto bad;
+ }
+@@ -1484,6 +1487,25 @@
+ sbuf[seen] = 0;
+ if (!strstr(sbuf, "<proceed"))
+ goto shut;
++ mbuf[0] = 0;
++ }
++ if (starttls_proto == PROTO_IRCV3)
++ {
++ int seen = 0;
++ BIO_printf(sbio,"CAP REQ :tls\r\n");
++ while (!strstr(mbuf,"CAP"))
++ {
++ seen = BIO_read(sbio,mbuf,BUFSIZZ);
++ mbuf[seen] = 0;
++ }
++ if (!strstr(mbuf,"ACK"))
++ goto shut;
++ BIO_printf(sbio,"CAP END\r\nSTARTTLS\r\n");
++ while (!strstr(sbuf, "670"))
++ {
++ seen = BIO_read(sbio,sbuf,BUFSIZZ);
++ sbuf[seen] = 0;
++ }
+ mbuf[0] = 0;
+ }
+