| 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 "net/spdy/spdy_framer.h" | 5 #include "net/spdy/spdy_framer.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/third_party/valgrind/memcheck.h" | 9 #include "base/third_party/valgrind/memcheck.h" |
| 10 #include "net/spdy/spdy_frame_builder.h" | 10 #include "net/spdy/spdy_frame_builder.h" |
| (...skipping 1179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1190 const SpdyMajorVersion spdy_version, | 1190 const SpdyMajorVersion spdy_version, |
| 1191 const SpdyHeaderBlock* headers) { | 1191 const SpdyHeaderBlock* headers) { |
| 1192 if (spdy_version < SPDY3) { | 1192 if (spdy_version < SPDY3) { |
| 1193 frame->WriteUInt16(static_cast<uint16>(headers->size())); | 1193 frame->WriteUInt16(static_cast<uint16>(headers->size())); |
| 1194 } else { | 1194 } else { |
| 1195 frame->WriteUInt32(headers->size()); | 1195 frame->WriteUInt32(headers->size()); |
| 1196 } | 1196 } |
| 1197 SpdyHeaderBlock::const_iterator it; | 1197 SpdyHeaderBlock::const_iterator it; |
| 1198 for (it = headers->begin(); it != headers->end(); ++it) { | 1198 for (it = headers->begin(); it != headers->end(); ++it) { |
| 1199 if (spdy_version < SPDY3) { | 1199 if (spdy_version < SPDY3) { |
| 1200 frame->WriteString(it->first); | 1200 frame->WriteStringPiece16(it->first); |
| 1201 frame->WriteString(it->second); | 1201 frame->WriteStringPiece16(it->second); |
| 1202 } else { | 1202 } else { |
| 1203 frame->WriteStringPiece32(it->first); | 1203 frame->WriteStringPiece32(it->first); |
| 1204 frame->WriteStringPiece32(it->second); | 1204 frame->WriteStringPiece32(it->second); |
| 1205 } | 1205 } |
| 1206 } | 1206 } |
| 1207 } | 1207 } |
| 1208 | 1208 |
| 1209 // TODO(phajdan.jr): Clean up after we no longer need | 1209 // TODO(phajdan.jr): Clean up after we no longer need |
| 1210 // to workaround http://crbug.com/139744. | 1210 // to workaround http://crbug.com/139744. |
| 1211 #if !defined(USE_SYSTEM_ZLIB) | 1211 #if !defined(USE_SYSTEM_ZLIB) |
| (...skipping 1995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3207 builder->WriteUInt16(static_cast<uint16>(name_value_block.size())); | 3207 builder->WriteUInt16(static_cast<uint16>(name_value_block.size())); |
| 3208 } else { | 3208 } else { |
| 3209 builder->WriteUInt32(name_value_block.size()); | 3209 builder->WriteUInt32(name_value_block.size()); |
| 3210 } | 3210 } |
| 3211 | 3211 |
| 3212 // Serialize each header. | 3212 // Serialize each header. |
| 3213 for (SpdyHeaderBlock::const_iterator it = name_value_block.begin(); | 3213 for (SpdyHeaderBlock::const_iterator it = name_value_block.begin(); |
| 3214 it != name_value_block.end(); | 3214 it != name_value_block.end(); |
| 3215 ++it) { | 3215 ++it) { |
| 3216 if (protocol_version() <= SPDY2) { | 3216 if (protocol_version() <= SPDY2) { |
| 3217 builder->WriteString(it->first); | 3217 builder->WriteStringPiece16(it->first); |
| 3218 builder->WriteString(it->second); | 3218 builder->WriteStringPiece16(it->second); |
| 3219 } else { | 3219 } else { |
| 3220 builder->WriteStringPiece32(it->first); | 3220 builder->WriteStringPiece32(it->first); |
| 3221 builder->WriteStringPiece32(it->second); | 3221 builder->WriteStringPiece32(it->second); |
| 3222 } | 3222 } |
| 3223 } | 3223 } |
| 3224 } | 3224 } |
| 3225 | 3225 |
| 3226 void SpdyFramer::SerializeNameValueBlock( | 3226 void SpdyFramer::SerializeNameValueBlock( |
| 3227 SpdyFrameBuilder* builder, | 3227 SpdyFrameBuilder* builder, |
| 3228 const SpdyFrameWithNameValueBlockIR& frame) { | 3228 const SpdyFrameWithNameValueBlockIR& frame) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3277 #else | 3277 #else |
| 3278 WriteHeaderBlockToZ(&frame.name_value_block(), compressor); | 3278 WriteHeaderBlockToZ(&frame.name_value_block(), compressor); |
| 3279 #endif // defined(USE_SYSTEM_ZLIB) | 3279 #endif // defined(USE_SYSTEM_ZLIB) |
| 3280 | 3280 |
| 3281 int compressed_size = compressed_max_size - compressor->avail_out; | 3281 int compressed_size = compressed_max_size - compressor->avail_out; |
| 3282 builder->Seek(compressed_size); | 3282 builder->Seek(compressed_size); |
| 3283 builder->RewriteLength(*this); | 3283 builder->RewriteLength(*this); |
| 3284 } | 3284 } |
| 3285 | 3285 |
| 3286 } // namespace net | 3286 } // namespace net |
| OLD | NEW |