socklen_t l = sizeof(lsa);
if (getsockname(s->fd_legacy_unicast_ipv4, (struct sockaddr*) &lsa, &l) != 0)
- catta_log_warn("getsockname(): %s", strerror(errno));
+ catta_log_warn("getsockname(): %s", errnostrsocket());
else
return catta_port_from_sockaddr((struct sockaddr*) &lsa) == port;
socklen_t l = sizeof(lsa);
if (getsockname(s->fd_legacy_unicast_ipv6, (struct sockaddr*) &lsa, &l) != 0)
- catta_log_warn("getsockname(): %s", strerror(errno));
+ catta_log_warn("getsockname(): %s", errnostrsocket());
else
return catta_port_from_sockaddr((struct sockaddr*) &lsa) == port;
}
assert(iface > 0);
assert(src_address->proto == dst_address->proto);
- if (!(i = catta_interface_monitor_get_interface(s->monitor, iface, src_address->proto)) ||
- !i->announcing) {
- catta_log_warn("Received packet from invalid interface.");
+ if (!(i = catta_interface_monitor_get_interface(s->monitor, iface, src_address->proto))) {
+ catta_log_warn("Received packet from unrecognized interface (%d).", iface);
+ return;
+ }
+ if (!i->announcing) {
+ catta_log_warn("Received packet from invalid interface %d (not announcing).", iface);
return;
}
else
catta_server_config_init(&s->config);
+ winsock_init(); // on Windows, call WSAStartup; no-op on other platforms
if ((e = setup_sockets(s)) < 0) {
if (error)
*error = e;
catta_server_config_free(&s->config);
catta_free(s);
+ winsock_exit();
return NULL;
}
catta_server_config_free(&s->config);
catta_free(s);
+ winsock_exit(); // on Windows, call WSACleanup(); no-op on other platforms
}
const char* catta_server_get_domain_name(CattaServer *s) {