X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=tools%2Fclient.c;h=8fc3cd8ae4f7cb21c6e0f3886e5a03db4ad74e68;hp=368644128d56571609d0b8bc776c5b97d05db089;hb=f3ac21cb00646600475b02ecd2c592ee36e417da;hpb=bab0f8639cb1e97c584e7751fd7d017e0e24da63 diff --git a/tools/client.c b/tools/client.c index 3686441..8fc3cd8 100644 --- a/tools/client.c +++ b/tools/client.c @@ -57,25 +57,29 @@ host_connect(const char *host, const char *port, int verbose) } fd = -1; for (p = si; p != NULL; p = p->ai_next) { - struct sockaddr *sa; - void *addr; - char tmp[INET6_ADDRSTRLEN + 50]; - - sa = (struct sockaddr *)p->ai_addr; - if (sa->sa_family == AF_INET) { - addr = &((struct sockaddr_in *)sa)->sin_addr; - } else if (sa->sa_family == AF_INET6) { - addr = &((struct sockaddr_in6 *)sa)->sin6_addr; - } else { - addr = NULL; - } - if (addr != NULL) { - inet_ntop(p->ai_family, addr, tmp, sizeof tmp); - } else { - sprintf(tmp, "", - (int)sa->sa_family); - } if (verbose) { + struct sockaddr *sa; + void *addr; + char tmp[INET6_ADDRSTRLEN + 50]; + + sa = (struct sockaddr *)p->ai_addr; + if (sa->sa_family == AF_INET) { + addr = &((struct sockaddr_in *)sa)->sin_addr; + } else if (sa->sa_family == AF_INET6) { + addr = &((struct sockaddr_in6 *)sa)->sin6_addr; + } else { + addr = NULL; + } + if (addr != NULL) { + if (!inet_ntop(p->ai_family, addr, + tmp, sizeof tmp)) + { + strcpy(tmp, ""); + } + } else { + sprintf(tmp, "", + (int)sa->sa_family); + } fprintf(stderr, "connecting to: %s\n", tmp); } fd = socket(p->ai_family, p->ai_socktype, p->ai_protocol); @@ -245,7 +249,11 @@ do_client(int argc, char *argv[]) usage_client(); goto client_exit_error; } - iobuf_len = strtoul(arg, 0, 10); + iobuf_len = parse_size(arg); + if (iobuf_len == (size_t)-1) { + usage_client(); + goto client_exit_error; + } } else if (eqstr(arg, "-CA")) { if (++ i >= argc) { fprintf(stderr,