chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
buffers: Introduce buf_remaining_space
[secnet.git]
/
udp.c
diff --git
a/udp.c
b/udp.c
index 1e637b6e5be7740ccb53f3678496298a8f31ffe2..552a58e000d78d372cc5def7de0afa7512785ccb 100644
(file)
--- a/
udp.c
+++ b/
udp.c
@@
-19,6
+19,7
@@
#include <netinet/in.h>
#include <arpa/inet.h>
#include "util.h"
#include <netinet/in.h>
#include <arpa/inet.h>
#include "util.h"
+#include "magic.h"
#include "unaligned.h"
#include "ipaddr.h"
#include "magic.h"
#include "unaligned.h"
#include "ipaddr.h"
#include "magic.h"
@@
-103,8
+104,9
@@
static void udp_afterpoll(void *state, struct pollfd *fds, int nfds)
BUF_ASSERT_FREE(st->rbuf);
BUF_ALLOC(st->rbuf,"udp_afterpoll");
buffer_init(st->rbuf,calculate_max_start_pad());
BUF_ASSERT_FREE(st->rbuf);
BUF_ALLOC(st->rbuf,"udp_afterpoll");
buffer_init(st->rbuf,calculate_max_start_pad());
- rv=recvfrom(st->fd, st->rbuf->start, st->rbuf->len, 0,
- (struct sockaddr *)&from, &fromlen);
+ rv=recvfrom(st->fd, st->rbuf->start,
+ buf_remaining_space(st->rbuf),
+ 0, (struct sockaddr *)&from, &fromlen);
if (rv>0) {
st->rbuf->size=rv;
if (st->use_proxy) {
if (rv>0) {
st->rbuf->size=rv;
if (st->use_proxy) {