author | sandman <sandman> | 2002-10-29 16:00:45 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-10-29 16:00:45 (UTC) |
commit | e63cecc3821eda0cb3ace99479112d68bdc023e6 (patch) (unidiff) | |
tree | e01de4d0ecc3f392dd7a67bec2b3d5a968a85c13 | |
parent | 5ca0a08f9f27391370b291df28b3de71db3bb175 (diff) | |
download | opie-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)
-rw-r--r-- | core/launcher/stabmon.cpp | 2 |
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 | |||
@@ -45,48 +45,48 @@ void SysFileMonitor::timerEvent(QTimerEvent*) | |||
45 | struct stat s; | 45 | struct stat s; |
46 | 46 | ||
47 | static const char * tab [] = { | 47 | static const char * tab [] = { |
48 | stab0, | 48 | stab0, |
49 | stab1, | 49 | stab1, |
50 | stab2 | 50 | stab2 |
51 | }; | 51 | }; |
52 | static const int nstab = sizeof(tab)/sizeof(const char *); | 52 | static const int nstab = sizeof(tab)/sizeof(const char *); |
53 | static int last[nstab]; | 53 | static int last[nstab]; |
54 | 54 | ||
55 | bool ch = FALSE; | 55 | bool ch = FALSE; |
56 | for ( int i=0; i<nstab; i++ ) { | 56 | for ( int i=0; i<nstab; i++ ) { |
57 | if ( ::stat(tab[i], &s)==0 && (long)s.st_mtime != last[i] ) { | 57 | if ( ::stat(tab[i], &s)==0 && (long)s.st_mtime != last[i] ) { |
58 | last[i] = (long)s.st_mtime; | 58 | last[i] = (long)s.st_mtime; |
59 | ch=TRUE; | 59 | ch=TRUE; |
60 | } | 60 | } |
61 | if ( ch ) { | 61 | if ( ch ) { |
62 | QCopEnvelope("QPE/Card", "stabChanged()" ); | 62 | QCopEnvelope("QPE/Card", "stabChanged()" ); |
63 | break; | 63 | break; |
64 | } | 64 | } |
65 | } | 65 | } |
66 | 66 | ||
67 | // st_size is no use, it's 0 for /proc/mounts too. Read it all. | 67 | // st_size is no use, it's 0 for /proc/mounts too. Read it all. |
68 | static int mtabSize = 0; | 68 | static int mtabSize = 0; |
69 | QFile f( "/etc/mtab" ); | 69 | QFile f( "/proc/mounts" ); |
70 | if ( f.open(IO_ReadOnly) ) { | 70 | if ( f.open(IO_ReadOnly) ) { |
71 | #if 0 | 71 | #if 0 |
72 | // readAll does not work correctly on sequential devices (as eg. /proc files) | 72 | // readAll does not work correctly on sequential devices (as eg. /proc files) |
73 | QByteArray ba = f.readAll(); | 73 | QByteArray ba = f.readAll(); |
74 | if ( (int)ba.size() != mtabSize ) { | 74 | if ( (int)ba.size() != mtabSize ) { |
75 | mtabSize = (int)ba.size(); | 75 | mtabSize = (int)ba.size(); |
76 | QCopEnvelope("QPE/Card", "mtabChanged()" ); | 76 | QCopEnvelope("QPE/Card", "mtabChanged()" ); |
77 | } | 77 | } |
78 | #else | 78 | #else |
79 | QString s; | 79 | QString s; |
80 | while( !f.atEnd() ) { | 80 | while( !f.atEnd() ) { |
81 | QString tmp; | 81 | QString tmp; |
82 | f.readLine( tmp, 1024 ); | 82 | f.readLine( tmp, 1024 ); |
83 | s += tmp; | 83 | s += tmp; |
84 | } | 84 | } |
85 | if ( (int)s.length() != mtabSize ) { | 85 | if ( (int)s.length() != mtabSize ) { |
86 | mtabSize = (int)s.length(); | 86 | mtabSize = (int)s.length(); |
87 | QCopEnvelope("QPE/Card", "mtabChanged()" ); | 87 | QCopEnvelope("QPE/Card", "mtabChanged()" ); |
88 | } | 88 | } |
89 | #endif | 89 | #endif |
90 | } | 90 | } |
91 | } | 91 | } |
92 | 92 | ||