| Index: webrtc/base/socketadapters.cc
|
| diff --git a/webrtc/base/socketadapters.cc b/webrtc/base/socketadapters.cc
|
| index 2b513dca63dea5f463d677c07e6c5cfb5583e5d4..85c126751cdf9ccb531430c0d8e0eb7badf1f869 100644
|
| --- a/webrtc/base/socketadapters.cc
|
| +++ b/webrtc/base/socketadapters.cc
|
| @@ -561,7 +561,7 @@ void AsyncSocksProxySocket::OnConnectEvent(AsyncSocket* socket) {
|
| void AsyncSocksProxySocket::ProcessInput(char* data, size_t* len) {
|
| ASSERT(state_ < SS_TUNNEL);
|
|
|
| - ByteBuffer response(data, *len);
|
| + ByteBufferReader response(data, *len);
|
|
|
| if (state_ == SS_HELLO) {
|
| uint8_t ver, method;
|
| @@ -638,7 +638,7 @@ void AsyncSocksProxySocket::ProcessInput(char* data, size_t* len) {
|
|
|
| // Consume parsed data
|
| *len = response.Length();
|
| - memcpy(data, response.Data(), *len);
|
| + memmove(data, response.Data(), *len);
|
|
|
| if (state_ != SS_TUNNEL)
|
| return;
|
| @@ -653,7 +653,7 @@ void AsyncSocksProxySocket::ProcessInput(char* data, size_t* len) {
|
| }
|
|
|
| void AsyncSocksProxySocket::SendHello() {
|
| - ByteBuffer request;
|
| + ByteBufferWriter request;
|
| request.WriteUInt8(5); // Socks Version
|
| if (user_.empty()) {
|
| request.WriteUInt8(1); // Authentication Mechanisms
|
| @@ -668,7 +668,7 @@ void AsyncSocksProxySocket::SendHello() {
|
| }
|
|
|
| void AsyncSocksProxySocket::SendAuth() {
|
| - ByteBuffer request;
|
| + ByteBufferWriter request;
|
| request.WriteUInt8(1); // Negotiation Version
|
| request.WriteUInt8(static_cast<uint8_t>(user_.size()));
|
| request.WriteString(user_); // Username
|
| @@ -684,7 +684,7 @@ void AsyncSocksProxySocket::SendAuth() {
|
| }
|
|
|
| void AsyncSocksProxySocket::SendConnect() {
|
| - ByteBuffer request;
|
| + ByteBufferWriter request;
|
| request.WriteUInt8(5); // Socks Version
|
| request.WriteUInt8(1); // CONNECT
|
| request.WriteUInt8(0); // Reserved
|
| @@ -719,7 +719,7 @@ void AsyncSocksProxyServerSocket::ProcessInput(char* data, size_t* len) {
|
| // TODO: See if the whole message has arrived
|
| ASSERT(state_ < SS_CONNECT_PENDING);
|
|
|
| - ByteBuffer response(data, *len);
|
| + ByteBufferReader response(data, *len);
|
| if (state_ == SS_HELLO) {
|
| HandleHello(&response);
|
| } else if (state_ == SS_AUTH) {
|
| @@ -730,14 +730,14 @@ void AsyncSocksProxyServerSocket::ProcessInput(char* data, size_t* len) {
|
|
|
| // Consume parsed data
|
| *len = response.Length();
|
| - memcpy(data, response.Data(), *len);
|
| + memmove(data, response.Data(), *len);
|
| }
|
|
|
| -void AsyncSocksProxyServerSocket::DirectSend(const ByteBuffer& buf) {
|
| +void AsyncSocksProxyServerSocket::DirectSend(const ByteBufferWriter& buf) {
|
| BufferedReadAdapter::DirectSend(buf.Data(), buf.Length());
|
| }
|
|
|
| -void AsyncSocksProxyServerSocket::HandleHello(ByteBuffer* request) {
|
| +void AsyncSocksProxyServerSocket::HandleHello(ByteBufferReader* request) {
|
| uint8_t ver, num_methods;
|
| if (!request->ReadUInt8(&ver) ||
|
| !request->ReadUInt8(&num_methods)) {
|
| @@ -769,13 +769,13 @@ void AsyncSocksProxyServerSocket::HandleHello(ByteBuffer* request) {
|
| }
|
|
|
| void AsyncSocksProxyServerSocket::SendHelloReply(uint8_t method) {
|
| - ByteBuffer response;
|
| + ByteBufferWriter response;
|
| response.WriteUInt8(5); // Socks Version
|
| response.WriteUInt8(method); // Auth method
|
| DirectSend(response);
|
| }
|
|
|
| -void AsyncSocksProxyServerSocket::HandleAuth(ByteBuffer* request) {
|
| +void AsyncSocksProxyServerSocket::HandleAuth(ByteBufferReader* request) {
|
| uint8_t ver, user_len, pass_len;
|
| std::string user, pass;
|
| if (!request->ReadUInt8(&ver) ||
|
| @@ -793,13 +793,13 @@ void AsyncSocksProxyServerSocket::HandleAuth(ByteBuffer* request) {
|
| }
|
|
|
| void AsyncSocksProxyServerSocket::SendAuthReply(uint8_t result) {
|
| - ByteBuffer response;
|
| + ByteBufferWriter response;
|
| response.WriteUInt8(1); // Negotiation Version
|
| response.WriteUInt8(result);
|
| DirectSend(response);
|
| }
|
|
|
| -void AsyncSocksProxyServerSocket::HandleConnect(ByteBuffer* request) {
|
| +void AsyncSocksProxyServerSocket::HandleConnect(ByteBufferReader* request) {
|
| uint8_t ver, command, reserved, addr_type;
|
| uint32_t ip;
|
| uint16_t port;
|
| @@ -828,7 +828,7 @@ void AsyncSocksProxyServerSocket::SendConnectResult(int result,
|
| if (state_ != SS_CONNECT_PENDING)
|
| return;
|
|
|
| - ByteBuffer response;
|
| + ByteBufferWriter response;
|
| response.WriteUInt8(5); // Socks version
|
| response.WriteUInt8((result != 0)); // 0x01 is generic error
|
| response.WriteUInt8(0); // reserved
|
|
|