summaryrefslogtreecommitdiffstats
path: root/src/systeminfo/linux/qnetworkinfo_linux.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systeminfo/linux/qnetworkinfo_linux.cpp')
-rw-r--r--src/systeminfo/linux/qnetworkinfo_linux.cpp18
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