mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
network.c:
- reset errno from failed bind() calls if the last one succeeds DHT_bootstrap.c: - move the perror() output next to where it belongs to
This commit is contained in:
parent
0139f2838f
commit
5869057aba
|
@ -102,6 +102,8 @@ int main(int argc, char *argv[])
|
||||||
ip_init(&ip, ipv6enabled);
|
ip_init(&ip, ipv6enabled);
|
||||||
|
|
||||||
DHT *dht = new_DHT(new_net_crypto(new_networking(ip, PORT)));
|
DHT *dht = new_DHT(new_net_crypto(new_networking(ip, PORT)));
|
||||||
|
perror("Initialization");
|
||||||
|
|
||||||
manage_keys(dht);
|
manage_keys(dht);
|
||||||
printf("Public key: ");
|
printf("Public key: ");
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
@ -122,8 +124,6 @@ int main(int argc, char *argv[])
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("Port: %u\n", PORT);
|
printf("Port: %u\n", PORT);
|
||||||
|
|
||||||
perror("Initialization.");
|
|
||||||
|
|
||||||
if (argc > argvoffset + 3) {
|
if (argc > argvoffset + 3) {
|
||||||
printf("Trying to bootstrap into the network...\n");
|
printf("Trying to bootstrap into the network...\n");
|
||||||
uint16_t port = htons(atoi(argv[argvoffset + 2]));
|
uint16_t port = htons(atoi(argv[argvoffset + 2]));
|
||||||
|
|
|
@ -211,7 +211,7 @@ void networking_poll(Networking_Core *net)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t at_startup_ran;
|
uint8_t at_startup_ran = 0;
|
||||||
static int at_startup(void)
|
static int at_startup(void)
|
||||||
{
|
{
|
||||||
if (at_startup_ran != 0)
|
if (at_startup_ran != 0)
|
||||||
|
@ -252,8 +252,10 @@ Networking_Core *new_networking(IP ip, uint16_t port)
|
||||||
{
|
{
|
||||||
#ifdef TOX_ENABLE_IPV6
|
#ifdef TOX_ENABLE_IPV6
|
||||||
/* maybe check for invalid IPs like 224+.x.y.z? if there is any IP set ever */
|
/* maybe check for invalid IPs like 224+.x.y.z? if there is any IP set ever */
|
||||||
if (ip.family != AF_INET && ip.family != AF_INET6)
|
if (ip.family != AF_INET && ip.family != AF_INET6) {
|
||||||
|
fprintf(stderr, "Invalid address family: %u\n", ip.family);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (at_startup() != 0)
|
if (at_startup() != 0)
|
||||||
|
@ -287,6 +289,7 @@ Networking_Core *new_networking(IP ip, uint16_t port)
|
||||||
#else
|
#else
|
||||||
|
|
||||||
if (temp->sock < 0) {
|
if (temp->sock < 0) {
|
||||||
|
fprintf(stderr, "Failed to get a scoket?! %u, %s\n", errno, strerror(errno));
|
||||||
free(temp);
|
free(temp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -409,6 +412,12 @@ Networking_Core *new_networking(IP ip, uint16_t port)
|
||||||
sprintf(logbuffer, "Bound successfully to %s:%u.\n", ip_ntoa(&ip), ntohs(temp->port));
|
sprintf(logbuffer, "Bound successfully to %s:%u.\n", ip_ntoa(&ip), ntohs(temp->port));
|
||||||
loglog(logbuffer);
|
loglog(logbuffer);
|
||||||
#endif
|
#endif
|
||||||
|
/* errno isn't reset on success, only set on failure, the failed
|
||||||
|
* binds with parallel clients yield a -EPERM to the outside if
|
||||||
|
* errno isn't cleared here */
|
||||||
|
if (tries > 0)
|
||||||
|
errno = 0;
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user