summaryrefslogtreecommitdiff
path: root/library/networkinterface.cpp
Side-by-side diff
Diffstat (limited to 'library/networkinterface.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/networkinterface.cpp104
1 files changed, 104 insertions, 0 deletions
diff --git a/library/networkinterface.cpp b/library/networkinterface.cpp
new file mode 100644
index 0000000..56a0e5b
--- a/dev/null
+++ b/library/networkinterface.cpp
@@ -0,0 +1,104 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia 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.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#include "networkinterface.h"
+#include "network.h"
+#include "config.h"
+#include <stdio.h>
+
+QString NetworkInterface::device( Config& cfg ) const
+{
+ return cfg.readEntry("Device");
+}
+
+bool NetworkInterface::isActive( Config& cfg ) const
+{
+ QString dev = device(cfg);
+ if ( dev.isEmpty() )
+ return FALSE;
+ QString dev0 = dev+'0';
+
+ FILE* f;
+ f = fopen("/proc/net/dev", "r");
+ if ( f ) {
+ char line[1024];
+ char devname[80];
+ while ( fgets( line, 1024, f ) ) {
+ if ( sscanf(line," %[^:]:", devname)==1 )
+ {
+ if ( devname == dev || devname == dev0 ) {
+ fclose(f);
+ Network::writeProxySettings( cfg );
+ return TRUE;
+ }
+ }
+ }
+ fclose(f);
+ }
+ return FALSE;
+}
+
+QString NetworkInterface::cardType( Config& cfg ) const
+{
+ return cfg.readEntry("CardType");
+}
+
+bool NetworkInterface::isAvailable( Config& cfg ) const
+{
+ QString ct = cardType(cfg);
+ if ( ct.isEmpty() )
+ return FALSE;
+
+ FILE* f = fopen("/var/run/stab", "r");
+ if (!f) f = fopen("/var/state/pcmcia/stab", "r");
+ if (!f) f = fopen("/var/lib/pcmcia/stab", "r");
+
+ if ( f ) {
+ char line[1024];
+ char devtype[80];
+ while ( fgets( line, 1024, f ) ) {
+ if ( sscanf(line,"%*d %s %*s", devtype )==1 )
+ {
+ if ( ct == devtype ) {
+ fclose(f);
+ return TRUE;
+ }
+ }
+ }
+ fclose(f);
+ }
+
+ return FALSE;
+}
+
+bool NetworkInterface::start( Config& cfg, const QString& /*password*/ )
+{
+ return start(cfg);
+}
+
+bool NetworkInterface::needPassword( Config& ) const
+{
+ return FALSE;
+}
+
+QWidget* NetworkInterface::addStateWidget( QWidget*, Config& ) const
+{
+ return 0;
+}