diff options
Diffstat (limited to 'src/datasource/networkspeed.cpp')
-rw-r--r-- | src/datasource/networkspeed.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/datasource/networkspeed.cpp b/src/datasource/networkspeed.cpp index 8888fd4..451c97e 100644 --- a/src/datasource/networkspeed.cpp +++ b/src/datasource/networkspeed.cpp @@ -3,26 +3,38 @@ NetworkSpeed::NetworkSpeed() : _lastBytes(0), _lastMs(0), - _file("/sys/class/net/eth0/statistics/rx_bytes") + _file(nullptr) { - _timer.start(); + for (QString s : QStringList() + << "/sys/class/net/boot0/statistics/rx_bytes" + << "/sys/class/net/eth0/statistics/rx_bytes" + << "/sys/class/net/br0/statistics/rx_bytes") { + if (!QFile::exists(s)) + continue; + _file = new QFile(s); + } + if (_file != nullptr) { + _timer.start(); + } } NetworkSpeed::~NetworkSpeed() { - // TODO Auto-generated destructor stub + if (_file != nullptr) { + _file->deleteLater(); + } } qint64 NetworkSpeed::read() { char buffer[500]; qint64 ret, now; - if (!_file.open(QIODevice::ReadOnly)) { + if (_file == nullptr || !_file->open(QIODevice::ReadOnly)) { return -1; } now = _timer.elapsed(); - _file.readLine(buffer, sizeof(buffer)); - _file.close(); + _file->readLine(buffer, sizeof(buffer)); + _file->close(); QString line(buffer); const qint64 counter = (qint64)line.toLongLong(); if (_lastBytes == 0) { |