The branch master has been updated
       via  b2e54eb834e2d5a79d03f12a818d68f82c0e3d13 (commit)
      from  6215f27a83c6b9089a217dd6deab1665e0ced516 (commit)


- Log -----------------------------------------------------------------
commit b2e54eb834e2d5a79d03f12a818d68f82c0e3d13
Author: Valentin Vidic <valentin.vi...@carnet.hr>
Date:   Mon Feb 15 15:28:41 2016 +0100

    Add Postgres support to -starttls
    
    Reviewed-by: Rich Salz <rs...@openssl.org>
    Reviewed-by: Tim Hudson <t...@openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 apps/s_client.c       | 23 ++++++++++++++++++++++-
 doc/apps/s_client.pod |  2 +-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/apps/s_client.c b/apps/s_client.c
index 0442aec..c2a00f5 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -739,7 +739,8 @@ typedef enum PROTOCOL_choice {
     PROTO_XMPP,
     PROTO_XMPP_SERVER,
     PROTO_CONNECT,
-    PROTO_IRC
+    PROTO_IRC,
+    PROTO_POSTGRES
 } PROTOCOL_CHOICE;
 
 static const OPT_PAIR services[] = {
@@ -751,6 +752,7 @@ static const OPT_PAIR services[] = {
     {"xmpp-server", PROTO_XMPP_SERVER},
     {"telnet", PROTO_TELNET},
     {"irc", PROTO_IRC},
+    {"postgres", PROTO_POSTGRES},
     {NULL, 0}
 };
 
@@ -2084,6 +2086,25 @@ int s_client_main(int argc, char **argv)
                 goto shut;
             }
         }
+        break;
+    case PROTO_POSTGRES:
+        {
+            static const unsigned char ssl_request[] = {
+                /* Length        SSLRequest */
+                   0, 0, 0, 8,   4, 210, 22, 47
+            };
+            int bytes;
+
+            /* Send SSLRequest packet */
+            BIO_write(sbio, ssl_request, 8);
+            (void)BIO_flush(sbio);
+
+            /* Reply will be a single S if SSL is enabled */
+            bytes = BIO_read(sbio, sbuf, BUFSIZZ);
+            if (bytes != 1 || sbuf[0] != 'S')
+                goto shut;
+        }
+        break;
     }
 
     for (;;) {
diff --git a/doc/apps/s_client.pod b/doc/apps/s_client.pod
index 7ad9811..4a2a280 100644
--- a/doc/apps/s_client.pod
+++ b/doc/apps/s_client.pod
@@ -420,7 +420,7 @@ command for more information.
 send the protocol-specific message(s) to switch to TLS for communication.
 B<protocol> is a keyword for the intended protocol.  Currently, the only
 supported keywords are "smtp", "pop3", "imap", "ftp", "xmpp", "xmpp-server",
-and "irc."
+"irc" and "postgres."
 
 =item B<-xmpphost hostname>
 
_____
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits

Reply via email to