| Index: webrtc/p2p/base/port.cc
|
| diff --git a/webrtc/p2p/base/port.cc b/webrtc/p2p/base/port.cc
|
| index fbc64f2e0a784175a2f1f94ae25bac4aca3b710a..562df1abf1156046a39e954099dbc4954f9de479 100644
|
| --- a/webrtc/p2p/base/port.cc
|
| +++ b/webrtc/p2p/base/port.cc
|
| @@ -597,6 +597,9 @@ void Port::SendBindingResponse(StunMessage* request,
|
| << "Sent STUN ping response"
|
| << ", to=" << addr.ToSensitiveString()
|
| << ", id=" << rtc::hex_encode(response.transaction_id());
|
| +
|
| + // Update the stats of corresponding connection.
|
| + conn->sent_ping_responses_++;
|
| }
|
| }
|
|
|
| @@ -806,10 +809,16 @@ Connection::Connection(Port* port,
|
| send_rate_tracker_(100, 10u),
|
| sent_packets_discarded_(0),
|
| sent_packets_total_(0),
|
| + sent_ping_requests_total_(0),
|
| + sent_ping_requests_before_first_response_(0),
|
| + sent_ping_responses_(0),
|
| + recv_ping_requests_(0),
|
| + recv_ping_responses_(0),
|
| reported_(false),
|
| state_(STATE_WAITING),
|
| receiving_timeout_(WEAK_CONNECTION_RECEIVE_TIMEOUT),
|
| - time_created_ms_(rtc::TimeMillis()) {
|
| + time_created_ms_(rtc::TimeMillis()),
|
| + received_first_response_(false) {
|
| // All of our connections start in WAITING state.
|
| // TODO(mallinath) - Start connections from STATE_FROZEN.
|
| // Wire up to send stun packets
|
| @@ -992,6 +1001,8 @@ void Connection::HandleBindingRequest(IceMessage* msg) {
|
| return;
|
| }
|
|
|
| + recv_ping_requests_++;
|
| +
|
| // This is a validated stun request from remote peer.
|
| port_->SendBindingResponse(msg, remote_addr);
|
|
|
| @@ -1256,6 +1267,10 @@ void Connection::OnConnectionRequestResponse(ConnectionRequest* request,
|
| }
|
|
|
| rtt_ = (RTT_RATIO * rtt_ + rtt) / (RTT_RATIO + 1);
|
| + recv_ping_responses_++;
|
| + if (!received_first_response_) {
|
| + received_first_response_ = true;
|
| + }
|
|
|
| MaybeAddPrflxCandidate(request, response);
|
| }
|
| @@ -1304,6 +1319,10 @@ void Connection::OnConnectionRequestSent(ConnectionRequest* request) {
|
| LOG_JV(sev, this) << "Sent STUN ping"
|
| << ", id=" << rtc::hex_encode(request->id())
|
| << ", use_candidate=" << use_candidate;
|
| + sent_ping_requests_total_++;
|
| + if (!received_first_response_) {
|
| + sent_ping_requests_before_first_response_++;
|
| + }
|
| }
|
|
|
| void Connection::HandleRoleConflictFromPeer() {
|
| @@ -1377,6 +1396,26 @@ size_t Connection::sent_total_packets() {
|
| return sent_packets_total_;
|
| }
|
|
|
| +size_t Connection::sent_ping_requests_total() {
|
| + return sent_ping_requests_total_;
|
| +}
|
| +
|
| +size_t Connection::sent_ping_requests_before_first_response() {
|
| + return sent_ping_requests_before_first_response_;
|
| +}
|
| +
|
| +size_t Connection::sent_ping_responses() {
|
| + return sent_ping_responses_;
|
| +}
|
| +
|
| +size_t Connection::recv_ping_responses() {
|
| + return recv_ping_responses_;
|
| +}
|
| +
|
| +size_t Connection::recv_ping_requests() {
|
| + return recv_ping_requests_;
|
| +}
|
| +
|
| void Connection::MaybeAddPrflxCandidate(ConnectionRequest* request,
|
| StunMessage* response) {
|
| // RFC 5245
|
|
|