[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/rtmp r9814: read a Buffer, not a shared_pt
From: |
rob |
Subject: |
[Gnash-commit] /srv/bzr/gnash/rtmp r9814: read a Buffer, not a shared_ptr of a Buffer. |
Date: |
Sun, 30 Nov 2008 18:17:41 -0700 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9814
committer: address@hidden
branch nick: rtmp
timestamp: Sun 2008-11-30 18:17:41 -0700
message:
read a Buffer, not a shared_ptr of a Buffer.
modified:
libnet/network.cpp
libnet/network.h
=== modified file 'libnet/network.cpp'
--- a/libnet/network.cpp 2008-11-29 20:25:32 +0000
+++ b/libnet/network.cpp 2008-12-01 01:17:41 +0000
@@ -320,6 +320,11 @@
int sig;
sigwait(&blockset, &sig);
}
+ if (sigismember(&pending, SIGPIPE)) {
+ log_debug("Have a pending SIGPIPE interupt waiting!");
+ int sig;
+ sigwait(&blockset, &sig);
+ }
#else
tval.tv_sec = 1;
tval.tv_usec = 0;
@@ -734,30 +739,28 @@
Network::readNet()
{
// GNASH_REPORT_FUNCTION;
-
boost::shared_ptr<amf::Buffer> buffer(new amf::Buffer);
- int ret = readNet(buffer);
+ int ret = readNet(*buffer);
if (ret > 0) {
buffer->resize(ret);
}
-
return buffer;
}
// Read from the connection
int
-Network::readNet(int fd, boost::shared_ptr<amf::Buffer> buffer)
+Network::readNet(int fd, amf::Buffer &buffer)
{
- int ret = readNet(fd, buffer->reference(), buffer->size(), _timeout);
+ int ret = readNet(fd, buffer.reference(), buffer.size(), _timeout);
if (ret > 0) {
- buffer->resize(ret);
+ buffer.resize(ret);
}
return ret;
}
int
-Network::readNet(boost::shared_ptr<amf::Buffer> buffer)
+Network::readNet(amf::Buffer &buffer)
{
// GNASH_REPORT_FUNCTION;
int ret = readNet(_sockfd, buffer, _timeout);
@@ -766,25 +769,27 @@
}
int
-Network::readNet(boost::shared_ptr<amf::Buffer> buffer, int timeout)
+Network::readNet(amf::Buffer &buffer, int timeout)
{
// GNASH_REPORT_FUNCTION;
- int ret = readNet(_sockfd, buffer->reference(), buffer->size(), timeout);
+ int ret = readNet(_sockfd, buffer.reference(), buffer.size(), timeout);
if (ret > 0) {
- buffer->resize(ret);
+ buffer.resize(ret); // FIXME: why does this corrupt
}
return ret;
}
int
-Network::readNet(int fd, boost::shared_ptr<amf::Buffer> buffer, int timeout)
+Network::readNet(int fd, amf::Buffer &buffer, int timeout)
{
- int ret = readNet(fd, buffer->reference(), buffer->size(), timeout);
+ int ret = readNet(fd, buffer.reference(), buffer.size(), timeout);
+#if 0
if (ret > 0) {
- buffer->resize(ret);
+ buffer.resize(ret); // FIXME: why does this corrupt
}
-
+#endif
+
return ret;
}
@@ -837,6 +842,7 @@
sigset_t pending, blockset;
sigemptyset(&blockset);
// sigaddset(&blockset, SIGINT); /* Block SIGINT */
+// sigaddset(&blockset, SIGPIPE); /* Block SIGPIPE */
sigprocmask(SIG_BLOCK, &blockset, NULL);
// Trap ^C (SIGINT) so we can kill all the threads
@@ -866,6 +872,12 @@
sigwait(&blockset, &sig);
cntrlc_handler(SIGINT);
}
+ if (sigismember(&pending, SIGPIPE)) {
+ log_debug("Have a pending SIGPIPE interupt waiting!");
+ int sig;
+ sigwait(&blockset, &sig);
+ cntrlc_handler(SIGINT);
+ }
#else
tval.tv_sec = timeout;
tval.tv_usec = 0;
@@ -915,14 +927,14 @@
int
Network::writeNet(amf::Buffer *buffer)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
return writeNet(buffer->reference(), buffer->allocated());
};
int
Network::writeNet(int fd, amf::Buffer *buffer)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
return writeNet(fd, buffer->reference(), buffer->allocated());
};
@@ -930,7 +942,7 @@
int
Network::writeNet(amf::Buffer &buffer)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
return writeNet(buffer.reference(), buffer.allocated());
};
@@ -938,7 +950,7 @@
int
Network::writeNet(int fd, amf::Buffer &buffer)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
return writeNet(fd, buffer.reference(), buffer.allocated());
};
@@ -1108,7 +1120,7 @@
struct timespec tval;
sigset_t pending, emptyset, blockset;
sigemptyset(&blockset); /* Block SIGINT */
- sigaddset(&blockset, SIGINT);
+// sigaddset(&blockset, SIGINT);
// sigaddset(&blockset, SIGPIPE);
sigprocmask(SIG_BLOCK, &blockset, NULL);
@@ -1235,6 +1247,11 @@
int sig;
sigwait(&sigmask, &sig);
}
+ if (sigismember(&pending, SIGPIPE)) {
+ log_debug("Have a pending SIGPIPE interupt waiting!");
+ int sig;
+ sigwait(&sigmask, &sig);
+ }
#else
struct timeval tval;
tval.tv_sec = timeout;
=== modified file 'libnet/network.h'
--- a/libnet/network.h 2008-11-26 22:57:44 +0000
+++ b/libnet/network.h 2008-12-01 01:17:41 +0000
@@ -149,10 +149,10 @@
///
/// @return The number of bytes read.
boost::shared_ptr<amf::Buffer> readNet();
- int readNet(boost::shared_ptr<amf::Buffer> buffer);
- int readNet(int fd, boost::shared_ptr<amf::Buffer> buffer);
- int readNet(boost::shared_ptr<amf::Buffer> buffer, int timeout);
- int readNet(int fd, boost::shared_ptr<amf::Buffer> buffer, int timeout);
+ int readNet(amf::Buffer &buffer);
+ int readNet(int fd, amf::Buffer &buffer);
+ int readNet(amf::Buffer &buffer, int timeout);
+ int readNet(int fd, amf::Buffer &buffer, int timeout);
int readNet(byte_t *data, int nbytes);
int readNet(byte_t *data, int nbytes, int timeout);
int readNet(int fd, byte_t *data, int nbytes);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/rtmp r9814: read a Buffer, not a shared_ptr of a Buffer.,
rob <=