diff options
-rw-r--r-- | isys/isys.c | 16 | ||||
-rwxr-xr-x | isys/isys.py | 3 | ||||
-rw-r--r-- | network.py | 4 |
3 files changed, 22 insertions, 1 deletions
diff --git a/isys/isys.c b/isys/isys.c index 4ecf947d0..b3466ab04 100644 --- a/isys/isys.c +++ b/isys/isys.c @@ -131,6 +131,7 @@ static PyObject * doPrefixToNetmask(PyObject *s, PyObject *args); static PyObject * doGetBlkidData(PyObject * s, PyObject * args); static PyObject * doGetDeviceByToken(PyObject *s, PyObject *args); static PyObject * doIsCapsLockEnabled(PyObject * s, PyObject * args); +static PyObject * doGetLinkStatus(PyObject * s, PyObject * args); static PyMethodDef isysModuleMethods[] = { { "ejectcdrom", (PyCFunction) doEjectCdrom, METH_VARARGS, NULL }, @@ -177,6 +178,7 @@ static PyMethodDef isysModuleMethods[] = { { "getblkid", (PyCFunction) doGetBlkidData, METH_VARARGS, NULL }, { "getdevicebytoken", (PyCFunction) doGetDeviceByToken, METH_VARARGS, NULL }, { "isCapsLockEnabled", (PyCFunction) doIsCapsLockEnabled, METH_VARARGS, NULL }, + { "getLinkStatus", (PyCFunction) doGetLinkStatus, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } } ; @@ -916,4 +918,18 @@ static PyObject * doIsCapsLockEnabled(PyObject * s, PyObject * args) { return PyBool_FromLong(state.locked_mods & LockMask); } +static PyObject * doGetLinkStatus(PyObject * s, PyObject * args) { + char *dev = NULL; + + if (!PyArg_ParseTuple(args, "s", &dev)) { + return NULL; + } + + if (get_link_status(dev) == 1) { + return PyBool_FromLong(1); + } + + return PyBool_FromLong(0); +} + /* vim:set shiftwidth=4 softtabstop=4: */ diff --git a/isys/isys.py b/isys/isys.py index 189bd7fd1..57672d8f6 100755 --- a/isys/isys.py +++ b/isys/isys.py @@ -1056,6 +1056,9 @@ def isPaeAvailable(): return isPAE +def getLinkStatus(dev): + return _isys.getLinkStatus(dev) + auditDaemon = _isys.auditdaemon handleSegv = _isys.handleSegv diff --git a/network.py b/network.py index cdaa9938c..6a9c6d0f6 100644 --- a/network.py +++ b/network.py @@ -352,7 +352,9 @@ class Network: self.netdevices[dev].set(('HWADDR', device['net.address'])) self.netdevices[dev].set(('DESC', device['description'])) - if ksdevice == dev: + if ksdevice == 'link' and isys.getLinkStatus(dev): + self.ksdevice = dev + elif ksdevice == dev: self.ksdevice = dev elif ksdevice.find(':') != -1: if ksdevice.lower() == device['net.address'].lower(): |