projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
recognize and handle carrier loss
[unix-history]
/
usr
/
src
/
sys
/
net
/
if.c
diff --git
a/usr/src/sys/net/if.c
b/usr/src/sys/net/if.c
index
345f32d
..
947edfe
100644
(file)
--- a/
usr/src/sys/net/if.c
+++ b/
usr/src/sys/net/if.c
@@
-1,4
+1,4
@@
-/* if.c
4.29 83/06/12
*/
+/* if.c
6.2 83/09/27
*/
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
@@
-47,7
+47,7
@@
ifubareset(uban)
for (ifp = ifnet; ifp; ifp = ifp->if_next)
if (ifp->if_reset)
for (ifp = ifnet; ifp; ifp = ifp->if_next)
if (ifp->if_reset)
- (*ifp->if_reset)(uban);
+ (*ifp->if_reset)(
ifp->if_unit,
uban);
}
#endif
}
#endif
@@
-243,10
+243,19
@@
ifioctl(cmd, data)
ifr->ifr_flags = ifp->if_flags;
break;
ifr->ifr_flags = ifp->if_flags;
break;
+ case SIOCSIFFLAGS:
+ if (ifp->if_flags & IFF_UP && (ifr->ifr_flags & IFF_UP) == 0) {
+ int s = splimp();
+ if_down(ifp);
+ splx(s);
+ }
+ ifp->if_flags = ifr->ifr_flags;
+ break;
+
default:
if (ifp->if_ioctl == 0)
return (EOPNOTSUPP);
default:
if (ifp->if_ioctl == 0)
return (EOPNOTSUPP);
- return ((*ifp->if_ioctl)(cmd, data));
+ return ((*ifp->if_ioctl)(
ifp,
cmd, data));
}
return (0);
}
}
return (0);
}