mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
solid: deal with FIXME related to UDev backend and FreeBSD
input devices are detected, if more functionality is implemented in libudev-devd (https://github.com/FreeBSDDesktop/libudev-devd) and linprocfs (https://www.freebsd.org/cgi/man.cgi?linprocfs(5)) more backend features may be working Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
0b472471a5
commit
dbc5f9a9c8
3 changed files with 16 additions and 5 deletions
|
@ -126,8 +126,7 @@ if(HUPNP_FOUND)
|
|||
set(solid_OPTIONAL_LIBS ${solid_OPTIONAL_LIBS} ${HUPNP_LIBS})
|
||||
endif()
|
||||
|
||||
# FIXME: this may work on BSD with some adjustments
|
||||
if(UDEV_FOUND AND CMAKE_SYSTEM_NAME MATCHES Linux)
|
||||
if(UDEV_FOUND)
|
||||
include_directories(${UDEV_INCLUDES})
|
||||
message(STATUS "Building Solid UDev backend.")
|
||||
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
||||
|
|
|
@ -26,12 +26,15 @@
|
|||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/wireless.h>
|
||||
#endif
|
||||
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QStringList>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace Solid::Backends::UDev;
|
||||
|
@ -54,6 +57,7 @@ QString NetworkInterface::ifaceName() const
|
|||
|
||||
bool NetworkInterface::isWireless() const
|
||||
{
|
||||
#ifdef Q_OS_LINUX
|
||||
QFile typeFile(m_device->deviceName() + "/type");
|
||||
if (!typeFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
qDebug() << "UdevNetworkInterface: typeFile can't be opened";
|
||||
|
@ -75,12 +79,16 @@ bool NetworkInterface::isWireless() const
|
|||
}
|
||||
close(ioctl_fd);
|
||||
}
|
||||
#else
|
||||
#warning Not implemented for non-Linux platforms
|
||||
#endif // Q_OS_LINUX
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NetworkInterface::isLoopback() const
|
||||
{
|
||||
#ifdef Q_OS_LINUX
|
||||
QFile typeFile(m_device->deviceName() + "/type");
|
||||
if (!typeFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
qDebug() << "UdevNetworkInterface: typeFile can't be opened";
|
||||
|
@ -89,6 +97,10 @@ bool NetworkInterface::isLoopback() const
|
|||
|
||||
int mediaType = typeFile.readAll().trimmed().toInt();
|
||||
return (mediaType == ARPHRD_LOOPBACK);
|
||||
#else
|
||||
#warning Not implemented for non-Linux platforms
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
QString NetworkInterface::hwAddress() const
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "backends/fakehw/fakemanager.h"
|
||||
#include "backends/fstab/fstabmanager.h"
|
||||
|
||||
#if defined (UDEV_FOUND) && defined(Q_OS_LINUX)
|
||||
#if defined (UDEV_FOUND)
|
||||
#include "backends/udev/udevmanager.h"
|
||||
#endif
|
||||
|
||||
|
@ -52,7 +52,7 @@ void Solid::ManagerBasePrivate::loadBackends()
|
|||
} else {
|
||||
m_backends << new Solid::Backends::Fstab::FstabManager(0);
|
||||
|
||||
# if defined(UDEV_FOUND) && defined(Q_OS_LINUX)
|
||||
# if defined(UDEV_FOUND)
|
||||
m_backends << new Solid::Backends::UDev::UDevManager(0);
|
||||
# endif
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue