Index: net/websockets/websocket_frame.h |
diff --git a/net/websockets/websocket_frame.h b/net/websockets/websocket_frame.h |
index 593d439481282b023397b241e08d9fa2975d9942..9d1f8bb732a6490fda222a63f0341ad6652d9388 100644 |
--- a/net/websockets/websocket_frame.h |
+++ b/net/websockets/websocket_frame.h |
@@ -75,6 +75,42 @@ struct NET_EXPORT_PRIVATE WebSocketFrameChunk { |
std::vector<char> data; |
}; |
+// Writes wire format of a WebSocket frame header into |output|. |
+// |
+// WebSocket frame format is defined at: |
+// <http://tools.ietf.org/html/rfc6455#section-5.2>. This function writes |
+// everything but payload data in a WebSocket frame to |output|. |
+// |
+// If |header->masked| is true, |masking_key| must point to four-byte data |
+// representing a masking key for that frame (possibly generated by |
+// GenerateWebSocketMaskingKey() function below). Otherwise, |masking_key| |
+// must be NULL. |
+NET_EXPORT_PRIVATE void WriteWebSocketFrameHeader( |
+ const WebSocketFrameHeader* header, |
mmenke
2012/05/21 15:08:37
Suggest you make this const WebSocketFrameHeader&
Yuta Kitamura
2012/05/22 10:29:35
Done.
|
+ const char* masking_key, |
+ std::vector<char>* output); |
+ |
+// Generates a masking key suitable for use in a new WebSocket frame. |
+// |
+// |masking_key| should be non-NULL value pointing four-byte |
+// (== kMaskingKeyLength bytes) data. The generated masking key will be written |
+// to that buffer. |
+NET_EXPORT_PRIVATE void GenearteWebSocketMaskingKey(char* masking_key); |
mmenke
2012/05/21 15:08:37
nit: GenearteWebSocketMaskingKey -> GenerateWebSoc
mmenke
2012/05/21 15:08:37
I suggest you make a struct for masking keys, so t
Yuta Kitamura
2012/05/22 10:29:35
Introduced a new struct WebSocketMaskingKey. Chang
Yuta Kitamura
2012/05/22 10:29:35
Doh! Fixed.
|
+ |
+// Masks WebSocket frame payload. |
+// |
+// A browser must mask every WebSocket frame by XOR'ing the frame payload |
mmenke
2012/05/21 15:08:37
nit: Suggest "client" instead of "browser", as pe
Yuta Kitamura
2012/05/22 10:29:35
Done.
|
+// with four-byte random data (masking key). This function applies the masking |
+// to the given payload data. |
+// |
+// This function masks |frame_data| with |masking_key|, assuming |frame_data| |
+// is partial data starting from |frame_offset| bytes from the beginning of |
+// the payload data. |
mmenke
2012/05/21 15:08:37
Should make clear that this must not be called whe
Yuta Kitamura
2012/05/22 10:29:35
Resolved by changing the type of |masking_key| to
|
+NET_EXPORT_PRIVATE void MaskWebSocketFramePayload( |
+ const char* masking_key, |
+ uint64 frame_offset, |
+ std::vector<char>* frame_data); |
+ |
} // namespace net |
#endif // NET_WEBSOCKETS_WEBSOCKET_FRAME_H_ |