Loading apps/s_client.c +30 −1 Original line number Diff line number Diff line Loading @@ -746,7 +746,8 @@ typedef enum PROTOCOL_choice { PROTO_CONNECT, PROTO_IRC, PROTO_POSTGRES, PROTO_LMTP PROTO_LMTP, PROTO_NNTP } PROTOCOL_CHOICE; static const OPT_PAIR services[] = { Loading @@ -760,6 +761,7 @@ static const OPT_PAIR services[] = { {"irc", PROTO_IRC}, {"postgres", PROTO_POSTGRES}, {"lmtp", PROTO_LMTP}, {"nntp", PROTO_NNTP}, {NULL, 0} }; Loading Loading @@ -2172,6 +2174,33 @@ int s_client_main(int argc, char **argv) goto shut; } break; case PROTO_NNTP: { int foundit = 0; BIO *fbio = BIO_new(BIO_f_buffer()); BIO_push(fbio, sbio); BIO_gets(fbio, mbuf, BUFSIZZ); /* STARTTLS command requires CAPABILITIES... */ BIO_printf(fbio, "CAPABILITIES\r\n"); (void)BIO_flush(fbio); /* wait for multi-line CAPABILITIES response */ do { mbuf_len = BIO_gets(fbio, mbuf, BUFSIZZ); if (strstr(mbuf, "STARTTLS")) foundit = 1; } while (mbuf_len > 1 && mbuf[0] != '.'); (void)BIO_flush(fbio); BIO_pop(fbio); BIO_free(fbio); if (!foundit) BIO_printf(bio_err, "Didn't find STARTTLS in server response," " trying anyway...\n"); BIO_printf(sbio, "STARTTLS\r\n"); BIO_read(sbio, sbuf, BUFSIZZ); } break; } for (;;) { Loading doc/man1/s_client.pod +1 −1 Original line number Diff line number Diff line Loading @@ -437,7 +437,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", "irc", "postgres" and "lmtp". "irc", "postgres", "lmtp" and "nntp". =item B<-xmpphost hostname> Loading Loading
apps/s_client.c +30 −1 Original line number Diff line number Diff line Loading @@ -746,7 +746,8 @@ typedef enum PROTOCOL_choice { PROTO_CONNECT, PROTO_IRC, PROTO_POSTGRES, PROTO_LMTP PROTO_LMTP, PROTO_NNTP } PROTOCOL_CHOICE; static const OPT_PAIR services[] = { Loading @@ -760,6 +761,7 @@ static const OPT_PAIR services[] = { {"irc", PROTO_IRC}, {"postgres", PROTO_POSTGRES}, {"lmtp", PROTO_LMTP}, {"nntp", PROTO_NNTP}, {NULL, 0} }; Loading Loading @@ -2172,6 +2174,33 @@ int s_client_main(int argc, char **argv) goto shut; } break; case PROTO_NNTP: { int foundit = 0; BIO *fbio = BIO_new(BIO_f_buffer()); BIO_push(fbio, sbio); BIO_gets(fbio, mbuf, BUFSIZZ); /* STARTTLS command requires CAPABILITIES... */ BIO_printf(fbio, "CAPABILITIES\r\n"); (void)BIO_flush(fbio); /* wait for multi-line CAPABILITIES response */ do { mbuf_len = BIO_gets(fbio, mbuf, BUFSIZZ); if (strstr(mbuf, "STARTTLS")) foundit = 1; } while (mbuf_len > 1 && mbuf[0] != '.'); (void)BIO_flush(fbio); BIO_pop(fbio); BIO_free(fbio); if (!foundit) BIO_printf(bio_err, "Didn't find STARTTLS in server response," " trying anyway...\n"); BIO_printf(sbio, "STARTTLS\r\n"); BIO_read(sbio, sbuf, BUFSIZZ); } break; } for (;;) { Loading
doc/man1/s_client.pod +1 −1 Original line number Diff line number Diff line Loading @@ -437,7 +437,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", "irc", "postgres" and "lmtp". "irc", "postgres", "lmtp" and "nntp". =item B<-xmpphost hostname> Loading