[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    k3b_0_11_branch: kdeextragear-1/k3b
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2004-08-15 9:58:25
Message-ID: 20040815095825.CC6DEC21 () office ! kde ! org
[Download RAW message or body]

CVS commit by trueg: 

fixed kernel 2.6.8 writer detection issues.


  M +3 -0      ChangeLog   1.64.2.59
  M +2 -2      src/main.cpp   1.73.2.16
  M +16 -8     src/device/k3bdevice.cpp   1.87.2.26
  M +3 -3      src/device/k3bdevice.h   1.56.2.5
  M +7 -1      src/device/k3bscsicommand.cpp   1.4.2.1


--- kdeextragear-1/k3b/ChangeLog  #1.64.2.58:1.64.2.59
@@ -1,2 +1,5 @@
+0.11.15
+Fixed writer detection issues with kernel >= 2.6.8
+
 0.11.14
 QT 3.1 compile fix (I keep forgetting these...)

--- kdeextragear-1/k3b/src/main.cpp  #1.73.2.15:1.73.2.16
@@ -63,5 +63,5 @@ int main(int argc, char *argv[]) {
 
     KAboutData aboutData( "k3b", I18N_NOOP("K3b"),
-                          "0.11.14cvs", description, KAboutData::License_GPL,
+                          "0.11.15cvs", description, KAboutData::License_GPL,
                           I18N_NOOP("(c) 1999 - 2004, Sebastian Trueg and the K3b \
                Team"), 0, "http://www.k3b.org" );
     aboutData.addAuthor("Sebastian Trueg",I18N_NOOP("Maintainer"), "trueg@k3b.org");

--- kdeextragear-1/k3b/src/device/k3bdevice.cpp  #1.87.2.25:1.87.2.26
@@ -76,18 +76,26 @@ const char* K3bCdDevice::CdDevice::cdrda
 
 
-int K3bCdDevice::openDevice( const char* name )
+int K3bCdDevice::openDevice( const char* name, bool write )
 {
   int fd = -1;
+  int flags = O_NONBLOCK;
+  if( write )
+    flags |= O_RDWR;
+  else
+    flags |= O_RDONLY;
+
 #ifdef HAVE_RESMGR
   // first try resmgr
-  fd = ::rsm_open_device( name, O_RDONLY | O_NONBLOCK );
-  kdDebug() << "(K3bCdDevice) resmgr open: " << fd << endl;
+  fd = ::rsm_open_device( name, flags );
+  kdDebug() << "(K3bDevice::Device) resmgr open: " << fd << endl;
 #endif
 
   if( fd < 0 )
-    fd = ::open( name, O_RDONLY | O_NONBLOCK );
+    fd = ::open( name, flags );
 
-  if( fd < 0 )
+  if( fd < 0 ) {
+    kdDebug() << "(K3bDevice::Device) Error: could not open device " << name << \
endl;  fd = -1;
+  }
 
   return fd;
@@ -1793,8 +1801,8 @@ bool K3bCdDevice::CdDevice::supportsWrit
 
 
-int K3bCdDevice::CdDevice::open() const
+int K3bCdDevice::CdDevice::open( bool write ) const
 {
   if( d->deviceFd == -1 )
-    d->deviceFd = openDevice( QFile::encodeName(devicename()) );
+    d->deviceFd = openDevice( QFile::encodeName(devicename()), write );
   if (d->deviceFd < 0)
   {

--- kdeextragear-1/k3b/src/device/k3bdevice.h  #1.56.2.4:1.56.2.5
@@ -436,5 +436,5 @@ namespace K3bCdDevice
      * @see close()
      */
-    int open() const;
+    int open( bool write = false ) const;
 
     /**
@@ -687,5 +687,5 @@ namespace K3bCdDevice
    * @internal
    */
-  int openDevice( const char* name );
+  int openDevice( const char* name, bool write = false );
 }
 

--- kdeextragear-1/k3b/src/device/k3bscsicommand.cpp  #1.4:1.4.2.1
@@ -107,4 +107,10 @@ int K3bCdDevice::ScsiCommand::transport(
                                          size_t len )
 {
+  if( dir == TR_DIR_WRITE ) {
+    m_device->close();
+    m_fd = m_device->open( true );
+    m_needToCloseDevice = true;
+  }
+
   if( m_fd == -1 ) {
     return -1;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic