summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-29 16:00:45 (UTC)
committer sandman <sandman>2002-10-29 16:00:45 (UTC)
commite63cecc3821eda0cb3ace99479112d68bdc023e6 (patch) (side-by-side diff)
treee01de4d0ecc3f392dd7a67bec2b3d5a968a85c13
parent5ca0a08f9f27391370b291df28b3de71db3bb175 (diff)
downloadopie-e63cecc3821eda0cb3ace99479112d68bdc023e6.zip
opie-e63cecc3821eda0cb3ace99479112d68bdc023e6.tar.gz
opie-e63cecc3821eda0cb3ace99479112d68bdc023e6.tar.bz2
- fix to scan /proc/mounts and not /etc/mtab for changes (this works on
systems where /etc/mtab is symlinked to proc, but fails on familiar)
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/stabmon.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/launcher/stabmon.cpp b/core/launcher/stabmon.cpp
index 2911a1c..3d0d534 100644
--- a/core/launcher/stabmon.cpp
+++ b/core/launcher/stabmon.cpp
@@ -1,92 +1,92 @@
/**********************************************************************
** 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 "stabmon.h"
#include <qpe/qcopenvelope_qws.h>
#include <qfile.h>
#include <qcstring.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
SysFileMonitor::SysFileMonitor(QObject* parent) :
QObject(parent)
{
startTimer(2000);
}
const char * stab0 = "/var/run/stab";
const char * stab1 = "/var/state/pcmcia/stab";
const char * stab2 = "/var/lib/pcmcia/stab";
void SysFileMonitor::timerEvent(QTimerEvent*)
{
struct stat s;
static const char * tab [] = {
stab0,
stab1,
stab2
};
static const int nstab = sizeof(tab)/sizeof(const char *);
static int last[nstab];
bool ch = FALSE;
for ( int i=0; i<nstab; i++ ) {
if ( ::stat(tab[i], &s)==0 && (long)s.st_mtime != last[i] ) {
last[i] = (long)s.st_mtime;
ch=TRUE;
}
if ( ch ) {
QCopEnvelope("QPE/Card", "stabChanged()" );
break;
}
}
// st_size is no use, it's 0 for /proc/mounts too. Read it all.
static int mtabSize = 0;
- QFile f( "/etc/mtab" );
+ QFile f( "/proc/mounts" );
if ( f.open(IO_ReadOnly) ) {
#if 0
// readAll does not work correctly on sequential devices (as eg. /proc files)
QByteArray ba = f.readAll();
if ( (int)ba.size() != mtabSize ) {
mtabSize = (int)ba.size();
QCopEnvelope("QPE/Card", "mtabChanged()" );
}
#else
QString s;
while( !f.atEnd() ) {
QString tmp;
f.readLine( tmp, 1024 );
s += tmp;
}
if ( (int)s.length() != mtabSize ) {
mtabSize = (int)s.length();
QCopEnvelope("QPE/Card", "mtabChanged()" );
}
#endif
}
}