#include <dragonnet/recv.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
-void recv_raw(DragonnetPeer *p, const void *buf, size_t n)
+void dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n)
{
pthread_rwlock_rdlock(&p->mu);
int sock = p->sock;
pthread_rwlock_unlock(&p->mu);
}
}
+
+void dragonnet_read_raw(u8 **buf, size_t *n, void *data, size_t len)
+{
+ memcpy(data, *buf, len);
+ memcpy(*buf, &((*buf)[len]), -len + *n);
+
+ *buf = realloc(*buf, -len + *n);
+ *n -= len;
+}