diff options
Diffstat (limited to 'src/systeminfo/linux/qnetworkinfo_linux.cpp')
-rw-r--r-- | src/systeminfo/linux/qnetworkinfo_linux.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/systeminfo/linux/qnetworkinfo_linux.cpp b/src/systeminfo/linux/qnetworkinfo_linux.cpp index 6979f948..9a981ec9 100644 --- a/src/systeminfo/linux/qnetworkinfo_linux.cpp +++ b/src/systeminfo/linux/qnetworkinfo_linux.cpp @@ -439,12 +439,16 @@ void QNetworkInfoPrivate::connectNotify(const QMetaMethod &signal) if (!udevHandle) { udevHandle = udev_new(); udevMonitor = udev_monitor_new_from_netlink(udevHandle, "udev"); - udev_monitor_filter_add_match_subsystem_devtype(udevMonitor, "net", NULL); - udev_monitor_enable_receiving(udevMonitor); - udevNotifier = new QSocketNotifier(udev_monitor_get_fd(udevMonitor), QSocketNotifier::Read, this); - connect(udevNotifier, SIGNAL(activated(int)), this, SLOT(onUdevChanged())); + if (udevMonitor) { + udev_monitor_filter_add_match_subsystem_devtype(udevMonitor, "net", NULL); + udev_monitor_enable_receiving(udevMonitor); + udevNotifier = new QSocketNotifier(udev_monitor_get_fd(udevMonitor), QSocketNotifier::Read, this); + connect(udevNotifier, SIGNAL(activated(int)), this, SLOT(onUdevChanged())); + } + } + if (udevNotifier) { + udevNotifier->setEnabled(true); } - udevNotifier->setEnabled(true); #endif // QT_NO_UDEV watchNetworkInterfaceCount = true; @@ -538,7 +542,9 @@ void QNetworkInfoPrivate::disconnectNotify(const QMetaMethod &signal) if (signal == networkInterfaceCountChangedSignal && !watchNetworkStatus && !watchNetworkName && !watchNetworkSignalStrength ) { #if !defined(QT_NO_UDEV) - udevNotifier->setEnabled(false); + if (udevNotifier) { + udevNotifier->setEnabled(false); + } watchNetworkInterfaceCount = false; return; #endif // QT_NO_UDEV |