Don't use errno from mud_path()
This commit is contained in:
26
mud.c
26
mud.c
@@ -436,10 +436,8 @@ static
|
|||||||
struct path *mud_path (struct mud *mud, struct ipaddr *local_addr,
|
struct path *mud_path (struct mud *mud, struct ipaddr *local_addr,
|
||||||
struct sockaddr *addr, int create)
|
struct sockaddr *addr, int create)
|
||||||
{
|
{
|
||||||
if (local_addr->family != addr->sa_family) {
|
if (local_addr->family != addr->sa_family)
|
||||||
errno = EINVAL;
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
|
|
||||||
struct path *path;
|
struct path *path;
|
||||||
|
|
||||||
@@ -539,10 +537,12 @@ int mud_peer (struct mud *mud, const char *name, const char *host, int port)
|
|||||||
mud_unmapv4((struct sockaddr *)&addr);
|
mud_unmapv4((struct sockaddr *)&addr);
|
||||||
|
|
||||||
struct path *path = mud_path(mud, &local_addr,
|
struct path *path = mud_path(mud, &local_addr,
|
||||||
(struct sockaddr *)&addr, 1);
|
(struct sockaddr *)&addr, 1);
|
||||||
|
|
||||||
if (!path)
|
if (!path) {
|
||||||
|
errno = ENOMEM;
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
path->state.active = 1;
|
path->state.active = 1;
|
||||||
|
|
||||||
@@ -826,7 +826,10 @@ int mud_peer_is_up (struct mud *mud, const char *name, const char *host, int por
|
|||||||
mud_unmapv4((struct sockaddr *)&addr);
|
mud_unmapv4((struct sockaddr *)&addr);
|
||||||
|
|
||||||
struct path *path = mud_path(mud, &local_addr,
|
struct path *path = mud_path(mud, &local_addr,
|
||||||
(struct sockaddr *)&addr, 0);
|
(struct sockaddr *)&addr, 0);
|
||||||
|
|
||||||
|
if (!path)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return path->state.on && path->state.up;
|
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);
|
ssize_t packet_size = recvmsg(mud->fd, &msg, 0);
|
||||||
|
|
||||||
if (packet_size <= (ssize_t)MUD_PACKET_MIN_SIZE) {
|
if (packet_size <= (ssize_t)MUD_PACKET_MIN_SIZE)
|
||||||
if (packet_size == (ssize_t)-1)
|
return -(packet_size == (ssize_t)-1);
|
||||||
return -1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t now = mud_now(mud);
|
uint64_t now = mud_now(mud);
|
||||||
uint64_t send_time = mud_read48(packet);
|
uint64_t send_time = mud_read48(packet);
|
||||||
@@ -1054,10 +1054,10 @@ int mud_recv (struct mud *mud, void *data, size_t size)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
struct path *path = mud_path(mud, &local_addr,
|
struct path *path = mud_path(mud, &local_addr,
|
||||||
(struct sockaddr *)&addr, mud_packet);
|
(struct sockaddr *)&addr, mud_packet);
|
||||||
|
|
||||||
if (!path)
|
if (!path)
|
||||||
return -1;
|
return 0;
|
||||||
|
|
||||||
if (mud_packet)
|
if (mud_packet)
|
||||||
path->state.up = 1;
|
path->state.up = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user