Add debian folder

This commit is contained in:
Simon Stürz 2018-03-06 13:57:52 +01:00
parent 2d5761e272
commit 9f653c9fb5
34 changed files with 379 additions and 116 deletions

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
nymea-networkmanager (0.0.1) UNRELEASED; urgency=medium
* Initial release.
-- Simon Stürz <simon.stuerz@guh.io> Mon, 05 Mar 2018 15:05:40 +0100

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
9

50
debian/control vendored Normal file
View File

@ -0,0 +1,50 @@
Source: nymea-networkmanager
Section: utils
Priority: optional
Maintainer: Simon Stürz <simon.stuerz@guh.io>
Build-Depends: debhelper (>= 9.0.0),
dpkg-dev (>= 1.16.1~),
qt5-default,
qtbase5-dev,
qtconnectivity5-dev
Standards-Version: 3.9.7
Package: nymea-networkmanager
Architecture: any
Depends: libqt5network5,
libqt5bluetooth5,
${shlibs:Depends},
${misc:Depends}
Description: Daemon for wireless configuration using bluetooth LE.
This daemon allows to configure a wireless network using a bluetooth
low energy gatt server. The tool is written in Qt 5.
Package: libnymea-networkmanager1
Section: libs
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
libqt5network5,
Description: Qt 5 based library for the network-manager DBus API.
Qt 5 based library for the network-manager DBus API.
Package: libnymea-networkmanager1-dev
Section: libdevel
Architecture: any
Depends: libnymea-networkmanager1 (= ${binary:Version}),
${shlibs:Depends},
${misc:Depends}
Description: Qt 5 based library for the network-manager DBus API - development files
Development files for Qt 5 based network-manager DBus API.
Package: libnymea-networkmanager1-dbg
Priority: extra
Architecture: any
Section: debug
Depends: libnymea-networkmanager1 (= ${binary:Version}),
${shlibs:Depends},
${misc:Depends}
Description: Qt 5 based library for the network-manager DBus API - debug symbols
Debug Symbols for Qt 5 based network-manager DBus API.

11
debian/copyright vendored Normal file
View File

@ -0,0 +1,11 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Author: Simon Stürz <simon.stuerz@guh.io>
Download: https://github.com/guh/nymea-networkmanager
License: GPL-3+
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-3'.
Files: *
Copyright: (C) 2018 Simon Stürz <simon.stuerz@guh.io>
License: GPL-3+

View File

@ -0,0 +1,3 @@
usr/lib/libnymea-networkmanager1.install.in/libnymea-networkmanager1.so
usr/include/nymea-networkmanager/* usr/include/nymea-networkmanager

View File

@ -0,0 +1 @@
usr/lib/@DEB_HOST_MULTIARCH@/

1
debian/nymea-networkmanager.dirs vendored Normal file
View File

@ -0,0 +1 @@
usr/bin/

View File

@ -0,0 +1 @@
usr/bin/nymea-networkmanager

25
debian/rules vendored Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
PREPROCESS_FILES := $(wildcard debian/*.in)
$(PREPROCESS_FILES:.in=): %: %.in
sed 's,/@DEB_HOST_MULTIARCH@,$(DEB_HOST_MULTIARCH:%=/%),g' $< > $@
%:
dh $@ --buildsystem=qmake --parallel
override_dh_install: $(PREPROCESS_FILES:.in=)
dh_install --fail-missing
override_dh_auto_build:
dh_auto_build
override_dh_strip:
dh_strip --dbg-package=libnymea-networkmanager1-dbg
override_dh_auto_clean:
dh_auto_clean
rm -rf $(PREPROCESS_FILES:.in=)

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (native)

View File

@ -12,17 +12,5 @@
#ifndef DBUSINTERFACES_H
#define DBUSINTERFACES_H
#include <QString>
static const QString networkManagerServiceString("org.freedesktop.NetworkManager");
static const QString networkManagerPathString("/org/freedesktop/NetworkManager");
static const QString settingsPathString("/org/freedesktop/NetworkManager/Settings");
static const QString deviceInterfaceString("org.freedesktop.NetworkManager.Device");
static const QString wirelessInterfaceString("org.freedesktop.NetworkManager.Device.Wireless");
static const QString wiredInterfaceString("org.freedesktop.NetworkManager.Device.Wired");
static const QString accessPointInterfaceString("org.freedesktop.NetworkManager.AccessPoint");
static const QString settingsInterfaceString("org.freedesktop.NetworkManager.Settings");
static const QString connectionsInterfaceString("org.freedesktop.NetworkManager.Settings.Connection");
#endif // DBUSINTERFACES_H

View File

@ -18,6 +18,7 @@ HEADERS += \
wirednetworkdevice.h \
wirelessaccesspoint.h \
wirelessnetworkdevice.h \
networkmanagerutils.h
SOURCES += \
networkmanager.cpp \
@ -27,6 +28,7 @@ SOURCES += \
wirednetworkdevice.cpp \
wirelessaccesspoint.cpp \
wirelessnetworkdevice.cpp \
networkmanagerutils.cpp
# install header file with relative subdirectory

View File

@ -10,7 +10,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "networkconnection.h"
#include "dbus-interfaces.h"
#include "networkmanagerutils.h"
#include <QDebug>
#include <QJsonDocument>
@ -22,15 +22,15 @@ NetworkConnection::NetworkConnection(const QDBusObjectPath &objectPath, QObject
{
qDBusRegisterMetaType<ConnectionSettings>();
m_connectionInterface = new QDBusInterface(networkManagerServiceString, m_objectPath.path(), connectionsInterfaceString, QDBusConnection::systemBus(), this);
m_connectionInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), m_objectPath.path(), NetworkManagerUtils::connectionsInterfaceString(), QDBusConnection::systemBus(), this);
if(!m_connectionInterface->isValid()) {
qWarning() << "Invalid connection dbus interface";
qCWarning(dcNetworkManager()) << "Invalid connection dbus interface";
return;
}
QDBusMessage query = m_connectionInterface->call("GetSettings");
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return;
}
@ -46,7 +46,7 @@ void NetworkConnection::deleteConnection()
{
QDBusMessage query = m_connectionInterface->call("Delete");
if(query.type() != QDBusMessage::ReplyMessage)
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
}

View File

@ -136,13 +136,13 @@ NetworkDevice::NetworkDevice(const QDBusObjectPath &objectPath, QObject *parent)
{
QDBusConnection systemBus = QDBusConnection::systemBus();
if (!systemBus.isConnected()) {
qWarning() << "NetworkDevice: System DBus not connected";
qCWarning(dcNetworkManager()) << "NetworkDevice: System DBus not connected";
return;
}
m_networkDeviceInterface = new QDBusInterface(networkManagerServiceString, m_objectPath.path(), deviceInterfaceString, QDBusConnection::systemBus(), this);
m_networkDeviceInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), m_objectPath.path(), NetworkManagerUtils::deviceInterfaceString(), QDBusConnection::systemBus(), this);
if(!m_networkDeviceInterface->isValid()) {
qWarning() << "NetworkDevice: Invalid DBus device interface" << m_objectPath.path();
qCWarning(dcNetworkManager()) << "NetworkDevice: Invalid DBus device interface" << m_objectPath.path();
return;
}
@ -164,7 +164,7 @@ NetworkDevice::NetworkDevice(const QDBusObjectPath &objectPath, QObject *parent)
m_ip4Config = qdbus_cast<QDBusObjectPath>(m_networkDeviceInterface->property("Ip4Config"));
m_ip6Config = qdbus_cast<QDBusObjectPath>(m_networkDeviceInterface->property("Ip6Config"));
QDBusConnection::systemBus().connect(networkManagerServiceString, m_objectPath.path(), deviceInterfaceString, "StateChanged", this, SLOT(onStateChanged(uint,uint,uint)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), m_objectPath.path(), NetworkManagerUtils::deviceInterfaceString(), "StateChanged", this, SLOT(onStateChanged(uint,uint,uint)));
}
/*! Returns the dbus object path of this \l{NetworkDevice}. */
@ -280,7 +280,7 @@ void NetworkDevice::disconnectDevice()
{
QDBusMessage query = m_networkDeviceInterface->call("Disconnect");
if(query.type() != QDBusMessage::ReplyMessage)
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
}
@ -314,7 +314,7 @@ QString NetworkDevice::deviceStateReasonToString(const NetworkDevice::NetworkDev
void NetworkDevice::onStateChanged(uint newState, uint oldState, uint reason)
{
Q_UNUSED(oldState);
qDebug() << m_interface << "--> State changed:" << deviceStateToString(NetworkDeviceState(newState)) << ":" << deviceStateReasonToString(NetworkDeviceStateReason(reason));
qCDebug(dcNetworkManager()) << m_interface << "--> State changed:" << deviceStateToString(NetworkDeviceState(newState)) << ":" << deviceStateReasonToString(NetworkDeviceStateReason(reason));
if (m_deviceState != NetworkDeviceState(newState)) {
m_deviceState = NetworkDeviceState(newState);
emit deviceChanged();

View File

@ -20,7 +20,7 @@
#include <QDBusContext>
#include <QDBusArgument>
#include "dbus-interfaces.h"
#include "networkmanagerutils.h"
class NetworkDevice : public QObject
{

View File

@ -28,14 +28,14 @@ NetworkManager::NetworkManager(QObject *parent) :
{
// Check DBus connection
if (!QDBusConnection::systemBus().isConnected()) {
qWarning() << "System DBus not connected. NetworkManagre not available.";
qCWarning(dcNetworkManager()) << "System DBus not connected. NetworkManagre not available.";
return;
}
// Create interface
m_networkManagerInterface = new QDBusInterface(networkManagerServiceString, networkManagerPathString, networkManagerServiceString, QDBusConnection::systemBus(), this);
m_networkManagerInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), QDBusConnection::systemBus(), this);
if(!m_networkManagerInterface->isValid()) {
qWarning() << "Invalid DBus network manager interface. NetworkManagre not available.";
qCWarning(dcNetworkManager()) << "Invalid DBus network manager interface. NetworkManagre not available.";
return;
}
@ -51,10 +51,10 @@ NetworkManager::NetworkManager(QObject *parent) :
loadDevices();
// Connect signals
QDBusConnection::systemBus().connect(networkManagerServiceString, networkManagerPathString, networkManagerServiceString, "StateChanged", this, SLOT(onStateChanged(uint)));
QDBusConnection::systemBus().connect(networkManagerServiceString, networkManagerPathString, networkManagerServiceString, "DeviceAdded", this, SLOT(onDeviceAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, networkManagerPathString, networkManagerServiceString, "DeviceRemoved", this, SLOT(onDeviceRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, networkManagerPathString, networkManagerServiceString, "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "StateChanged", this, SLOT(onStateChanged(uint)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "DeviceAdded", this, SLOT(onDeviceAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "DeviceRemoved", this, SLOT(onDeviceRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
// Create settings
m_networkSettings = new NetworkSettings(this);
@ -62,7 +62,7 @@ NetworkManager::NetworkManager(QObject *parent) :
NetworkManager::~NetworkManager()
{
qDebug() << "Destroy network manager.";
qCDebug(dcNetworkManager()) << "Destroy network manager.";
}
/*! Returns true if the network-manager is available on this system. */
@ -202,7 +202,7 @@ NetworkManager::NetworkManagerError NetworkManager::connectWifi(const QString &i
// Activate connection
QDBusMessage query = m_networkManagerInterface->call("ActivateConnection", QVariant::fromValue(connectionObjectPath), QVariant::fromValue(wirelessNetworkDevice->objectPath()), QVariant::fromValue(accessPoint->objectPath()));
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return NetworkManagerErrorWirelessConnectionFailed;
}
@ -223,7 +223,7 @@ bool NetworkManager::enableNetworking(const bool &enabled)
QDBusMessage query = m_networkManagerInterface->call("Enable", enabled);
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return false;
}
return true;
@ -232,7 +232,7 @@ bool NetworkManager::enableNetworking(const bool &enabled)
/*! Sets the networking of this \l{NetworkManager} to \a enabled. */
void NetworkManager::setNetworkingEnabled(const bool &enabled)
{
qDebug() << "Networking" << (enabled ? "enabled" : "disabled");
qCDebug(dcNetworkManager()) << "Networking" << (enabled ? "enabled" : "disabled");
m_networkingEnabled = enabled;
emit networkingEnabledChanged();
}
@ -257,7 +257,7 @@ void NetworkManager::loadDevices()
// Get network devices
QDBusMessage query = m_networkManagerInterface->call("GetDevices");
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return;
}
@ -291,28 +291,28 @@ QString NetworkManager::networkManagerConnectivityStateToString(const NetworkMan
void NetworkManager::setVersion(const QString &version)
{
qDebug() << "Version:" << version;
qCDebug(dcNetworkManager()) << "Version:" << version;
m_version = version;
emit versionChanged();
}
void NetworkManager::setWirelessEnabled(const bool &enabled)
{
qDebug() << "Wireless networking" << (enabled ? "enabled" : "disabled");
qCDebug(dcNetworkManager()) << "Wireless networking" << (enabled ? "enabled" : "disabled");
m_wirelessEnabled = enabled;
emit wirelessEnabledChanged();
}
void NetworkManager::setConnectivityState(const NetworkManager::NetworkManagerConnectivityState &connectivityState)
{
qDebug() << "Connectivity state changed:" << networkManagerConnectivityStateToString(connectivityState);
qCDebug(dcNetworkManager()) << "Connectivity state changed:" << networkManagerConnectivityStateToString(connectivityState);
m_connectivityState = connectivityState;
emit connectivityStateChanged();
}
void NetworkManager::setState(const NetworkManager::NetworkManagerState &state)
{
qDebug() << "State changed:" << networkManagerStateToString(state);
qCDebug(dcNetworkManager()) << "State changed:" << networkManagerStateToString(state);
m_state = state;
emit stateChanged();
}
@ -320,14 +320,14 @@ void NetworkManager::setState(const NetworkManager::NetworkManagerState &state)
void NetworkManager::onDeviceAdded(const QDBusObjectPath &deviceObjectPath)
{
if (m_networkDevices.keys().contains(deviceObjectPath)) {
qWarning() << "Device" << deviceObjectPath.path() << "already added.";
qCWarning(dcNetworkManager()) << "Device" << deviceObjectPath.path() << "already added.";
return;
}
// Get device Type
QDBusInterface networkDeviceInterface(networkManagerServiceString, deviceObjectPath.path(), deviceInterfaceString, QDBusConnection::systemBus());
QDBusInterface networkDeviceInterface(NetworkManagerUtils::networkManagerServiceString(), deviceObjectPath.path(), NetworkManagerUtils::deviceInterfaceString(), QDBusConnection::systemBus());
if(!networkDeviceInterface.isValid()) {
qWarning() << "NetworkDevice: Invalid DBus device interface" << deviceObjectPath.path();
qCWarning(dcNetworkManager()) << "NetworkDevice: Invalid DBus device interface" << deviceObjectPath.path();
return;
}
@ -336,7 +336,7 @@ void NetworkManager::onDeviceAdded(const QDBusObjectPath &deviceObjectPath)
switch (deviceType) {
case NetworkDevice::NetworkDeviceTypeWifi: {
WirelessNetworkDevice *wirelessNetworkDevice = new WirelessNetworkDevice(deviceObjectPath, this);
qDebug() << "[+]" << wirelessNetworkDevice;
qCDebug(dcNetworkManager()) << "[+]" << wirelessNetworkDevice;
m_networkDevices.insert(deviceObjectPath, wirelessNetworkDevice);
m_wirelessNetworkDevices.insert(deviceObjectPath, wirelessNetworkDevice);
connect(wirelessNetworkDevice, &WirelessNetworkDevice::deviceChanged, this, &NetworkManager::onWirelessDeviceChanged);
@ -345,7 +345,7 @@ void NetworkManager::onDeviceAdded(const QDBusObjectPath &deviceObjectPath)
}
case NetworkDevice::NetworkDeviceTypeEthernet: {
WiredNetworkDevice *wiredNetworkDevice = new WiredNetworkDevice(deviceObjectPath, this);
qDebug() << "[+]" << wiredNetworkDevice;
qCDebug(dcNetworkManager()) << "[+]" << wiredNetworkDevice;
m_networkDevices.insert(deviceObjectPath, wiredNetworkDevice);
m_wiredNetworkDevices.insert(deviceObjectPath, wiredNetworkDevice);
@ -355,7 +355,7 @@ void NetworkManager::onDeviceAdded(const QDBusObjectPath &deviceObjectPath)
}
default:
NetworkDevice *networkDevice = new NetworkDevice(deviceObjectPath, this);
qDebug() << "[+]" << networkDevice;
qCDebug(dcNetworkManager()) << "[+]" << networkDevice;
m_networkDevices.insert(deviceObjectPath, networkDevice);
break;
}
@ -364,25 +364,25 @@ void NetworkManager::onDeviceAdded(const QDBusObjectPath &deviceObjectPath)
void NetworkManager::onDeviceRemoved(const QDBusObjectPath &deviceObjectPath)
{
if (!m_networkDevices.keys().contains(deviceObjectPath)) {
qWarning() << "Unknown network device removed:" << deviceObjectPath.path();
qCWarning(dcNetworkManager()) << "Unknown network device removed:" << deviceObjectPath.path();
return;
}
NetworkDevice *networkDevice = m_networkDevices.take(deviceObjectPath);
if (m_wiredNetworkDevices.contains(deviceObjectPath)) {
qDebug() << "[-]" << m_wiredNetworkDevices.value(deviceObjectPath);
qCDebug(dcNetworkManager()) << "[-]" << m_wiredNetworkDevices.value(deviceObjectPath);
m_wiredNetworkDevices.remove(deviceObjectPath);
emit wiredDeviceRemoved(networkDevice->interface());
} else if (m_wirelessNetworkDevices.contains(deviceObjectPath)) {
qDebug() << "[-]" << m_wirelessNetworkDevices.value(deviceObjectPath);
qCDebug(dcNetworkManager()) << "[-]" << m_wirelessNetworkDevices.value(deviceObjectPath);
m_wirelessNetworkDevices.remove(deviceObjectPath);
if (!wirelessAvailable())
emit wirelessAvailableChanged();
emit wirelessDeviceRemoved(networkDevice->interface());
} else {
qDebug() << "[-]" << networkDevice;
qCDebug(dcNetworkManager()) << "[-]" << networkDevice;
}
networkDevice->deleteLater();

View File

@ -19,7 +19,7 @@
#include <QDBusContext>
#include <QDBusArgument>
#include "dbus-interfaces.h"
#include "networkmanagerutils.h"
#include "wirednetworkdevice.h"
#include "wirelessnetworkdevice.h"
#include "networksettings.h"

View File

@ -0,0 +1,50 @@
#include "networkmanagerutils.h"
Q_LOGGING_CATEGORY(dcNetworkManager, "NetworkManager")
QString NetworkManagerUtils::NetworkManagerUtils::networkManagerServiceString()
{
return "org.freedesktop.NetworkManager";
}
QString NetworkManagerUtils::networkManagerPathString()
{
return "/org/freedesktop/NetworkManager";
}
QString NetworkManagerUtils::NetworkManagerUtils::settingsPathString()
{
return "/org/freedesktop/NetworkManager/Settings";
}
QString NetworkManagerUtils::NetworkManagerUtils::deviceInterfaceString()
{
return "org.freedesktop.NetworkManager.Device";
}
QString NetworkManagerUtils::NetworkManagerUtils::wirelessInterfaceString()
{
return "org.freedesktop.NetworkManager.Device.Wireless";
}
QString NetworkManagerUtils::NetworkManagerUtils::wiredInterfaceString()
{
return "org.freedesktop.NetworkManager.Device.Wired";
}
QString NetworkManagerUtils::NetworkManagerUtils::accessPointInterfaceString()
{
return "org.freedesktop.NetworkManager.AccessPoint";
}
QString NetworkManagerUtils::NetworkManagerUtils::settingsInterfaceString()
{
return "org.freedesktop.NetworkManager.Settings";
}
QString NetworkManagerUtils::connectionsInterfaceString()
{
return "org.freedesktop.NetworkManager.Settings.Connection";
}

View File

@ -0,0 +1,30 @@
#ifndef NETWORKMANAGERUTILS_H
#define NETWORKMANAGERUTILS_H
#include <QDebug>
#include <QObject>
#include <QString>
#include <QLoggingCategory>
Q_DECLARE_LOGGING_CATEGORY(dcNetworkManager)
class NetworkManagerUtils
{
Q_GADGET
public:
static QString networkManagerServiceString();
static QString networkManagerPathString();
static QString settingsPathString();
static QString deviceInterfaceString();
static QString wirelessInterfaceString();
static QString wiredInterfaceString();
static QString accessPointInterfaceString();
static QString settingsInterfaceString();
static QString connectionsInterfaceString();
};
#endif // NETWORKMANAGERUTILS_H

View File

@ -10,24 +10,24 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "networksettings.h"
#include "dbus-interfaces.h"
#include "networkmanagerutils.h"
#include <QDebug>
/*! Constructs a new \l{NetworkSettings} object with the given \a parent. */
NetworkSettings::NetworkSettings(QObject *parent) : QObject(parent)
{
m_settingsInterface = new QDBusInterface(networkManagerServiceString, settingsPathString, settingsInterfaceString, QDBusConnection::systemBus(), this);
m_settingsInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::settingsPathString(), NetworkManagerUtils::settingsInterfaceString(), QDBusConnection::systemBus(), this);
if(!m_settingsInterface->isValid()) {
qWarning() << "Invalid DBus network settings interface";
qCWarning(dcNetworkManager()) << "Invalid DBus network settings interface";
return;
}
loadConnections();
QDBusConnection::systemBus().connect(networkManagerServiceString, settingsPathString, settingsInterfaceString, "NewConnection", this, SLOT(connectionAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, settingsPathString, settingsInterfaceString, "ConnectionRemoved", this, SLOT(connectionRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, settingsPathString, settingsInterfaceString, "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::settingsPathString(), NetworkManagerUtils::settingsInterfaceString(), "NewConnection", this, SLOT(connectionAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::settingsPathString(), NetworkManagerUtils::settingsInterfaceString(), "ConnectionRemoved", this, SLOT(connectionRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::settingsPathString(), NetworkManagerUtils::settingsInterfaceString(), "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
}
/*! Add the given \a settings to this \l{NetworkSettings}. Returns the dbus object path from the new settings. */
@ -35,7 +35,7 @@ QDBusObjectPath NetworkSettings::addConnection(const ConnectionSettings &setting
{
QDBusMessage query = m_settingsInterface->call("AddConnection", QVariant::fromValue(settings));
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return QDBusObjectPath();
}
@ -55,7 +55,7 @@ void NetworkSettings::loadConnections()
{
QDBusMessage query = m_settingsInterface->call("ListConnections");
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return;
}
@ -77,18 +77,18 @@ void NetworkSettings::connectionAdded(const QDBusObjectPath &objectPath)
NetworkConnection *connection = new NetworkConnection(objectPath, this);
m_connections.insert(objectPath, connection);
qDebug() << "Settings: [+]" << connection;
qCDebug(dcNetworkManager()) << "Settings: [+]" << connection;
}
void NetworkSettings::connectionRemoved(const QDBusObjectPath &objectPath)
{
NetworkConnection *connection = m_connections.take(objectPath);
qDebug() << "Settings: [-]" << connection;
qCDebug(dcNetworkManager()) << "Settings: [-]" << connection;
connection->deleteLater();
}
void NetworkSettings::propertiesChanged(const QVariantMap &properties)
{
Q_UNUSED(properties);
//qDebug() << "Settins: properties changed" << properties;
//qCDebug(dcNetworkManager()) << "Settins: properties changed" << properties;
}

View File

@ -19,13 +19,13 @@ WiredNetworkDevice::WiredNetworkDevice(const QDBusObjectPath &objectPath, QObjec
{
QDBusConnection systemBus = QDBusConnection::systemBus();
if (!systemBus.isConnected()) {
qWarning() << "WiredNetworkDevice: System DBus not connected";
qCWarning(dcNetworkManager()) << "WiredNetworkDevice: System DBus not connected";
return;
}
m_wiredInterface = new QDBusInterface(networkManagerServiceString, this->objectPath().path(), wiredInterfaceString, systemBus, this);
m_wiredInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wiredInterfaceString(), systemBus, this);
if(!m_wiredInterface->isValid()) {
qWarning() << "WiredNetworkDevice: Invalid wired dbus interface";
qCWarning(dcNetworkManager()) << "WiredNetworkDevice: Invalid wired dbus interface";
return;
}
@ -33,7 +33,7 @@ WiredNetworkDevice::WiredNetworkDevice(const QDBusObjectPath &objectPath, QObjec
setBitRate(m_wiredInterface->property("Bitrate").toInt());
setPluggedIn(m_wiredInterface->property("Carrier").toBool());
QDBusConnection::systemBus().connect(networkManagerServiceString, this->objectPath().path(), wiredInterfaceString, "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wiredInterfaceString(), "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
}
/*! Returns the mac address of this \l{WiredNetworkDevice}. */

View File

@ -28,9 +28,7 @@
*/
#include "wirelessaccesspoint.h"
#include "dbus-interfaces.h"
#include <QDebug>
#include "networkmanagerutils.h"
/*! Constructs a new \l{WirelessAccessPoint} with the given dbus \a objectPath and \a parent. */
WirelessAccessPoint::WirelessAccessPoint(const QDBusObjectPath &objectPath, QObject *parent) :
@ -38,9 +36,9 @@ WirelessAccessPoint::WirelessAccessPoint(const QDBusObjectPath &objectPath, QObj
m_objectPath(objectPath),
m_securityFlags(0)
{
QDBusInterface accessPointInterface(networkManagerServiceString, m_objectPath.path(), accessPointInterfaceString, QDBusConnection::systemBus());
QDBusInterface accessPointInterface(NetworkManagerUtils::networkManagerServiceString(), m_objectPath.path(), NetworkManagerUtils::accessPointInterfaceString(), QDBusConnection::systemBus());
if(!accessPointInterface.isValid()) {
qWarning() << "Invalid access point dbus interface";
qCWarning(dcNetworkManager()) << "Invalid access point dbus interface";
return;
}
@ -52,7 +50,7 @@ WirelessAccessPoint::WirelessAccessPoint(const QDBusObjectPath &objectPath, QObj
setSecurityFlags(WirelessAccessPoint::ApSecurityModes(accessPointInterface.property("WpaFlags").toUInt()));
setIsProtected((bool)accessPointInterface.property("Flags").toUInt());
QDBusConnection::systemBus().connect(networkManagerServiceString, objectPath.path(), accessPointInterfaceString, "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), objectPath.path(), NetworkManagerUtils::accessPointInterfaceString(), "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
}
/*! Returns the dbus object path of this \l{WirelessAccessPoint}. */

View File

@ -20,7 +20,7 @@
*/
#include "dbus-interfaces.h"
#include "networkmanagerutils.h"
#include "wirelessnetworkdevice.h"
#include <QUuid>
@ -34,19 +34,19 @@ WirelessNetworkDevice::WirelessNetworkDevice(const QDBusObjectPath &objectPath,
{
QDBusConnection systemBus = QDBusConnection::systemBus();
if (!systemBus.isConnected()) {
qWarning() << "WirelessNetworkDevice: System DBus not connected";
qCWarning(dcNetworkManager()) << "WirelessNetworkDevice: System DBus not connected";
return;
}
m_wirelessInterface = new QDBusInterface(networkManagerServiceString, this->objectPath().path(), wirelessInterfaceString, systemBus, this);
m_wirelessInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wirelessInterfaceString(), systemBus, this);
if (!m_wirelessInterface->isValid()) {
qWarning() << "WirelessNetworkDevice: Invalid wireless dbus interface";
qCWarning(dcNetworkManager()) << "WirelessNetworkDevice: Invalid wireless dbus interface";
return;
}
QDBusConnection::systemBus().connect(networkManagerServiceString, this->objectPath().path(), wirelessInterfaceString, "AccessPointAdded", this, SLOT(accessPointAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, this->objectPath().path(), wirelessInterfaceString, "AccessPointRemoved", this, SLOT(accessPointRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(networkManagerServiceString, this->objectPath().path(), wirelessInterfaceString, "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wirelessInterfaceString(), "AccessPointAdded", this, SLOT(accessPointAdded(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wirelessInterfaceString(), "AccessPointRemoved", this, SLOT(accessPointRemoved(QDBusObjectPath)));
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), this->objectPath().path(), NetworkManagerUtils::wirelessInterfaceString(), "PropertiesChanged", this, SLOT(propertiesChanged(QVariantMap)));
readAccessPoints();
@ -76,10 +76,10 @@ WirelessAccessPoint *WirelessNetworkDevice::activeAccessPoint()
/*! Perform a wireless network scan on this \l{WirelessNetworkDevice}. */
void WirelessNetworkDevice::scanWirelessNetworks()
{
qDebug() << this << "Request scan";
qCDebug(dcNetworkManager()) << this << "Request scan";
QDBusMessage query = m_wirelessInterface->call("RequestScan", QVariantMap());
if (query.type() != QDBusMessage::ReplyMessage) {
qWarning() << "Scan error:" << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << "Scan error:" << query.errorName() << query.errorMessage();
return;
}
}
@ -110,7 +110,7 @@ void WirelessNetworkDevice::readAccessPoints()
{
QDBusMessage query = m_wirelessInterface->call("GetAccessPoints");
if(query.type() != QDBusMessage::ReplyMessage) {
qWarning() << query.errorName() << query.errorMessage();
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
return;
}
@ -160,19 +160,19 @@ void WirelessNetworkDevice::setActiveAccessPoint(const QDBusObjectPath &activeAc
void WirelessNetworkDevice::accessPointAdded(const QDBusObjectPath &objectPath)
{
QDBusInterface accessPointInterface(networkManagerServiceString, objectPath.path(), accessPointInterfaceString, QDBusConnection::systemBus());
QDBusInterface accessPointInterface(NetworkManagerUtils::networkManagerServiceString(), objectPath.path(), NetworkManagerUtils::accessPointInterfaceString(), QDBusConnection::systemBus());
if (!accessPointInterface.isValid()) {
qWarning() << "WirelessNetworkDevice: Invalid access point dbus interface";
qCWarning(dcNetworkManager()) << "WirelessNetworkDevice: Invalid access point dbus interface";
return;
}
if (m_accessPointsTable.keys().contains(objectPath)) {
qWarning() << "WirelessNetworkDevice: Access point already added" << objectPath.path();
qCWarning(dcNetworkManager()) << "WirelessNetworkDevice: Access point already added" << objectPath.path();
return;
}
WirelessAccessPoint *accessPoint = new WirelessAccessPoint(objectPath, this);
//qDebug() << "WirelessNetworkDevice: [+]" << accessPoint;
//qCDebug(dcNetworkManager()) << "WirelessNetworkDevice: [+]" << accessPoint;
m_accessPointsTable.insert(objectPath, accessPoint);
}
@ -185,13 +185,13 @@ void WirelessNetworkDevice::accessPointRemoved(const QDBusObjectPath &objectPath
if (accessPoint == m_activeAccessPoint)
m_activeAccessPoint = Q_NULLPTR;
//qDebug() << "WirelessNetworkDevice: [-]" << accessPoint;
//qCDebug(dcNetworkManager()) << "WirelessNetworkDevice: [-]" << accessPoint;
accessPoint->deleteLater();
}
void WirelessNetworkDevice::propertiesChanged(const QVariantMap &properties)
{
//qDebug() << "WirelessNetworkDevice: Property changed" << properties;
//qCDebug(dcNetworkManager()) << "WirelessNetworkDevice: Property changed" << properties;
if (properties.contains("Bitrate"))
setBitrate(properties.value("Bitrate").toInt());

View File

@ -10,8 +10,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "bluetoothserver.h"
#include "loggingcategory.h"
#include "loopd.h"
#include "loggingcategories.h"
#include "bluetoothuuids.h"
#include <QJsonDocument>
@ -30,7 +29,7 @@ BluetoothServer::BluetoothServer(const QString &machineId, QObject *parent) :
BluetoothServer::~BluetoothServer()
{
qCDebug(dcLoopd()) << "Destroy bluetooth server.";
qCDebug(dcBluetoothServer()) << "Destroy bluetooth server.";
if (m_controller)
m_controller->stopAdvertising();
@ -81,21 +80,12 @@ QLowEnergyServiceData BluetoothServer::deviceInformationServiceData()
hardwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
serviceData.addCharacteristic(hardwareRevisionCharData);
#ifdef SNAPPY
// Software revision string 0x2a28
QLowEnergyCharacteristicData softwareRevisionCharData;
softwareRevisionCharData.setUuid(QBluetoothUuid::SoftwareRevisionString);
softwareRevisionCharData.setValue(qgetenv("SNAP_VERSION"));
softwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
serviceData.addCharacteristic(softwareRevisionCharData);
#else
// Software revision string 0x2a28
QLowEnergyCharacteristicData softwareRevisionCharData;
softwareRevisionCharData.setUuid(QBluetoothUuid::SoftwareRevisionString);
softwareRevisionCharData.setValue(QCoreApplication::applicationVersion().toUtf8());
softwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
serviceData.addCharacteristic(softwareRevisionCharData);
#endif
// Manufacturer name string 0x2a29
QLowEnergyCharacteristicData manufacturerNameCharData;

View File

@ -30,7 +30,7 @@
#include "networkservice.h"
#include "wirelessservice.h"
#include "systemservice.h"
#include "networkmanager/networkmanager.h"
#include "networkmanager.h"
class BluetoothServer : public QObject
{

View File

@ -0,0 +1,4 @@
#include "loggingcategories.h"
Q_LOGGING_CATEGORY(dcBluetoothServer, "BluetoothServer")
Q_LOGGING_CATEGORY(dcNymeaService, "NymeaService")

View File

@ -0,0 +1,10 @@
#ifndef LOGGINGCATEGORIES_H
#define LOGGINGCATEGORIES_H
#include <QDebug>
#include <QLoggingCategory>
Q_DECLARE_LOGGING_CATEGORY(dcBluetoothServer)
Q_DECLARE_LOGGING_CATEGORY(dcNymeaService)
#endif // LOGGINGCATEGORIES_H

View File

@ -11,8 +11,7 @@
#include "networkservice.h"
#include "bluetoothuuids.h"
#include "loggingcategory.h"
#include "loopd.h"
#include "loggingcategories.h"
#include <QLowEnergyDescriptorData>
#include <QLowEnergyCharacteristicData>

View File

@ -16,7 +16,7 @@
#include <QLowEnergyService>
#include <QLowEnergyServiceData>
#include "networkmanager/networkmanager.h"
#include "networkmanager.h"
class NetworkService : public QObject
{

View File

@ -11,8 +11,7 @@
#include "wirelessservice.h"
#include "bluetoothuuids.h"
#include "loggingcategory.h"
#include "loopd.h"
#include "loggingcategories.h"
#include <QJsonDocument>
#include <QNetworkInterface>

View File

@ -1,11 +1,21 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright (C) 2016 Simon Stürz <simon.stuerz@guh.io> *
* Copyright (C) 2018 Simon Stürz <simon.stuerz@guh.io> *
* *
* This file is part of loopd. *
* This file is part of nymea-networkmanager. *
* *
* Loopd can not be copied and/or distributed without the express *
* permission of guh GmbH. *
* nymea-networkmanager is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, *
* or (at your option) any later version. *
* *
* nymea-networkmanager is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License along *
* with nymea-networkmanager. If not, see <http://www.gnu.org/licenses/>. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@ -17,8 +27,8 @@
#include <QLowEnergyService>
#include <QLowEnergyServiceData>
#include "networkmanager/wirelessnetworkdevice.h"
#include "networkmanager/wirelessaccesspoint.h"
#include "wirelessnetworkdevice.h"
#include "wirelessaccesspoint.h"
class WirelessService : public QObject
{

View File

@ -14,14 +14,12 @@ void Core::destroy()
{
if (s_instance)
delete s_instance;
s_instance = 0;
}
Core::Core(QObject *parent) :
QObject(parent)
{
m_networkManager = new NetworkManager(this);

View File

@ -1,12 +1,96 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright (C) 2018 Simon Stürz <simon.stuerz@guh.io> *
* *
* This file is part of nymea-networkmanager. *
* *
* nymea-networkmanager is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, *
* or (at your option) any later version. *
* *
* nymea-networkmanager is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License along *
* with nymea-networkmanager. If not, see <http://www.gnu.org/licenses/>. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <QCoreApplication>
#include <QLoggingCategory>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include "core.h"
static const char *const normal = "\033[0m";
static const char *const warning = "\e[33m";
static const char *const error = "\e[31m";
static QHash<QString, bool> s_loggingFilters;
static void loggingCategoryFilter(QLoggingCategory *category)
{
// If this is a known category
if (s_loggingFilters.contains(category->categoryName())) {
category->setEnabled(QtDebugMsg, s_loggingFilters.value(category->categoryName()));
category->setEnabled(QtWarningMsg, true);
category->setEnabled(QtCriticalMsg, true);
category->setEnabled(QtFatalMsg, true);
} else {
//Disable default debug messages, print only >= warnings
category->setEnabled(QtDebugMsg, false);
category->setEnabled(QtWarningMsg, true);
category->setEnabled(QtCriticalMsg, true);
category->setEnabled(QtFatalMsg, true);
}
}
static void consoleLogHandler(QtMsgType type, const QMessageLogContext& context, const QString& message)
{
switch (type) {
case QtInfoMsg:
fprintf(stdout, " I | %s: %s\n", context.category, message.toUtf8().data());
break;
case QtDebugMsg:
fprintf(stdout, " I | %s: %s\n", context.category, message.toUtf8().data());
break;
case QtWarningMsg:
fprintf(stdout, "%s W | %s: %s%s\n", warning, context.category, message.toUtf8().data(), normal);
break;
case QtCriticalMsg:
fprintf(stdout, "%s C | %s: %s%s\n", error, context.category, message.toUtf8().data(), normal);
break;
case QtFatalMsg:
fprintf(stdout, "%s F | %s: %s%s\n", error, context.category, message.toUtf8().data(), normal);
break;
}
fflush(stdout);
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qInstallMessageHandler(consoleLogHandler);
QCoreApplication application(argc, argv);
application.setApplicationName("loopd");
application.setOrganizationName("guh");
application.setApplicationVersion("0.0.1");
// Command line parser
QCommandLineParser parser;
parser.addHelpOption();
parser.addVersionOption();
parser.setApplicationDescription(QString("\nThis daemon allows to configure a wifi network with a bluetooth low energy connection.\n\nCopyright %1 2018 Simon Stürz <simon.stuerz@guh.io>").arg(QChar(0xA9)));
parser.process(application);
Core::instance();
return a.exec();
return application.exec();
}

View File

@ -19,6 +19,7 @@ HEADERS += \
bluetooth/networkservice.h \
bluetooth/bluetoothuuids.h \
bluetooth/wirelessservice.h \
bluetooth/loggingcategories.h
SOURCES += \
main.cpp \
@ -26,6 +27,7 @@ SOURCES += \
bluetooth/bluetoothserver.cpp \
bluetooth/networkservice.cpp \
bluetooth/wirelessservice.cpp \
bluetooth/loggingcategories.cpp
target.path = /usr/bin
INSTALLS += target