author | zecke <zecke> | 2002-09-06 21:35:13 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-09-06 21:35:13 (UTC) |
commit | e95e14f056ce6be658a4fd0d4737168431e92d88 (patch) (side-by-side diff) | |
tree | 732f0a69b2063dc6c54444486223fd99879da72c /core/launcher/transferserver.cpp | |
parent | 5536f65e60b3c662d2da3636e617faaad02522db (diff) | |
download | opie-e95e14f056ce6be658a4fd0d4737168431e92d88.zip opie-e95e14f056ce6be658a4fd0d4737168431e92d88.tar.gz opie-e95e14f056ce6be658a4fd0d4737168431e92d88.tar.bz2 |
Remove the libuuid dependency for Linux targets...
Diffstat (limited to 'core/launcher/transferserver.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/launcher/transferserver.cpp | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp index 9d18b7b..a20df2f 100644 --- a/core/launcher/transferserver.cpp +++ b/core/launcher/transferserver.cpp @@ -16,29 +16,33 @@ ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #define _XOPEN_SOURCE #include <pwd.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <time.h> #include <shadow.h> +#ifndef _OS_LINUX_ + extern "C" { #include <uuid/uuid.h> #define UUID_H_INCLUDED } +#endif // not defined linux + #if defined(_OS_LINUX_) #include <shadow.h> #endif #include <qdir.h> #include <qfile.h> #include <qtextstream.h> #include <qdatastream.h> #include <qmessagebox.h> #include <qstringlist.h> #include <qfileinfo.h> #include <qregexp.h> @@ -67,33 +71,64 @@ TransferServer::TransferServer( Q_UINT16 port, QObject *parent , } TransferServer::~TransferServer() { } void TransferServer::newConnection( int socket ) { (void) new ServerPI( socket, this ); } +/* + * small class in anonymous namespace + * to generate a QUUid for us + */ +namespace { + struct UidGen { + QString uuid(); + }; +#if defined(_OS_LINUX_) + /* + * linux got a /proc/sys/kernel/random/uuid file + * it'll generate the uuids for us + */ + QString UidGen::uuid() { + QFile file( "/proc/sys/kernel/random/uuid" ); + if (!file.open(IO_ReadOnly ) ) + return QString::null; + + QTextStream stream(&file); + + return "{" + stream.read().stripWhiteSpace() + "}"; + } +#else + QString UidGen::uuid() { + uuid_t uuid; + uuid_generate( uuid ); + return QUUid( uuid ).toString(); + } +#endif +} + QString SyncAuthentication::serverId() { Config cfg("Security"); cfg.setGroup("Sync"); QString r=cfg.readEntry("serverid"); if ( r.isEmpty() ) { - uuid_t uuid; - uuid_generate( uuid ); - cfg.writeEntry("serverid",(r = QUuid( uuid ).toString())); + UidGen gen; + r = gen.uuid(); + cfg.writeEntry("serverid", r ); } return r; } QString SyncAuthentication::ownerName() { QString vfilename = Global::applicationFileName("addressbook", "businesscard.vcf"); if (QFile::exists(vfilename)) { Contact c; c = Contact::readVCard( vfilename )[0]; return c.fullName(); |