Skip to content

Commit

Permalink
Add Postgres support to -starttls
Browse files Browse the repository at this point in the history
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
  • Loading branch information
Valentin Vidic authored and mattcaswell committed Oct 17, 2016
1 parent 6215f27 commit b2e54eb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
23 changes: 22 additions & 1 deletion apps/s_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = {
Expand All @@ -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}
};

Expand Down Expand Up @@ -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 (;;) {
Expand Down
2 changes: 1 addition & 1 deletion doc/apps/s_client.pod
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down

0 comments on commit b2e54eb

Please sign in to comment.