Commit b2e54eb8 authored by Valentin Vidic's avatar Valentin Vidic Committed by Matt Caswell
Browse files

Add Postgres support to -starttls



Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
parent 6215f27a
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -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 (;;) {
+1 −1
Original line number Diff line number Diff line
@@ -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>