[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/kio_virtualfile/kioslave/file
From: Allan Sandfeld Jensen <kde () carewolf ! com>
Date: 2006-07-14 13:36:14
Message-ID: 1152884174.167319.14329.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 562262 by carewolf:
Write and proper capability
M +28 -26 file.cc
M +1 -1 file.protocol
--- branches/work/kio_virtualfile/kioslave/file/file.cc #562261:562262
@@ -2,6 +2,7 @@
Copyright (C) 2000-2002 Stephan Kulow <coolo@kde.org>
Copyright (C) 2000-2002 David Faure <faure@kde.org>
Copyright (C) 2000-2002 Waldo Bastian <bastian@kde.org>
+ Copyright (C) 2006 Allan Sandfeld Jensen <sandfeld@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -342,6 +343,25 @@
finished();
}
+static int
+write_all(int fd, const char *buf, size_t len)
+{
+ while (len > 0)
+ {
+ ssize_t written = write(fd, buf, len);
+ if (written < 0)
+ {
+ if (errno == EINTR)
+ continue;
+ return -1;
+ }
+ buf += written;
+ len -= written;
+ }
+ return 0;
+}
+
+
void FileProtocol::open( const KUrl& url )
{
kDebug( 7101 ) << "File::open" << endl;
@@ -390,7 +410,7 @@
int stat = appconn->read(&cmd, args);
if ( stat == -1 )
{ // error
- kDebug( 7101 ) << "File::open -- connection erro" << endl;
+ kDebug( 7101 ) << "File::open -- connection error" << endl;
break;
}
QDataStream stream( args );
@@ -404,13 +424,13 @@
array = array.fromRawData(buffer, bytes);
data( array );
array.clear();
- break;
+ continue;
}
case CMD_WRITE: {
kDebug( 7101 ) << "File::open -- write" << endl;
QByteArray buffer;
dataReq(); // Request for data
- result = readData( buffer );
+ int result = readData( buffer );
if (result >= 0)
{
@@ -418,18 +438,18 @@
{
if ( errno == ENOSPC ) // disk full
{
- error( KIO::ERR_DISK_FULL, dest_orig);
+ error( KIO::ERR_DISK_FULL, url);
cmd = CMD_CLOSE;
}
else
{
kWarning(7101) << "Couldn't write. Error:" << strerror(errno) << endl;
- error( KIO::ERR_COULD_NOT_WRITE, dest_orig);
+ error( KIO::ERR_COULD_NOT_WRITE, url);
cmd = CMD_CLOSE;
}
}
}
- break;
+ continue;
}
case CMD_SEEK: {
kDebug( 7101 ) << "File::open -- seek" << endl;
@@ -437,7 +457,7 @@
stream >> offset;
KDE_lseek(fd, offset, SEEK_SET);
position( offset );
- break;
+ continue;
}
case CMD_NONE:
kDebug( 7101 ) << "File::open -- none " << endl;
@@ -450,30 +470,12 @@
cmd = CMD_CLOSE;
break;
}
- if (cmd == CMD_CLOSE) break;
+ break;
}
close( fd );
finished();
}
-static int
-write_all(int fd, const char *buf, size_t len)
-{
- while (len > 0)
- {
- ssize_t written = write(fd, buf, len);
- if (written < 0)
- {
- if (errno == EINTR)
- continue;
- return -1;
- }
- buf += written;
- len -= written;
- }
- return 0;
-}
-
static bool
same_inode(const KDE_struct_stat &src, const KDE_struct_stat &dest)
{
--- branches/work/kio_virtualfile/kioslave/file/file.protocol #562261:562262
@@ -10,7 +10,7 @@
deleting=true
linking=true
moving=true
-open=true
+opening=true
maxInstances=4
DocPath=kioslave/file.html
Class=:local
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic