=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/openssl/s_client.c,v retrieving revision 1.11 retrieving revision 1.12 diff -c -r1.11 -r1.12 *** src/usr.bin/openssl/s_client.c 2014/12/14 14:42:06 1.11 --- src/usr.bin/openssl/s_client.c 2015/01/13 10:48:24 1.12 *************** *** 1,4 **** ! /* $OpenBSD: s_client.c,v 1.11 2014/12/14 14:42:06 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * --- 1,4 ---- ! /* $OpenBSD: s_client.c,v 1.12 2015/01/13 10:48:24 bluhm Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * *************** *** 204,209 **** --- 204,210 ---- BIO_printf(bio_err, " -host host - use -connect instead\n"); BIO_printf(bio_err, " -port port - use -connect instead\n"); BIO_printf(bio_err, " -connect host:port - who to connect to (default is %s:%s)\n", SSL_HOST_NAME, PORT_STR); + BIO_printf(bio_err, " -proxy host:port - connect to http proxy\n"); BIO_printf(bio_err, " -verify arg - turn on peer certificate verification\n"); BIO_printf(bio_err, " -cert arg - certificate file to use, PEM format assumed\n"); *************** *** 338,343 **** --- 339,345 ---- char *port = PORT_STR; int full_log = 1; char *host = SSL_HOST_NAME; + char *proxy = NULL, *connect = NULL; char *cert_file = NULL, *key_file = NULL; int cert_format = FORMAT_PEM, key_format = FORMAT_PEM; char *passarg = NULL, *pass = NULL; *************** *** 412,419 **** } else if (strcmp(*argv, "-connect") == 0) { if (--argc < 1) goto bad; ! if (!extract_host_port(*(++argv), &host, NULL, &port)) goto bad; } else if (strcmp(*argv, "-verify") == 0) { verify = SSL_VERIFY_PEER; if (--argc < 1) --- 414,424 ---- } else if (strcmp(*argv, "-connect") == 0) { if (--argc < 1) goto bad; ! connect = *(++argv); ! } else if (strcmp(*argv, "-proxy") == 0) { ! if (--argc < 1) goto bad; + proxy = *(++argv); } else if (strcmp(*argv, "-verify") == 0) { verify = SSL_VERIFY_PEER; if (--argc < 1) *************** *** 624,629 **** --- 629,643 ---- argc--; argv++; } + if (proxy != NULL) { + if (!extract_host_port(proxy, &host, NULL, &port)) + goto bad; + if (connect == NULL) + connect = SSL_HOST_NAME; + } else if (connect != NULL) { + if (!extract_host_port(connect, &host, NULL, &port)) + goto bad; + } if (badop) { bad: if (errstr) *************** *** 971,978 **** BIO_free(fbio); BIO_printf(sbio, "AUTH TLS\r\n"); BIO_read(sbio, sbuf, BUFSIZZ); ! } ! if (starttls_proto == PROTO_XMPP) { int seen = 0; BIO_printf(sbio, "