gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r11773: return an error if the strea


From: Rob Savoye
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11773: return an error if the stream doesn't fully get transferred. Handle an aborted disk stream, close the network connection.
Date: Tue, 19 Jan 2010 14:00:32 -0700
User-agent: Bazaar (2.0.2)

------------------------------------------------------------
revno: 11773
committer: Rob Savoye <address@hidden>
branch nick: trunk
timestamp: Tue 2010-01-19 14:00:32 -0700
message:
  return an error if the stream doesn't fully get transferred. Handle an 
aborted disk stream, close the network connection.
modified:
  cygnal/cygnal.cpp
  libnet/diskstream.cpp
=== modified file 'cygnal/cygnal.cpp'
--- a/cygnal/cygnal.cpp 2010-01-19 20:32:59 +0000
+++ b/cygnal/cygnal.cpp 2010-01-19 21:00:32 +0000
@@ -1048,8 +1048,14 @@
                //ds->dump();
                // Only play the next chunk of the file.
 //log_network("Sending following chunk of %s", ds->getFilespec());
-               ds->play(i, false);
-               if (ds->getState() == DiskStream::CLOSED) {
+               if (ds->play(i, false)) {
+                   if (ds->getState() == DiskStream::CLOSED) {
+                       net.closeNet(args->netfd);
+                       hand->removeClient(args->netfd);
+                       done = true;
+                   }
+               } else {
+                   // something went wrong, the stream failed
                    net.closeNet(args->netfd);
                    hand->removeClient(args->netfd);
                    done = true;
@@ -1146,12 +1152,14 @@
            // hand->removeClient(args->netfd);
            // done = true;
        }
+#if 0
        retries++;
-       // if (retries >= 10) {
-       //     net.closeNet(args->netfd);
-       //     hand->removeClient(args->netfd);
-       //     done = true;
-       // }
+       if (retries >= 10) {
+           net.closeNet(args->netfd);
+           hand->removeClient(args->netfd);
+           done = true;
+       }
+#endif
     } while (!done);
 
     tids.decrement();

=== modified file 'libnet/diskstream.cpp'
--- a/libnet/diskstream.cpp     2010-01-11 06:41:38 +0000
+++ b/libnet/diskstream.cpp     2010-01-19 21:00:32 +0000
@@ -750,13 +750,13 @@
                                netfd, strerror(errno));
                  }
 #endif
-                 log_debug("Done playing file %s, size was: %d", _filespec, 
_filesize);
+                 log_network("Done playing file %s, size was: %d", _filespec, 
_filesize);
                  close();
                  done = true;
                  // reset to the beginning of the file
                  _offset = 0;
              } else {
-                 log_debug("\tPlaying part of file %s, offset is: %d", 
_filespec, _offset);
+                 log_network("\tPlaying part of file %s, offset is: %d out of 
%d bytes.", _filespec, _offset, _filesize);
 #ifdef HAVE_SENDFILE_XX
                  ret = sendfile(netfd, _filefd, &_offset, _pagesize);
 #else
@@ -765,6 +765,7 @@
                      log_error("In %s(%d): couldn't write %d of bytes of data 
to net fd #%d! Got %d, %s",
                                __FUNCTION__, __LINE__, _pagesize, netfd,
                                ret, strerror(errno));
+                     return false;
                  }
                  _offset += _pagesize;
 #endif


reply via email to

[Prev in Thread] Current Thread [Next in Thread]