Don't use errno from mud_path()

This commit is contained in:
Adrien Gallouët
2016-10-28 10:20:14 +00:00
parent f94489e199
commit 4e6094dff9

20
mud.c
View File

@@ -436,10 +436,8 @@ static
struct path *mud_path (struct mud *mud, struct ipaddr *local_addr,
struct sockaddr *addr, int create)
{
if (local_addr->family != addr->sa_family) {
errno = EINVAL;
if (local_addr->family != addr->sa_family)
return NULL;
}
struct path *path;
@@ -541,8 +539,10 @@ int mud_peer (struct mud *mud, const char *name, const char *host, int port)
struct path *path = mud_path(mud, &local_addr,
(struct sockaddr *)&addr, 1);
if (!path)
if (!path) {
errno = ENOMEM;
return -1;
}
path->state.active = 1;
@@ -828,6 +828,9 @@ int mud_peer_is_up (struct mud *mud, const char *name, const char *host, int por
struct path *path = mud_path(mud, &local_addr,
(struct sockaddr *)&addr, 0);
if (!path)
return 0;
return path->state.on && path->state.up;
}
@@ -1010,11 +1013,8 @@ int mud_recv (struct mud *mud, void *data, size_t size)
ssize_t packet_size = recvmsg(mud->fd, &msg, 0);
if (packet_size <= (ssize_t)MUD_PACKET_MIN_SIZE) {
if (packet_size == (ssize_t)-1)
return -1;
return 0;
}
if (packet_size <= (ssize_t)MUD_PACKET_MIN_SIZE)
return -(packet_size == (ssize_t)-1);
uint64_t now = mud_now(mud);
uint64_t send_time = mud_read48(packet);
@@ -1057,7 +1057,7 @@ int mud_recv (struct mud *mud, void *data, size_t size)
(struct sockaddr *)&addr, mud_packet);
if (!path)
return -1;
return 0;
if (mud_packet)
path->state.up = 1;