From: YASUOKA Masahiko <yasu...@openbsd.org> Date: Thu, 14 Feb 2019 15:34:26 +0900 (JST)
> 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. Oh! My thought was missing. Thanks > >>> 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 >> > -- ASOU Masato