From ebc0729c6a6e78b58eb377eac52fe48ac5a225c2 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 9 Sep 2020 00:33:11 +0900 Subject: [PATCH] network: honor the buffer size specified in networkd.socket (cherry picked from commit e13af7bdb6236d91498a6a5936fc75237ebfa01d) --- src/network/networkd-manager.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 1ed0484bec..175917df3b 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -1368,9 +1368,14 @@ static int manager_connect_rtnl(Manager *m) { if (r < 0) return r; - r = sd_netlink_inc_rcvbuf(m->rtnl, RCVBUF_SIZE); - if (r < 0) - log_warning_errno(r, "Failed to increase receive buffer size for rtnl socket, ignoring: %m"); + /* Bump receiver buffer, but only if we are not called via socket activation, as in that + * case systemd sets the receive buffer size for us, and the value in the .socket unit + * should take full effect. */ + if (fd < 0) { + r = sd_netlink_inc_rcvbuf(m->rtnl, RCVBUF_SIZE); + if (r < 0) + log_warning_errno(r, "Failed to increase receive buffer size for rtnl socket, ignoring: %m"); + } r = sd_netlink_attach_event(m->rtnl, m->event, 0); if (r < 0) -- 2.25.1