[PATCH 1/8] libbb: set netlink socket revbuf size before binding
Denys Vlasenko
vda.linux at googlemail.com
Sun Nov 22 12:13:58 UTC 2020
Applied, thank you.
On Mon, Dec 16, 2019 at 10:57 PM Jan Klötzke <jan at kloetzke.net> wrote:
>
> As soon as the socket is bound it will receive messages. Make sure the
> recieve buffer size is increased before the first message is received.
>
> Signed-off-by: Jan Klötzke <jan at kloetzke.net>
> ---
> libbb/xconnect.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/libbb/xconnect.c b/libbb/xconnect.c
> index e9a2470e4..5b32599ca 100644
> --- a/libbb/xconnect.c
> +++ b/libbb/xconnect.c
> @@ -422,14 +422,10 @@ int FAST_FUNC create_and_bind_to_netlink(int proto, int grp, unsigned rcvbuf)
> struct sockaddr_nl sa;
> int fd;
>
> - memset(&sa, 0, sizeof(sa));
> - sa.nl_family = AF_NETLINK;
> - sa.nl_pid = getpid();
> - sa.nl_groups = grp;
> fd = xsocket(AF_NETLINK, SOCK_DGRAM, proto);
> - xbind(fd, (struct sockaddr *) &sa, sizeof(sa));
> - close_on_exec_on(fd);
>
> + // Set receive buffer size before binding the socket. We want to have
> + // enough space before we start receiving messages.
> if (rcvbuf != 0) {
> // SO_RCVBUFFORCE (root only) can go above net.core.rmem_max sysctl
> setsockopt_SOL_SOCKET_int(fd, SO_RCVBUF, rcvbuf);
> @@ -444,6 +440,13 @@ int FAST_FUNC create_and_bind_to_netlink(int proto, int grp, unsigned rcvbuf)
> # endif
> }
>
> + memset(&sa, 0, sizeof(sa));
> + sa.nl_family = AF_NETLINK;
> + sa.nl_pid = getpid();
> + sa.nl_groups = grp;
> + xbind(fd, (struct sockaddr *) &sa, sizeof(sa));
> + close_on_exec_on(fd);
> +
> return fd;
> }
> #endif
> --
> 2.20.1
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
More information about the busybox
mailing list