Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ssu
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
mer-core
ssu
Commits
989d1d68
Commit
989d1d68
authored
Mar 17, 2015
by
Thomas Perl
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #43 from kananoja/master
[ssu] Use Wlan MAC address as the device UID if IMEI is not found.
parents
218b3536
dc1c3349
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
20 deletions
+48
-20
libssu/ssudeviceinfo.cpp
libssu/ssudeviceinfo.cpp
+46
-19
libssu/ssudeviceinfo.h
libssu/ssudeviceinfo.h
+2
-1
No files found.
libssu/ssudeviceinfo.cpp
View file @
989d1d68
...
...
@@ -281,11 +281,43 @@ ofonoGetImeis()
return
result
;
}
static
QStringList
getWlanMacs
()
{
// Based on QtSystems' qnetworkinfo_linux.cpp
QStringList
result
;
QStringList
dirs
=
QDir
(
QLatin1String
(
"/sys/class/net/"
))
.
entryList
(
QStringList
()
<<
QLatin1String
(
"wlan*"
));
foreach
(
const
QString
&
dir
,
dirs
)
{
QFile
carrier
(
QString
(
"/sys/class/net/%1/address"
).
arg
(
dir
));
if
(
carrier
.
open
(
QIODevice
::
ReadOnly
))
{
result
.
append
(
QString
::
fromLatin1
(
carrier
.
readAll
().
simplified
().
data
()));
}
}
return
result
;
}
static
QString
normalizeUid
(
const
QString
&
uid
)
{
// Normalize by stripping colons, dashes and making it lowercase
return
uid
.
trimmed
().
replace
(
":"
,
""
).
replace
(
"-"
,
""
).
toLower
();
}
QString
SsuDeviceInfo
::
deviceUid
(){
SsuLog
*
ssuLog
=
SsuLog
::
instance
();
QStringList
imeis
=
ofonoGetImeis
();
if
(
imeis
.
size
()
>
0
)
{
return
imeis
[
0
];
}
QStringList
wlanMacs
=
getWlanMacs
();
if
(
wlanMacs
.
size
()
>
0
)
{
return
normalizeUid
(
wlanMacs
[
0
]);
}
if
(
imeis
.
size
()
==
0
)
{
qWarning
()
<<
"Could not get IMEI(s) from ofono, trying fallback"
;
ssuLog
->
print
(
LOG_WARNING
,
"Could not get IMEI(s) from ofono, nor WLAN mac, trying fallback"
);
// The fallback list is taken from QtSystems' qdeviceinfo_linux.cpp
QStringList
fallbackFiles
;
...
...
@@ -298,17 +330,12 @@ QString SsuDeviceInfo::deviceUid(){
QFile
machineId
(
filename
);
if
(
machineId
.
open
(
QFile
::
ReadOnly
|
QFile
::
Text
))
{
QTextStream
in
(
&
machineId
);
// Normalize by stripping colons, dashes and making it lowercase
return
in
.
readAll
().
trimmed
().
replace
(
":"
,
""
).
replace
(
"-"
,
""
).
toLower
();
return
normalizeUid
(
in
.
readAll
());
}
}
qCritical
()
<<
"Could not read fallback UID - returning empty string"
;
ssuLog
->
print
(
LOG_CRIT
,
"Could not read fallback UID - returning empty string"
)
;
return
""
;
}
return
imeis
[
0
];
}
QStringList
SsuDeviceInfo
::
disabledRepos
(){
...
...
libssu/ssudeviceinfo.h
View file @
989d1d68
...
...
@@ -54,7 +54,8 @@ class SsuDeviceInfo: public QObject {
Q_INVOKABLE
QString
deviceModel
();
/**
* Calculate the device ID used in ssu requests
* @return QSystemDeviceInfo::imei(), if available, or QSystemDeviceInfo::uniqueDeviceID()
* @return QSystemDeviceInfo::imei(), if available, or QNetworkInfo::macAddress(QNetworkInfo::WlanMode, 0),
* if available, or QSystemDeviceInfo::uniqueDeviceID()
*/
Q_INVOKABLE
QString
deviceUid
();
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment