Re: git: 779fd0534466 - main - ifconfig: improve vlan options parsing
Date: Fri, 28 Jan 2022 17:34:20 UTC
On 1/17/22 1:35 AM, Alexander V. Chernikov wrote:
> The branch main has been updated by melifaro:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=779fd05344662aeec79c29470258bf657318eab3
>
> commit 779fd05344662aeec79c29470258bf657318eab3
> Author: Alexander V. Chernikov <melifaro@FreeBSD.org>
> AuthorDate: 2022-01-17 09:30:26 +0000
> Commit: Alexander V. Chernikov <melifaro@FreeBSD.org>
> CommitDate: 2022-01-17 09:35:15 +0000
>
> ifconfig: improve vlan options parsing
>
> PR: 261136
> Reported by: Daniel O'Connor
> MFC after: 2 weeks
> ---
> sbin/ifconfig/ifvlan.c | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c
> index 60f97338ee27..1e74b504fc26 100644
> --- a/sbin/ifconfig/ifvlan.c
> +++ b/sbin/ifconfig/ifvlan.c
> @@ -144,8 +139,20 @@ vlan_parse_ethervid(const char *name)
> if ((*cp != '\0') || (vid & ~0xFFF))
> errx(1, "invalid vlan tag");
>
> - strlcpy(params.vlr_parent, ifname, IFNAMSIZ);
> - params.vlr_tag = (vid & 0xFFF);
> + /*
> + * allow "devX.Y vlandev devX vlan Y" syntax
> + */
> + if (params.vlr_tag == NOTAG || params.vlr_tag == vid)
> + params.vlr_tag = vid;
> + else
> + errx(1, "ambiguous vlan specification");
> +
> + /* Restrict overriding interface name */
> + if (params.vlr_parent[0] == '\0' || !strcmp(params.vlr_parent, ifname))
> + strlcpy(params.vlr_parent, ifname, IFNAMSIZ);
> + else
> + errx(1, "ambiguous vlan specification");
> + printf("CR: %s %d\n", params.vlr_parent, params.vlr_tag);
Did you mean to leave this printf in? I see it when adding a vlan interface now:
root@frodo:~ # ifconfig cxl0.200 create
CR: cxl0 200
--
John Baldwin