summaryrefslogtreecommitdiffstats
path: root/net/tools/quic/quic_socket_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/tools/quic/quic_socket_utils.cc')
-rw-r--r--net/tools/quic/quic_socket_utils.cc25
1 files changed, 10 insertions, 15 deletions
diff --git a/net/tools/quic/quic_socket_utils.cc b/net/tools/quic/quic_socket_utils.cc
index 87071a6..6535d57 100644
--- a/net/tools/quic/quic_socket_utils.cc
+++ b/net/tools/quic/quic_socket_utils.cc
@@ -12,7 +12,6 @@
#include <string>
#include "base/logging.h"
-#include "net/quic/quic_protocol.h"
#ifndef SO_RXQ_OVFL
#define SO_RXQ_OVFL 40
@@ -51,7 +50,7 @@ IPAddressNumber QuicSocketUtils::GetAddressFromMsghdr(struct msghdr *hdr) {
// static
bool QuicSocketUtils::GetOverflowFromMsghdr(struct msghdr *hdr,
- int *dropped_packets) {
+ int *dropped_packets) {
if (hdr->msg_controllen > 0) {
struct cmsghdr *cmsg;
for (cmsg = CMSG_FIRSTHDR(hdr);
@@ -80,9 +79,9 @@ int QuicSocketUtils::SetGetAddressInfo(int fd, int address_family) {
// static
int QuicSocketUtils::ReadPacket(int fd, char* buffer, size_t buf_len,
- int* dropped_packets,
- IPAddressNumber* self_address,
- IPEndPoint* peer_address) {
+ int* dropped_packets,
+ IPAddressNumber* self_address,
+ IPEndPoint* peer_address) {
CHECK(peer_address != NULL);
const int kSpaceForOverflowAndIp =
CMSG_SPACE(sizeof(int)) + CMSG_SPACE(sizeof(in6_pktinfo));
@@ -136,11 +135,10 @@ int QuicSocketUtils::ReadPacket(int fd, char* buffer, size_t buf_len,
}
// static
-WriteResult QuicSocketUtils::WritePacket(int fd,
- const char* buffer,
- size_t buf_len,
- const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) {
+int QuicSocketUtils::WritePacket(int fd, const char* buffer, size_t buf_len,
+ const IPAddressNumber& self_address,
+ const IPEndPoint& peer_address,
+ int* error) {
sockaddr_storage raw_address;
socklen_t address_len = sizeof(raw_address);
CHECK(peer_address.ToSockAddr(
@@ -192,11 +190,8 @@ WriteResult QuicSocketUtils::WritePacket(int fd,
}
int rc = sendmsg(fd, &hdr, 0);
- if (rc >= 0) {
- return WriteResult(WRITE_STATUS_OK, rc);
- }
- return WriteResult((errno == EAGAIN || errno == EWOULDBLOCK) ?
- WRITE_STATUS_BLOCKED : WRITE_STATUS_ERROR, errno);
+ *error = (rc >= 0) ? 0 : errno;
+ return rc;
}
} // namespace tools