-rw-r--r-- | library/filemanager.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp index 1e7384e..99837fe 100644 --- a/library/filemanager.cpp +++ b/library/filemanager.cpp @@ -245,65 +245,65 @@ bool FileManager::copyFile( const QString & src, const QString & dest ) { int err=0; QString msg; #ifdef Q_OS_MACX #ifdef SENDFILE /* FreeBSD does support a different kind of * sendfile. (eilers) * I took this from Very Secure FTPd * Licence: GPL * Author: Chris Evans * sysdeputil.c */ /* XXX - start_pos will truncate on 32-bit machines - can we * say "start from current pos"? */ off_t written = 0; int retval = 0; retval = sendfile(read_fd, write_fd, offset, stat_buf.st_size, NULL, &written, 0); /* Translate to Linux-like retval */ if (written > 0) { err = (int) written; } #else /* SENDFILE */ err == -1; msg = "FAILURE: Using unsupported function \"sendfile()\" Need Workaround !!"; success = false; # warning "Need workaround for sendfile!!(eilers)" #endif /* SENDFILE */ #else err = sendfile(write_fd, read_fd, &offset, stat_buf.st_size); - if( err == -1) { + if( err != -1) { switch(err) { case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. "; case EINVAL: msg = "Descriptor is not valid or locked. "; case ENOMEM: msg = "Insufficient memory to read from in_fd."; case EIO: msg = "Unspecified error while reading from in_fd."; }; success = false; } #endif /* Q_OS_MACX */ if( !success ) qWarning( msg ); } else { qWarning("open write failed %s, %s",src.latin1(), dest.latin1()); success = false; } } else { qWarning("open read failed %s, %s",src.latin1(), dest.latin1()); success = false; } srcFile.close(); destFile.close(); // Set file permissions if( stat( (const char *) src, &status ) == 0 ) { chmod( (const char *) dest, status.st_mode ); } return success; } bool FileManager::renameFile( const QString & src, const QString & dest ) { if(copyFile( src, dest )) { |