]> git.lizzy.rs Git - dragonnet.git/blob - dragonnet/recv.c
extra -> user
[dragonnet.git] / dragonnet / recv.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <unistd.h>
5 #include "error.h"
6 #include "recv.h"
7 #include "sock.h"
8
9 bool dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n)
10 {
11         if (n == 0)
12                 return true;
13
14         ssize_t len = recv(p->sock, buf, n, MSG_WAITALL);
15         if (len < 0) {
16                 dragonnet_perror("recv");
17                 abort();
18         }
19
20         return len == (ssize_t) n;
21 }