#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
-#include <sys/poll.h>
#include "brssl.h"
#include "bearssl.h"
struct sockaddr_in6 sa6;
size_t sa_len;
void *addr;
- char tmp[INET6_ADDRSTRLEN + 50];
int opt;
sa = (struct sockaddr *)p->ai_addr;
addr = NULL;
sa_len = p->ai_addrlen;
}
- if (addr != NULL) {
- inet_ntop(p->ai_family, addr, tmp, sizeof tmp);
- } else {
- sprintf(tmp, "<unknown family: %d>",
- (int)sa->sa_family);
- }
if (verbose) {
+ char tmp[INET6_ADDRSTRLEN + 50];
+
+ if (addr != NULL) {
+ if (!inet_ntop(p->ai_family, addr,
+ tmp, sizeof tmp))
+ {
+ strcpy(tmp, "<invalid>");
+ }
+ } else {
+ sprintf(tmp, "<unknown family: %d>",
+ (int)sa->sa_family);
+ }
fprintf(stderr, "binding to: %s\n", tmp);
}
fd = socket(p->ai_family, p->ai_socktype, p->ai_protocol);
tmp, sizeof tmp);
break;
case AF_INET6:
- name = inet_ntop(AF_INET,
- &((struct sockaddr_in *)&sa)->sin_addr,
+ name = inet_ntop(AF_INET6,
+ &((struct sockaddr_in6 *)&sa)->sin6_addr,
tmp, sizeof tmp);
break;
}
usage_server();
goto server_exit_error;
}
- iobuf_len = strtoul(arg, 0, 10);
+ iobuf_len = parse_size(arg);
+ if (iobuf_len == (size_t)-1) {
+ usage_server();
+ goto server_exit_error;
+ }
} else if (eqstr(arg, "-cache")) {
if (++ i >= argc) {
fprintf(stderr,
usage_server();
goto server_exit_error;
}
- cache_len = strtoul(arg, 0, 10);
+ cache_len = parse_size(arg);
+ if (cache_len == (size_t)-1) {
+ usage_server();
+ goto server_exit_error;
+ }
} else if (eqstr(arg, "-cert")) {
if (++ i >= argc) {
fprintf(stderr,
}
xfree(chain);
}
- if (sk != NULL) {
- free_private_key(sk);
- }
+ free_private_key(sk);
xfree(iobuf);
xfree(cache);
if (fd >= 0) {