summaryrefslogtreecommitdiff
path: root/libopie2/opienet/omanufacturerdb.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opienet/omanufacturerdb.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/omanufacturerdb.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/libopie2/opienet/omanufacturerdb.cpp b/libopie2/opienet/omanufacturerdb.cpp
new file mode 100644
index 0000000..ea15125
--- a/dev/null
+++ b/libopie2/opienet/omanufacturerdb.cpp
@@ -0,0 +1,96 @@
+/**********************************************************************
+** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
+**
+** This file is part of Opie Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#include "omanufacturerdb.h"
+
+// Qt
+#include <qstring.h>
+#include <qfile.h>
+#include <qtextstream.h>
+
+OManufacturerDB* OManufacturerDB::_instance = 0;
+
+OManufacturerDB* OManufacturerDB::instance()
+{
+ if ( !OManufacturerDB::_instance )
+ {
+ qDebug( "OManufacturerDB::instance(): creating OManufacturerDB..." );
+ _instance = new OManufacturerDB();
+ }
+ return _instance;
+}
+
+
+OManufacturerDB::OManufacturerDB()
+{
+ QString filename( "/etc/manufacturers" );
+ qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename );
+ if ( !QFile::exists( filename ) )
+ {
+ filename = "/opt/QtPalmtop/etc/manufacturers";
+ qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename );
+ if ( !QFile::exists( filename ) )
+ {
+ filename = "/usr/share/wellenreiter/manufacturers";
+ qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename );
+ }
+ }
+
+ QFile file( filename );
+ bool hasFile = file.open( IO_ReadOnly );
+ if (!hasFile)
+ {
+ qWarning( "OManufacturerDB: no valid manufacturer list found.", (const char*) filename );
+ }
+ else
+ {
+ qDebug( "OManufacturerDB: found manufacturer list in '%s'...", (const char*) filename );
+ QTextStream s( &file );
+ QString addr;
+ QString manu;
+ while (!s.atEnd())
+ {
+ s >> addr;
+ if ( !addr ) // read nothing!?
+ {
+ continue;
+ }
+ else
+ if ( addr[0] == '#' )
+ {
+ s.readLine();
+ continue;
+ }
+ s.skipWhiteSpace();
+ s >> manu;
+ s.readLine();
+ //qDebug( "ManufacturerDB: read pair %s, %s", (const char*) addr, (const char*) manu );
+ manufacturers.insert( addr, manu );
+
+ }
+ }
+
+}
+
+
+OManufacturerDB::~OManufacturerDB()
+{
+}
+
+
+const QString& OManufacturerDB::lookup( const QString& macaddr ) const
+{
+ return manufacturers[macaddr.upper().left(8)];
+}