{
return setsockopt(sockfd, level, optname, (void *)&optval, sizeof(optval));
}
-static SOCKET create_listen_sock(const char *ip, const char *port)
+static listener create_listen_sock(const char *ip, const char *port, struct tls *ctx)
{
struct addrinfo hints, *res;
memset(&hints, 0, sizeof(hints));
net_perror("ERROR LISTEN");
exit(EXIT_FAILURE);
}
- return sock;
+ return listener{sock, ctx};
}
static void accept_from_sock(struct listener *listener)
return fprintf(stderr, "not enough parameters\n"), 1;
if (is_tls && !tls_ctx)
return fprintf(stderr, "no TLS support\n"), 1;
- listeners.emplace_back(create_listen_sock(argv[i+1], argv[i+2]), is_tls ? tls_ctx : nullptr);
+ listeners.push_back(create_listen_sock(argv[i+1], argv[i+2], is_tls ? tls_ctx : 0));
i += 2;
} else if(!strcmp(argv[i], "--autojoin")) {
if (i + 1 >= argc)
determine_hostname();
if (listeners.empty()) {
- listeners.emplace_back(create_listen_sock("0", "6667"), nullptr);
- listeners.emplace_back(create_listen_sock("::", "6667"), nullptr);
+ listeners.push_back(create_listen_sock("0", "6667", 0));
+ listeners.push_back(create_listen_sock("::", "6667", 0));
#ifdef HAVE_LIBTLS
- listeners.emplace_back(create_listen_sock("0", "6697"), tls_ctx);
- listeners.emplace_back(create_listen_sock("::", "6697"), tls_ctx);
+ listeners.push_back(create_listen_sock("0", "6697", tls_ctx));
+ listeners.push_back(create_listen_sock("::", "6697", tls_ctx));
#endif
}