summaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/transport')
-rw-r--r--host/lib/transport/udp_zero_copy_asio.cpp10
-rw-r--r--host/lib/transport/vrt_packet_handler.hpp4
-rw-r--r--host/lib/transport/zero_copy.cpp10
3 files changed, 13 insertions, 11 deletions
diff --git a/host/lib/transport/udp_zero_copy_asio.cpp b/host/lib/transport/udp_zero_copy_asio.cpp
index e3f3ef5bf..98451f188 100644
--- a/host/lib/transport/udp_zero_copy_asio.cpp
+++ b/host/lib/transport/udp_zero_copy_asio.cpp
@@ -105,7 +105,7 @@ private:
boost::asio::io_service _io_service;
int _sock_fd;
- size_t recv(const boost::asio::mutable_buffer &buff){
+ ssize_t recv(const boost::asio::mutable_buffer &buff){
//setup timeval for timeout
timeval tv;
tv.tv_sec = 0;
@@ -122,17 +122,15 @@ private:
return ::recv(
_sock_fd,
boost::asio::buffer_cast<char *>(buff),
- boost::asio::buffer_size(buff),
- 0
+ boost::asio::buffer_size(buff), 0
);
}
- size_t send(const boost::asio::const_buffer &buff){
+ ssize_t send(const boost::asio::const_buffer &buff){
return ::send(
_sock_fd,
boost::asio::buffer_cast<const char *>(buff),
- boost::asio::buffer_size(buff),
- 0
+ boost::asio::buffer_size(buff), 0
);
}
};
diff --git a/host/lib/transport/vrt_packet_handler.hpp b/host/lib/transport/vrt_packet_handler.hpp
index c0d6bbe12..221e2bfa6 100644
--- a/host/lib/transport/vrt_packet_handler.hpp
+++ b/host/lib/transport/vrt_packet_handler.hpp
@@ -329,7 +329,9 @@ namespace vrt_packet_handler{
);
//commit the samples to the zero-copy interface
- send_buffs[i]->commit(if_packet_info.num_packet_words32*sizeof(boost::uint32_t));
+ if (send_buffs[i]->commit(if_packet_info.num_packet_words32*sizeof(boost::uint32_t)) < num_samps){
+ std::cerr << "commit to send buffer returned less than commit size" << std::endl;
+ }
}
}
diff --git a/host/lib/transport/zero_copy.cpp b/host/lib/transport/zero_copy.cpp
index 27f41329b..42f69d77b 100644
--- a/host/lib/transport/zero_copy.cpp
+++ b/host/lib/transport/zero_copy.cpp
@@ -71,7 +71,9 @@ managed_recv_buffer::sptr phony_zero_copy_recv_if::get_recv_buff(void){
boost::uint8_t *recv_mem = new boost::uint8_t[_impl->max_buff_size];
//call recv() with timeout option
- size_t num_bytes = this->recv(boost::asio::buffer(recv_mem, _impl->max_buff_size));
+ ssize_t num_bytes = this->recv(boost::asio::buffer(recv_mem, _impl->max_buff_size));
+
+ if (num_bytes <= 0) return managed_recv_buffer::sptr(); //NULL sptr
//create a new managed buffer to house the data
return managed_recv_buffer::sptr(
@@ -86,7 +88,7 @@ managed_recv_buffer::sptr phony_zero_copy_recv_if::get_recv_buff(void){
//! phony zero-copy send buffer implementation
class managed_send_buffer_impl : public managed_send_buffer{
public:
- typedef boost::function<size_t(const boost::asio::const_buffer &)> send_fcn_t;
+ typedef boost::function<ssize_t(const boost::asio::const_buffer &)> send_fcn_t;
managed_send_buffer_impl(
const boost::asio::mutable_buffer &buff,
@@ -102,8 +104,8 @@ public:
/* NOP */
}
- void commit(size_t num_bytes){
- _send_fcn(boost::asio::buffer(_buff, num_bytes));
+ ssize_t commit(size_t num_bytes){
+ return _send_fcn(boost::asio::buffer(_buff, num_bytes));
}
private: