diff options
Diffstat (limited to 'src/usr.bin/nc/netcat.c')
| -rw-r--r-- | src/usr.bin/nc/netcat.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c index 54ebacf9ea..41abc8de21 100644 --- a/src/usr.bin/nc/netcat.c +++ b/src/usr.bin/nc/netcat.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: netcat.c,v 1.182 2017/05/10 21:56:53 bluhm Exp $ */ | 1 | /* $OpenBSD: netcat.c,v 1.183 2017/05/26 16:05:35 bluhm Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> | 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> |
| 4 | * Copyright (c) 2015 Bob Beck. All rights reserved. | 4 | * Copyright (c) 2015 Bob Beck. All rights reserved. |
| @@ -117,6 +117,7 @@ int ttl = -1; | |||
| 117 | int minttl = -1; | 117 | int minttl = -1; |
| 118 | 118 | ||
| 119 | void atelnet(int, unsigned char *, unsigned int); | 119 | void atelnet(int, unsigned char *, unsigned int); |
| 120 | int strtoport(char *portstr, int udp); | ||
| 120 | void build_ports(char *); | 121 | void build_ports(char *); |
| 121 | void help(void); | 122 | void help(void); |
| 122 | int local_listen(char *, char *, struct addrinfo); | 123 | int local_listen(char *, char *, struct addrinfo); |
| @@ -134,9 +135,9 @@ int unix_listen(char *); | |||
| 134 | void set_common_sockopts(int, int); | 135 | void set_common_sockopts(int, int); |
| 135 | int map_tos(char *, int *); | 136 | int map_tos(char *, int *); |
| 136 | int map_tls(char *, int *); | 137 | int map_tls(char *, int *); |
| 137 | void save_peer_cert(struct tls *_tls_ctx, FILE *_fp); | 138 | void save_peer_cert(struct tls *_tls_ctx, FILE *_fp); |
| 138 | void report_connect(const struct sockaddr *, socklen_t, char *); | 139 | void report_connect(const struct sockaddr *, socklen_t, char *); |
| 139 | void report_tls(struct tls *tls_ctx, char * host, char *tls_expectname); | 140 | void report_tls(struct tls *tls_ctx, char * host); |
| 140 | void usage(int); | 141 | void usage(int); |
| 141 | ssize_t drainbuf(int, unsigned char *, size_t *, struct tls *); | 142 | ssize_t drainbuf(int, unsigned char *, size_t *, struct tls *); |
| 142 | ssize_t fillbuf(int, unsigned char *, size_t *, struct tls *); | 143 | ssize_t fillbuf(int, unsigned char *, size_t *, struct tls *); |
| @@ -152,7 +153,7 @@ main(int argc, char *argv[]) | |||
| 152 | struct servent *sv; | 153 | struct servent *sv; |
| 153 | socklen_t len; | 154 | socklen_t len; |
| 154 | struct sockaddr_storage cliaddr; | 155 | struct sockaddr_storage cliaddr; |
| 155 | char *proxy, *proxyport = NULL; | 156 | char *proxy = NULL, *proxyport = NULL; |
| 156 | const char *errstr; | 157 | const char *errstr; |
| 157 | struct addrinfo proxyhints; | 158 | struct addrinfo proxyhints; |
| 158 | char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE]; | 159 | char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE]; |
| @@ -780,7 +781,7 @@ tls_setup_client(struct tls *tls_ctx, int s, char *host) | |||
| 780 | errx(1, "tls handshake failed (%s)", errstr); | 781 | errx(1, "tls handshake failed (%s)", errstr); |
| 781 | } | 782 | } |
| 782 | if (vflag) | 783 | if (vflag) |
| 783 | report_tls(tls_ctx, host, tls_expectname); | 784 | report_tls(tls_ctx, host); |
| 784 | if (tls_expecthash && tls_peer_cert_hash(tls_ctx) && | 785 | if (tls_expecthash && tls_peer_cert_hash(tls_ctx) && |
| 785 | strcmp(tls_expecthash, tls_peer_cert_hash(tls_ctx)) != 0) | 786 | strcmp(tls_expecthash, tls_peer_cert_hash(tls_ctx)) != 0) |
| 786 | errx(1, "peer certificate is not %s", tls_expecthash); | 787 | errx(1, "peer certificate is not %s", tls_expecthash); |
| @@ -807,7 +808,7 @@ tls_setup_server(struct tls *tls_ctx, int connfd, char *host) | |||
| 807 | int gotcert = tls_peer_cert_provided(tls_cctx); | 808 | int gotcert = tls_peer_cert_provided(tls_cctx); |
| 808 | 809 | ||
| 809 | if (vflag && gotcert) | 810 | if (vflag && gotcert) |
| 810 | report_tls(tls_cctx, host, tls_expectname); | 811 | report_tls(tls_cctx, host); |
| 811 | if ((TLSopt & TLS_CCERT) && !gotcert) | 812 | if ((TLSopt & TLS_CCERT) && !gotcert) |
| 812 | warnx("No client certificate provided"); | 813 | warnx("No client certificate provided"); |
| 813 | else if (gotcert && tls_peer_cert_hash(tls_ctx) && tls_expecthash && | 814 | else if (gotcert && tls_peer_cert_hash(tls_ctx) && tls_expecthash && |
| @@ -1582,18 +1583,17 @@ save_peer_cert(struct tls *tls_ctx, FILE *fp) | |||
| 1582 | { | 1583 | { |
| 1583 | const char *pem; | 1584 | const char *pem; |
| 1584 | size_t plen; | 1585 | size_t plen; |
| 1585 | FILE *out; | ||
| 1586 | 1586 | ||
| 1587 | if ((pem = tls_peer_cert_chain_pem(tls_ctx, &plen)) == NULL) | 1587 | if ((pem = tls_peer_cert_chain_pem(tls_ctx, &plen)) == NULL) |
| 1588 | errx(1, "Can't get peer certificate"); | 1588 | errx(1, "Can't get peer certificate"); |
| 1589 | if (fprintf(fp, "%.*s", plen, pem) < 0) | 1589 | if (fprintf(fp, "%.*s", (int)plen, pem) < 0) |
| 1590 | err(1, "unable to save peer cert"); | 1590 | err(1, "unable to save peer cert"); |
| 1591 | if (fflush(fp) != 0) | 1591 | if (fflush(fp) != 0) |
| 1592 | err(1, "unable to flush peer cert"); | 1592 | err(1, "unable to flush peer cert"); |
| 1593 | } | 1593 | } |
| 1594 | 1594 | ||
| 1595 | void | 1595 | void |
| 1596 | report_tls(struct tls * tls_ctx, char * host, char *tls_expectname) | 1596 | report_tls(struct tls * tls_ctx, char * host) |
| 1597 | { | 1597 | { |
| 1598 | time_t t; | 1598 | time_t t; |
| 1599 | const char *ocsp_url; | 1599 | const char *ocsp_url; |
