From: Yu Watanabe Date: Tue, 8 Sep 2020 15:33:11 +0000 (+0900) Subject: network: honor the buffer size specified in networkd.socket X-Git-Tag: v247-rc1~278^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e13af7bdb6236d91498a6a5936fc75237ebfa01d;p=thirdparty%2Fsystemd.git network: honor the buffer size specified in networkd.socket --- diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 1f15d588565..5ed9cce1cad 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -1369,9 +1369,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)