Bug 1252171: Update last_used_ on TCP port mappings when they are used, similar to UDP. r?drno draft
authorByron Campen [:bwc] <docfaraday@gmail.com>
Mon, 29 Feb 2016 13:04:42 -0600
changeset 335771 25003fdb6b0d5d929b199e1c91b0657b93901442
parent 335409 9da51cb4974e03cdd8fa45a34086fe1033abfeaf
child 515209 2e04df37eb94a475a92d5ae006bc1bb2d50753fa
push id11868
push userbcampen@mozilla.com
push dateTue, 01 Mar 2016 14:16:03 +0000
reviewersdrno
bugs1252171
milestone47.0a1
Bug 1252171: Update last_used_ on TCP port mappings when they are used, similar to UDP. r?drno MozReview-Commit-ID: DNinTza44la
media/mtransport/test_nr_socket.cpp
--- a/media/mtransport/test_nr_socket.cpp
+++ b/media/mtransport/test_nr_socket.cpp
@@ -480,27 +480,33 @@ int TestNrSocket::write(const void *msg,
     }
     // This is TCP only
     MOZ_ASSERT(port_mappings_.size() == 1);
     r_log(LOG_GENERIC, LOG_INFO,
           "PortMapping %s -> %s writing",
           port_mappings_.front()->external_socket_->my_addr().as_string,
           port_mappings_.front()->remote_address_.as_string);
 
+    port_mappings_.front()->last_used_ = PR_IntervalNow();
     return port_mappings_.front()->external_socket_->write(msg, len, written);
   }
 }
 
 int TestNrSocket::read(void *buf, size_t maxlen, size_t *len) {
 
   if (port_mappings_.empty()) {
     return internal_socket_->read(buf, maxlen, len);
   } else {
     MOZ_ASSERT(port_mappings_.size() == 1);
-    return port_mappings_.front()->external_socket_->read(buf, maxlen, len);
+    int bytesRead =
+      port_mappings_.front()->external_socket_->read(buf, maxlen, len);
+    if (bytesRead > 0 && nat_->refresh_on_ingress_) {
+      port_mappings_.front()->last_used_ = PR_IntervalNow();
+    }
+    return bytesRead;
   }
 }
 
 int TestNrSocket::async_wait(int how, NR_async_cb cb, void *cb_arg,
                              char *function, int line) {
   r_log(LOG_GENERIC, LOG_DEBUG, "TestNrSocket %s waiting for %s",
                                 internal_socket_->my_addr().as_string,
                                 how == NR_ASYNC_WAIT_READ ? "read" : "write");