summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-rtnl/rtnl-internal.h
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-04-14 17:20:51 +0200
committerTom Gundersen <teg@jklm.no>2014-04-14 17:53:21 +0200
commita88f77c406ea56160c1e5a4b39eab1de134abe40 (patch)
treed1da4d5a0fae4a11dfa5429e65c03b09109a55a6 /src/libsystemd/sd-rtnl/rtnl-internal.h
parent1403f45ab61d6f2026a3a7a06b52a536c1b7a3b3 (diff)
sd-rtnl: socket_read - use a read buffer
Rather than allocating/freeing memory for each message read, keep a global read buffer in the rtnl object. Also, rather than using a fixed size, peek at the pending message header to get the message size and reallocate as necessary.
Diffstat (limited to 'src/libsystemd/sd-rtnl/rtnl-internal.h')
-rw-r--r--src/libsystemd/sd-rtnl/rtnl-internal.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libsystemd/sd-rtnl/rtnl-internal.h b/src/libsystemd/sd-rtnl/rtnl-internal.h
index 2f788d04f6..6dd65b2de7 100644
--- a/src/libsystemd/sd-rtnl/rtnl-internal.h
+++ b/src/libsystemd/sd-rtnl/rtnl-internal.h
@@ -72,6 +72,9 @@ struct sd_rtnl {
unsigned wqueue_size;
size_t wqueue_allocated;
+ struct nlmsghdr *rbuffer;
+ size_t rbuffer_allocated;
+
bool processing:1;
uint32_t serial;