[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