summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2006-12-19 22:50:49 +0000
committerjkim <jkim@FreeBSD.org>2006-12-19 22:50:49 +0000
commit7d753263657935de0956959307f7859f6f2e8575 (patch)
tree8f73aa477048267afee6174d985631ba7e681c77 /sbin
parent37965664cc660bfa55325be6ad0fbe49b50a7c4a (diff)
downloadFreeBSD-src-7d753263657935de0956959307f7859f6f2e8575.zip
FreeBSD-src-7d753263657935de0956959307f7859f6f2e8575.tar.gz
Clear full-duplex when half-duplex flag is set. This actually makes
'mediaopt half-duplex' working as it should. It is now equivalent of '-mediaopt full-duplex'.
Diffstat (limited to 'sbin')
-rw-r--r--sbin/ifconfig/ifmedia.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c
index 398f1b7..c768895 100644
--- a/sbin/ifconfig/ifmedia.c
+++ b/sbin/ifconfig/ifmedia.c
@@ -303,9 +303,13 @@ domediaopt(const char *val, int clear, int s)
ifr.ifr_media = ifmr->ifm_current;
if (clear)
ifr.ifr_media &= ~options;
- else
+ else {
+ if (options & IFM_HDX) {
+ ifr.ifr_media &= ~IFM_FDX;
+ options &= ~IFM_HDX;
+ }
ifr.ifr_media |= options;
-
+ }
ifmr->ifm_current = ifr.ifr_media;
callback_register(setifmediacallback, (void *)ifmr);
}
OpenPOWER on IntegriCloud