1 #include <dragonnet/recv.h>
7 void dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n)
9 pthread_rwlock_rdlock(&p->mu);
11 pthread_rwlock_unlock(&p->mu);
13 ssize_t len = recv(sock, buf, n, MSG_WAITALL);
16 dragonnet_peer_delete(p);
22 pthread_rwlock_wrlock(&p->mu);
28 pthread_rwlock_unlock(&p->mu);
32 void dragonnet_read_raw(u8 **buf, size_t *n, void *data, size_t len)
34 memcpy(data, *buf, len);
35 memcpy(*buf, &((*buf)[len]), -len + *n);
37 *buf = realloc(*buf, -len + *n);