Fix OnClose(socket, NO_ERROR) compile error on Linux.
Merge Peerconnection_client_dev with Peerconnection_client. BUG= TEST= Review URL: http://webrtc-codereview.appspot.com/215002 git-svn-id: http://webrtc.googlecode.com/svn/trunk@720 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
1843664f2a
commit
73ba4160f6
@ -291,7 +291,7 @@ bool PeerConnectionClient::ReadIntoBuffer(talk_base::AsyncSocket* socket,
|
|||||||
socket->Close();
|
socket->Close();
|
||||||
// Since we closed the socket, there was no notification delivered
|
// Since we closed the socket, there was no notification delivered
|
||||||
// to us. Compensate by letting ourselves know.
|
// to us. Compensate by letting ourselves know.
|
||||||
OnClose(socket, NO_ERROR);
|
OnClose(socket, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// We haven't received everything. Just continue to accept data.
|
// We haven't received everything. Just continue to accept data.
|
||||||
|
@ -305,26 +305,27 @@ void Conductor::UIThreadCallback(int msg_id, void* data) {
|
|||||||
case SEND_MESSAGE_TO_PEER: {
|
case SEND_MESSAGE_TO_PEER: {
|
||||||
LOG(INFO) << "SEND_MESSAGE_TO_PEER";
|
LOG(INFO) << "SEND_MESSAGE_TO_PEER";
|
||||||
std::string* msg = reinterpret_cast<std::string*>(data);
|
std::string* msg = reinterpret_cast<std::string*>(data);
|
||||||
if (client_->IsSendingMessage()) {
|
if (msg) {
|
||||||
ASSERT(msg != NULL);
|
// For convenience, we always run the message through the queue.
|
||||||
|
// This way we can be sure that messages are sent to the server
|
||||||
|
// in the same order they were signaled without much hassle.
|
||||||
pending_messages_.push_back(msg);
|
pending_messages_.push_back(msg);
|
||||||
} else {
|
|
||||||
if (!msg && !pending_messages_.empty()) {
|
|
||||||
msg = pending_messages_.front();
|
|
||||||
pending_messages_.pop_front();
|
|
||||||
}
|
|
||||||
if (msg) {
|
|
||||||
bool ok = client_->SendToPeer(peer_id_, *msg);
|
|
||||||
if (!ok && peer_id_ != -1) {
|
|
||||||
LOG(LS_ERROR) << "SendToPeer failed";
|
|
||||||
DisconnectFromServer();
|
|
||||||
}
|
|
||||||
delete msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!peer_connection_.get())
|
|
||||||
peer_id_ = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!pending_messages_.empty() && !client_->IsSendingMessage()) {
|
||||||
|
msg = pending_messages_.front();
|
||||||
|
pending_messages_.pop_front();
|
||||||
|
|
||||||
|
if (!client_->SendToPeer(peer_id_, *msg) && peer_id_ != -1) {
|
||||||
|
LOG(LS_ERROR) << "SendToPeer failed";
|
||||||
|
DisconnectFromServer();
|
||||||
|
}
|
||||||
|
delete msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!peer_connection_.get())
|
||||||
|
peer_id_ = -1;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,6 +289,9 @@ bool PeerConnectionClient::ReadIntoBuffer(talk_base::AsyncSocket* socket,
|
|||||||
if (GetHeaderValue(*data, i, kConnection, &should_close) &&
|
if (GetHeaderValue(*data, i, kConnection, &should_close) &&
|
||||||
should_close.compare("close") == 0) {
|
should_close.compare("close") == 0) {
|
||||||
socket->Close();
|
socket->Close();
|
||||||
|
// Since we closed the socket, there was no notification delivered
|
||||||
|
// to us. Compensate by letting ourselves know.
|
||||||
|
OnClose(socket, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// We haven't received everything. Just continue to accept data.
|
// We haven't received everything. Just continue to accept data.
|
||||||
@ -472,7 +475,7 @@ void PeerConnectionClient::OnClose(talk_base::AsyncSocket* socket, int err) {
|
|||||||
callback_->OnMessageSent(err);
|
callback_->OnMessageSent(err);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Failed to connect to the server.
|
LOG(WARNING) << "Failed to connect to the server";
|
||||||
Close();
|
Close();
|
||||||
callback_->OnDisconnected();
|
callback_->OnDisconnected();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user