On 6/14/19 7:33 PM, Stefano Brivio wrote:
> diff --git a/ip/iproute.c b/ip/iproute.c
> index 2b3dcc5dbd53..192442b42062 100644
> --- a/ip/iproute.c
> +++ b/ip/iproute.c
> @@ -1602,6 +1602,16 @@ static int save_route_prep(void)
> return 0;
> }
>
> +static int iproute_flush_flags(struct nlmsghdr *nlh, int reqlen)
rename that to iproute_flush_filter to be consistent with
iproute_dump_filter.
Actually, why can't the flush code use iproute_dump_filter?
> +{
> + struct rtmsg *rtm = NLMSG_DATA(nlh);
> +
> + if (filter.cloned)
> + rtm->rtm_flags |= RTM_F_CLONED;
> +
> + return 0;
> +}
> +
> static int iproute_flush(int family, rtnl_filter_t filter_fn)
> {
> time_t start = time(0);
> @@ -1624,7 +1634,7 @@ static int iproute_flush(int family, rtnl_filter_t
> filter_fn)
> filter.flushe = sizeof(flushb);
>
> for (;;) {
> - if (rtnl_routedump_req(&rth, family, NULL) < 0) {
> + if (rtnl_routedump_req(&rth, family, iproute_flush_flags) < 0) {
> perror("Cannot send dump request");
> return -2;
> }
>