summaryrefslogtreecommitdiff
path: root/library/filemanager.cpp
Unidiff
Diffstat (limited to 'library/filemanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/filemanager.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp
index eff8429..408be20 100644
--- a/library/filemanager.cpp
+++ b/library/filemanager.cpp
@@ -235,58 +235,58 @@ bool FileManager::copyFile( const QString & src, const QString & dest ) {
235 QFile srcFile(src); 235 QFile srcFile(src);
236 QFile destFile(dest); 236 QFile destFile(dest);
237 237
238 if(!srcFile.open( IO_ReadOnly|IO_Raw)) { 238 if(!srcFile.open( IO_ReadOnly|IO_Raw)) {
239 return success = false; 239 return success = false;
240 } 240 }
241 read_fd = srcFile.handle(); 241 read_fd = srcFile.handle();
242 if(read_fd != -1) { 242 if(read_fd != -1) {
243 fstat (read_fd, &stat_buf); 243 fstat (read_fd, &stat_buf);
244 if( !destFile.open( IO_WriteOnly|IO_Raw ) ) 244 if( !destFile.open( IO_WriteOnly|IO_Raw ) )
245 return success = false; 245 return success = false;
246 write_fd = destFile.handle(); 246 write_fd = destFile.handle();
247 if(write_fd != -1) { 247 if(write_fd != -1) {
248 int err=0; 248 int err=0;
249 QString msg; 249 QString msg;
250#ifdef Q_OS_MACX 250#ifdef Q_OS_MACX
251#ifdef SENDMAIL 251#ifdef SENDFILE
252 /* FreeBSD does support a different kind of 252 /* FreeBSD does support a different kind of
253 * sendfile. (eilers) 253 * sendfile. (eilers)
254 * I took this from Very Secure FTPd 254 * I took this from Very Secure FTPd
255 * Licence: GPL 255 * Licence: GPL
256 * Author: Chris Evans 256 * Author: Chris Evans
257 * sysdeputil.c 257 * sysdeputil.c
258 */ 258 */
259 /* XXX - start_pos will truncate on 32-bit machines - can we 259 /* XXX - start_pos will truncate on 32-bit machines - can we
260 * say "start from current pos"? 260 * say "start from current pos"?
261 */ 261 */
262 off_t written = 0; 262 off_t written = 0;
263 int retval = 0; 263 int retval = 0;
264 retval = sendfile(read_fd, write_fd, offset, stat_buf.st_size, NULL, 264 retval = sendfile(read_fd, write_fd, offset, stat_buf.st_size, NULL,
265 &written, 0); 265 &written, 0);
266 /* Translate to Linux-like retval */ 266 /* Translate to Linux-like retval */
267 if (written > 0) 267 if (written > 0)
268 { 268 {
269 err = (int) written; 269 err = (int) written;
270 } 270 }
271#else /* SENDMAIL */ 271#else /* SENDFILE */
272 err == -1; 272 err == -1;
273 msg = "FAILURE: Using unsupported function \"sendfile()\" Need Workaround !!"; 273 msg = "FAILURE: Using unsupported function \"sendfile()\" Need Workaround !!";
274 success = false; 274 success = false;
275# warning "Need workaround for sendfile!!(eilers)" 275# warning "Need workaround for sendfile!!(eilers)"
276#endif /* SENDMAIL */ 276#endif /* SENDFILE */
277 277
278#else 278#else
279 err = sendfile(write_fd, read_fd, &offset, stat_buf.st_size); 279 err = sendfile(write_fd, read_fd, &offset, stat_buf.st_size);
280 if( err == -1) { 280 if( err == -1) {
281 switch(err) { 281 switch(err) {
282 case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. "; 282 case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. ";
283 case EINVAL: msg = "Descriptor is not valid or locked. "; 283 case EINVAL: msg = "Descriptor is not valid or locked. ";
284 case ENOMEM: msg = "Insufficient memory to read from in_fd."; 284 case ENOMEM: msg = "Insufficient memory to read from in_fd.";
285 case EIO: msg = "Unspecified error while reading from in_fd."; 285 case EIO: msg = "Unspecified error while reading from in_fd.";
286 }; 286 };
287 success = false; 287 success = false;
288 } 288 }
289#endif /* Q_OS_MACX */ 289#endif /* Q_OS_MACX */
290 if( !success ) 290 if( !success )
291 qWarning( msg ); 291 qWarning( msg );
292 } else { 292 } else {