diff options
author | Andrew Christian <andrew.christian@nokia.com> | 2012-02-16 06:32:38 -0500 |
---|---|---|
committer | Alexei Rousskikh <ext-alexei.rousskikh@nokia.com> | 2012-02-16 15:22:30 +0100 |
commit | 52adfd8d4a70372f59b03e3da5750cda1f561fc1 (patch) | |
tree | 00969237f99e48b56c110271d477462506259e00 | |
parent | 883d1eb8b4c2203e06cba92e7368defd83241c31 (diff) |
Changed uid_t to int to work better with QML
Change-Id: I77a38355ad1d12f9f7ff5a8a9e2ae9cab3efc722
Reviewed-by: Alexei Rousskikh <ext-alexei.rousskikh@nokia.com>
-rw-r--r-- | src/jsonuidrangeauthority.cpp | 23 | ||||
-rw-r--r-- | src/jsonuidrangeauthority.h | 16 |
2 files changed, 21 insertions, 18 deletions
diff --git a/src/jsonuidrangeauthority.cpp b/src/jsonuidrangeauthority.cpp index 14fbfa9..0530b2c 100644 --- a/src/jsonuidrangeauthority.cpp +++ b/src/jsonuidrangeauthority.cpp @@ -59,13 +59,16 @@ QT_BEGIN_NAMESPACE_JSONSTREAM The JsonUIDRangeAuthority class authorizes Json client connections based on the user ID of the client. This user ID is read directly from the connected socket. The authorized range - is set with a minimum and maximum value. Initially these values are set to minimum=1 and - maximum=0. The range is inclusive; that is, to be authorized the client - must satisfy "minimum <= uid <= maximum". + is set with a minimum and maximum value. The range is inclusive; that is, to be authorized the client + must satisfy "minimum <= uid <= maximum". Initially the range is not set; you must set both + minimum and maximum, or all clients will be refused. The name returned by the JsonUIDRangeAuthority class is the name entry in the /etc/passwd database. If a name entry does not exist, the JsonUIDRangeAuthority class sets the name equal to the string form of the uid. + + Please note that actual Posix uid_t values are unsigned integers. In theory this means that + we will get into trouble if someone has a UID value greater than about 2000000000. */ /*! @@ -74,8 +77,8 @@ QT_BEGIN_NAMESPACE_JSONSTREAM JsonUIDRangeAuthority::JsonUIDRangeAuthority(QObject *parent) : JsonAuthority(parent) - , m_minimum(1) - , m_maximum(0) + , m_minimum(-1) + , m_maximum(-1) { } @@ -83,7 +86,7 @@ JsonUIDRangeAuthority::JsonUIDRangeAuthority(QObject *parent) Return the minimum value */ -uid_t JsonUIDRangeAuthority::minimum() const +int JsonUIDRangeAuthority::minimum() const { return m_minimum; } @@ -92,7 +95,7 @@ uid_t JsonUIDRangeAuthority::minimum() const Set the minimum value to \a minimum. */ -void JsonUIDRangeAuthority::setMinimum(uid_t minimum) +void JsonUIDRangeAuthority::setMinimum(int minimum) { if (m_minimum != minimum) { m_minimum = minimum; @@ -104,7 +107,7 @@ void JsonUIDRangeAuthority::setMinimum(uid_t minimum) Return the maximum value */ -uid_t JsonUIDRangeAuthority::maximum() const +int JsonUIDRangeAuthority::maximum() const { return m_maximum; } @@ -113,7 +116,7 @@ uid_t JsonUIDRangeAuthority::maximum() const Set the maximum value to \a maximum. */ -void JsonUIDRangeAuthority::setMaximum(uid_t maximum) +void JsonUIDRangeAuthority::setMaximum(int maximum) { if (m_maximum != maximum) { m_maximum = maximum; @@ -163,7 +166,7 @@ AuthorizationRecord JsonUIDRangeAuthority::clientConnected(JsonStream *stream) euid = cr.uid; #endif - if (euid >= m_minimum && euid <= m_maximum) { + if (m_minimum >= 0 && m_maximum >= 0 && euid >= (uid_t) m_minimum && euid <= (uid_t) m_maximum) { struct passwd *passwd = getpwuid(euid); if (passwd) authRecord.identifier = QString::fromLatin1(passwd->pw_name); diff --git a/src/jsonuidrangeauthority.h b/src/jsonuidrangeauthority.h index 2622c2a..8bd139a 100644 --- a/src/jsonuidrangeauthority.h +++ b/src/jsonuidrangeauthority.h @@ -53,17 +53,17 @@ QT_BEGIN_NAMESPACE_JSONSTREAM class Q_ADDON_JSONSTREAM_EXPORT JsonUIDRangeAuthority : public JsonAuthority { Q_OBJECT - Q_PROPERTY(uid_t minimum READ minimum WRITE setMinimum NOTIFY minimumChanged) - Q_PROPERTY(uid_t maximum READ maximum WRITE setMaximum NOTIFY maximumChanged) + Q_PROPERTY(int minimum READ minimum WRITE setMinimum NOTIFY minimumChanged) + Q_PROPERTY(int maximum READ maximum WRITE setMaximum NOTIFY maximumChanged) public: JsonUIDRangeAuthority(QObject *parent = 0); - uid_t minimum() const; - void setMinimum(uid_t); + int minimum() const; + void setMinimum(int); - uid_t maximum() const; - void setMaximum(uid_t); + int maximum() const; + void setMaximum(int); virtual AuthorizationRecord clientConnected(JsonStream *stream); virtual AuthorizationRecord messageReceived(JsonStream *stream, const QJsonObject &message); @@ -73,8 +73,8 @@ signals: void maximumChanged(); private: - uid_t m_minimum; - uid_t m_maximum; + int m_minimum; + int m_maximum; }; QT_END_NAMESPACE_JSONSTREAM |