On Thu, 14 Feb 2019 08:30:45 +0900 (JST)
Masato Asou <a...@soum.co.jp> wrote:
> From: Claudio Jeker <cje...@diehard.n-r-g.com>
> Date: Wed, 13 Feb 2019 14:25:58 +0100
> 
>> On Wed, Feb 13, 2019 at 11:04:02AM +0900, Masato Asou wrote:
>>> Hi,
>>> 
>>> When I execute `ifconfig media XX -mediaopt YY' command, it occured
>>> error as below.
>>> 
>>> $ doas ifconfig em1 media 100baseTX -mediaopt full-duplex
>>> ifconfig: may not issue both `media' and `-mediaopt'
>>> $ echo $?
>>> 1
>>> 
>>> Does anyone knows this reason?
>> 
>> This was done to prevent changing mediaopt while changing media at the
>> same time. Media and mediaopt are linked together and ifconfig fetches
>> the initial settings early on. Changing media and mediaopt at the same
>> time may end up with a results that puts the interface into an invalid
>> state.
> 
> Thanks for your explanation.
> 
> However, media and mediaopt (not `-') can specfy same time. Does this
> work valid?

The reason isn't because we can assume all "mediaopt" are cleared when
changing "media"?  Then clearing individual "mediaopt" when changing
"media" doesn't make sense.

>> Is there a particular reason why you need to use media and
>> -mediaopt at the same time?
> 
> I have no particular reason. I just thiking that way.
> If specified media and -media same time, I only execute one command.
> 
>>> I think following patch is works fine.
>>> 
>>> $ cvs diff ifconfig.c
>>> Index: ifconfig.c
>>> ===================================================================
>>> RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
>>> retrieving revision 1.379
>>> diff -u -p -r1.379 ifconfig.c
>>> --- ifconfig.c  30 Sep 2018 18:19:24 -0000      1.379
>>> +++ ifconfig.c  13 Feb 2019 01:58:18 -0000
>>> @@ -2797,10 +2797,6 @@ unsetmediaopt(const char *val, int d)
>>>         if (actions & A_MEDIAOPTCLR)
>>>                 errx(1, "only one `-mediaopt' command may be issued");
>>> 
>>> -       /* May not issue `media' and `-mediaopt'. */
>>> -       if (actions & A_MEDIA)
>>> -               errx(1, "may not issue both `media' and `-mediaopt'");
>>> -
>>>         /*
>>>          * No need to check for A_MEDIAINST, since the test for A_MEDIA
>>>          * implicitly checks for A_MEDIAINST.
>>> --
>>> ASOU Masato
>>> 
>> 
>> -- 
>> :wq Claudio
> 
> --
> ASOU Masato
> 

Reply via email to