On Sat, Oct 22, 2011 at 03:24:42PM +0200, Steffen Daode Nurpmeso wrote:
> Ciao,
>
> 49.html states:
>
> dhclient(8) now accepts 'egress' as an interface name, meaning
> whichever interface is marked as being in the 'egress' group.
>
> but the manual page doesn't mention it.
i'm not a fan of your diff. i don;t think we should attempt to document
every utility which can use egress - i think we should just expect it to
work in places where it makes sense.
if you want to put a diff together that documents egress for all
utilities which understand egress, i will look at it. but i'm pretty
sure we won;t want that.
having said that, i don;t know much about where egress does and doesn;t
work. so some other developers might disagree and look at your (man)
patch.
jmc
> Also it seems to me that dhclient.c:get_ifname() uses an error()
> call with a %m format without any errno around. (Nice & fat %m.)
>
> (Since the data was filled in from the kernel, it even seems to be
> sufficient to replace the entire conditional with
>
> (void)strlcpy(ifi->name, arg, IFNAMSIZ);)
>
> Btw., ifconfig(8) doesn't state at all that there is a limit
> imposed on the length of groupnames.
> And ifconfig.c even restricts availability of groups to
>
> #ifndef SMALL
>
> but neither does ifconfig.8 state that nor does dhclient.c do any
> such check; it surely will get ENOSYS or something in the end
> though..
>
> --steffen
>
> diff --git a/sbin/dhclient/dhclient.8 b/sbin/dhclient/dhclient.8
> index 9d77c7e..3694ff1 100644
> --- a/sbin/dhclient/dhclient.8
> +++ b/sbin/dhclient/dhclient.8
> @@ -57,6 +57,14 @@ The name of the network interface that
> .Nm
> should attempt to
> configure must be specified on the command line.
> +The special name
> +.Ar egress
> +will be automatically expanded to the interface which is assigned to the
> +.Em egress
> +group.
> +See
> +.Xr ifconfig 8
> +for more about groups.
> .Pp
> The options are as follows:
> .Bl -tag -width "-p port"
> @@ -169,7 +177,8 @@ database of acquired leases
> .Xr dhclient-script 8 ,
> .Xr dhcp 8 ,
> .Xr dhcpd 8 ,
> -.Xr dhcrelay 8
> +.Xr dhcrelay 8 ,
> +.Xr ifconfig 8
> .Sh AUTHORS
> .An -nosplit
> .Nm
> diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
> index 8d35021..1c6ac40 100644
> --- a/sbin/dhclient/dhclient.c
> +++ b/sbin/dhclient/dhclient.c
> @@ -2104,7 +2104,7 @@ get_ifname(char *ifname, char *arg)
> }
>
> if (strlcpy(ifi->name, arg, IFNAMSIZ) >= IFNAMSIZ)
> - error("Interface name too long: %m");
> + error("Interface name too long");
>
> free(ifgr.ifgr_groups);
> close(s);