summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/opie-login/passworddialogimpl.cpp6
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp11
2 files changed, 14 insertions, 3 deletions
diff --git a/core/opie-login/passworddialogimpl.cpp b/core/opie-login/passworddialogimpl.cpp
index d9132e2..3c1b474 100644
--- a/core/opie-login/passworddialogimpl.cpp
+++ b/core/opie-login/passworddialogimpl.cpp
@@ -143,49 +143,53 @@ void PasswordDialogImpl::writePassword() {
143 * Now crypt the password so we can write it later 143 * Now crypt the password so we can write it later
144 */ 144 */
145 char* password = ::crypt( m_pass->text().latin1(), crypt_make_salt() ); 145 char* password = ::crypt( m_pass->text().latin1(), crypt_make_salt() );
146 146
147 if ( !password ) 147 if ( !password )
148 return error( tr("Password not legal" ), 148 return error( tr("Password not legal" ),
149 tr("<qt>The entered password is not a valid password." 149 tr("<qt>The entered password is not a valid password."
150 "Please try entering a valid password.</qt>" ) ); 150 "Please try entering a valid password.</qt>" ) );
151 151
152 /* rewind and rewrite the password file */ 152 /* rewind and rewrite the password file */
153 ::setpwent(); 153 ::setpwent();
154 154
155 FILE* file = ::fopen( "/etc/passwd.new", "w" ); 155 FILE* file = ::fopen( "/etc/passwd.new", "w" );
156 struct passwd* pass; 156 struct passwd* pass;
157 while ( (pass = ::getpwent()) != 0l ) { 157 while ( (pass = ::getpwent()) != 0l ) {
158 /* no shadow password support */ 158 /* no shadow password support */
159 if ( pass->pw_uid == 0 ) 159 if ( pass->pw_uid == 0 )
160 pass->pw_passwd = password; 160 pass->pw_passwd = password;
161 161
162 ::putpwent( pass, file ); 162 ::putpwent( pass, file );
163 } 163 }
164 164
165 ::fclose( file ); 165 ::fclose( file );
166 ::endpwent(); 166 ::endpwent();
167 ::rename("/etc/passwd.new","/etc/passwd" ); 167 if (::rename("/etc/passwd.new","/etc/passwd" ) == -1)
168 return error( tr("Rename /etc/passwd failed"),
169 tr("<qt>Renaming /etc/passwd.new to /etc/passwd failed."
170 "Please check your /etc/passed file, your /etc directory "
171 "or your filesystem.</qt>") );
168 172
169 /* should be done now */ 173 /* should be done now */
170#ifdef OPIE_LOGIN_SHADOW_PW 174#ifdef OPIE_LOGIN_SHADOW_PW
171 #error "Can't write Shadow Passwords fixme" 175 #error "Can't write Shadow Passwords fixme"
172#endif 176#endif
173} 177}
174 178
175/** 179/**
176 * Raise an error. Delete input and set the focus after showing 180 * Raise an error. Delete input and set the focus after showing
177 * the error to the user 181 * the error to the user
178 */ 182 */
179void PasswordDialogImpl::error( const QString& caption, const QString& text ) { 183void PasswordDialogImpl::error( const QString& caption, const QString& text ) {
180 m_isSet = false; 184 m_isSet = false;
181 QMessageBox::critical(this,caption, text, 185 QMessageBox::critical(this,caption, text,
182 QMessageBox::Ok, QMessageBox::NoButton ); 186 QMessageBox::Ok, QMessageBox::NoButton );
183 187
184 m_pass->setText(""); 188 m_pass->setText("");
185 m_pass->setFocus(); 189 m_pass->setFocus();
186 190
187 m_confirm->setText(""); 191 m_confirm->setText("");
188} 192}
189 193
190void PasswordDialogImpl::slotToggleEcho( bool b ) { 194void PasswordDialogImpl::slotToggleEcho( bool b ) {
191 m_pass-> setEchoMode( b ? QLineEdit::Normal : QLineEdit::Password ); 195 m_pass-> setEchoMode( b ? QLineEdit::Normal : QLineEdit::Password );
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index dd9e78d..c5c6387 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -188,49 +188,49 @@ void Ipkg :: removeStatusEntry()
188 outStatusFile.append( ".tmp" ); 188 outStatusFile.append( ".tmp" );
189 189
190 emit outputText( "" ); 190 emit outputText( "" );
191 emit outputText( tr("Removing status entry...") ); 191 emit outputText( tr("Removing status entry...") );
192 QString tempstr = tr("status file - "); 192 QString tempstr = tr("status file - ");
193 tempstr.append( statusFile ); 193 tempstr.append( statusFile );
194 emit outputText( tempstr ); 194 emit outputText( tempstr );
195 tempstr = tr("package - "); 195 tempstr = tr("package - ");
196 tempstr.append( package ); 196 tempstr.append( package );
197 emit outputText( tempstr ); 197 emit outputText( tempstr );
198 198
199 QFile readFile( statusFile ); 199 QFile readFile( statusFile );
200 QFile writeFile( outStatusFile ); 200 QFile writeFile( outStatusFile );
201 201
202 if ( !readFile.open( IO_ReadOnly ) ) 202 if ( !readFile.open( IO_ReadOnly ) )
203 { 203 {
204 tempstr = tr("Couldn't open status file - "); 204 tempstr = tr("Couldn't open status file - ");
205 tempstr.append( statusFile ); 205 tempstr.append( statusFile );
206 emit outputText( tempstr ); 206 emit outputText( tempstr );
207 return; 207 return;
208 } 208 }
209 209
210 if ( !writeFile.open( IO_WriteOnly ) ) 210 if ( !writeFile.open( IO_WriteOnly ) )
211 { 211 {
212 tempstr = tr("Couldn't create tempory status file - "); 212 tempstr = tr("Couldn't create temporary status file - ");
213 tempstr.append( outStatusFile ); 213 tempstr.append( outStatusFile );
214 emit outputText( tempstr ); 214 emit outputText( tempstr );
215 return; 215 return;
216 } 216 }
217 217
218 int i = 0; 218 int i = 0;
219 219
220 QTextStream readStream( &readFile ); 220 QTextStream readStream( &readFile );
221 QTextStream writeStream( &writeFile ); 221 QTextStream writeStream( &writeFile );
222 QString line; 222 QString line;
223 223
224 char k[21]; 224 char k[21];
225 char v[1001]; 225 char v[1001];
226 QString key; 226 QString key;
227 QString value; 227 QString value;
228 228
229 while ( !readStream.atEnd() ) 229 while ( !readStream.atEnd() )
230 { 230 {
231 //read new line 231 //read new line
232 line = readStream.readLine(); 232 line = readStream.readLine();
233 233
234 if ( line.contains( ":", TRUE ) ) 234 if ( line.contains( ":", TRUE ) )
235 { 235 {
236 //grep key and value from line 236 //grep key and value from line
@@ -249,49 +249,56 @@ void Ipkg :: removeStatusEntry()
249 if ( key == "Package" && value == package ) 249 if ( key == "Package" && value == package )
250 { 250 {
251 //skip lines from the deleted package 251 //skip lines from the deleted package
252 while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) ) 252 while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) )
253 { 253 {
254 line = readStream.readLine(); 254 line = readStream.readLine();
255 } 255 }
256 } else { 256 } else {
257 257
258 //write other lines into the tempfile 258 //write other lines into the tempfile
259 writeStream << line << "\n"; 259 writeStream << line << "\n";
260 260
261 // Improve UI responsiveness 261 // Improve UI responsiveness
262 i++; 262 i++;
263 if ( ( i % 50 ) == 0 ) 263 if ( ( i % 50 ) == 0 )
264 qApp->processEvents(); 264 qApp->processEvents();
265 } 265 }
266 } 266 }
267 267
268 readFile.close(); 268 readFile.close();
269 writeFile.close(); 269 writeFile.close();
270 270
271 // Remove old status file and put tmp stats file in its place 271 // Remove old status file and put tmp stats file in its place
272 remove( statusFile ); 272 remove( statusFile );
273 rename( outStatusFile, statusFile ); 273 if (::rename( outStatusFile, statusFile ) == -1)
274 {
275 tempstr = tr("Couldn't rename temporary status file - ");
276 tempstr.append( outStatusFile );
277 tempstr.append( tr("to status file - ") );
278 tempstr.append( statusFile );
279 emit outputText( tempstr );
280 }
274 } 281 }
275 282
276int Ipkg :: executeIpkgLinkCommand( QStringList *cmd ) 283int Ipkg :: executeIpkgLinkCommand( QStringList *cmd )
277{ 284{
278 // If one is already running - should never be but just to be safe 285 // If one is already running - should never be but just to be safe
279 if ( proc ) 286 if ( proc )
280 { 287 {
281 delete proc; 288 delete proc;
282 proc = 0; 289 proc = 0;
283 } 290 }
284 291
285 // OK we're gonna use OProcess to run this thing 292 // OK we're gonna use OProcess to run this thing
286 proc = new OProcess(); 293 proc = new OProcess();
287 aborted = false; 294 aborted = false;
288 295
289 // Connect up our slots 296 // Connect up our slots
290 connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), 297 connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)),
291 this, SLOT( linkProcessFinished())); 298 this, SLOT( linkProcessFinished()));
292 connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), 299 connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)),
293 this, SLOT(linkCommandStdout(Opie::Core::OProcess*,char*,int))); 300 this, SLOT(linkCommandStdout(Opie::Core::OProcess*,char*,int)));
294 301
295 *proc << *cmd; 302 *proc << *cmd;
296 303
297 if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) 304 if(!proc->start(OProcess::NotifyOnExit, OProcess::All))