| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <limits> | 5 #include <limits> |
| 6 | 6 |
| 7 #include "base/sys_byteorder.h" | 7 #include "base/sys_byteorder.h" |
| 8 #include "net/spdy/spdy_frame_reader.h" | 8 #include "net/spdy/spdy_frame_reader.h" |
| 9 | 9 |
| 10 namespace spdy { | 10 namespace spdy { |
| 11 | 11 |
| 12 SpdyFrameReader::SpdyFrameReader(const char* data, const size_t len) | 12 SpdyFrameReader::SpdyFrameReader(const char* data, const size_t len) |
| 13 : data_(data), | 13 : data_(data), |
| 14 len_(len), | 14 len_(len), |
| 15 ofs_(0) { | 15 ofs_(0) { |
| 16 } | 16 } |
| 17 | 17 |
| 18 bool SpdyFrameReader::ReadUInt16(uint16* result) { | 18 bool SpdyFrameReader::ReadUInt16(uint16* result) { |
| 19 // Make sure that we have the whole uint16. | 19 // Make sure that we have the whole uint16. |
| 20 if (!CanRead(2)) { | 20 if (!CanRead(2)) { |
| 21 OnFailure(); | 21 OnFailure(); |
| 22 return false; | 22 return false; |
| 23 } | 23 } |
| 24 | 24 |
| 25 // Read into result. | 25 // Read into result. |
| 26 *result = ntohs(*(reinterpret_cast<const uint16*>(data_ + ofs_))); | 26 *result = base::NetToHost16(*(reinterpret_cast<const uint16*>(data_ + ofs_))); |
| 27 | 27 |
| 28 // Iterate. | 28 // Iterate. |
| 29 ofs_ += 2; | 29 ofs_ += 2; |
| 30 | 30 |
| 31 return true; | 31 return true; |
| 32 } | 32 } |
| 33 | 33 |
| 34 bool SpdyFrameReader::ReadUInt32(uint32* result) { | 34 bool SpdyFrameReader::ReadUInt32(uint32* result) { |
| 35 // Make sure that we have the whole uint32. | 35 // Make sure that we have the whole uint32. |
| 36 if (!CanRead(4)) { | 36 if (!CanRead(4)) { |
| 37 OnFailure(); | 37 OnFailure(); |
| 38 return false; | 38 return false; |
| 39 } | 39 } |
| 40 | 40 |
| 41 // Read into result. | 41 // Read into result. |
| 42 *result = ntohl(*(reinterpret_cast<const uint32*>(data_ + ofs_))); | 42 *result = base::NetToHost32(*(reinterpret_cast<const uint32*>(data_ + ofs_))); |
| 43 | 43 |
| 44 // Iterate. | 44 // Iterate. |
| 45 ofs_ += 4; | 45 ofs_ += 4; |
| 46 | 46 |
| 47 return true; | 47 return true; |
| 48 } | 48 } |
| 49 | 49 |
| 50 bool SpdyFrameReader::ReadStringPiece16(base::StringPiece* result) { | 50 bool SpdyFrameReader::ReadStringPiece16(base::StringPiece* result) { |
| 51 // Read resultant length. | 51 // Read resultant length. |
| 52 uint16 result_len; | 52 uint16 result_len; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 return bytes <= (len_ - ofs_); | 117 return bytes <= (len_ - ofs_); |
| 118 } | 118 } |
| 119 | 119 |
| 120 void SpdyFrameReader::OnFailure() { | 120 void SpdyFrameReader::OnFailure() { |
| 121 // Set our iterator to the end of the buffer so that further reads fail | 121 // Set our iterator to the end of the buffer so that further reads fail |
| 122 // immediately. | 122 // immediately. |
| 123 ofs_ = len_; | 123 ofs_ = len_; |
| 124 } | 124 } |
| 125 | 125 |
| 126 } // namespace spdy | 126 } // namespace spdy |
| OLD | NEW |