Bug 1056934 - Part 6: Fix bug where TCPSocketParent would not use TLS when requested. r=mcmanus draft
authorByron Campen [:bwc] <docfaraday@gmail.com>
Tue, 03 Jan 2017 12:34:19 -0600
changeset 462525 7a89cd127f9668620ba8293daf8b05b0db169c63
parent 462524 c16b795d49d4c0349425033564dba15fddabf72a
child 542431 18a1fc2ed7a9ae1922e8646c99a43c166ed147e9
push id41791
push userbcampen@mozilla.com
push dateTue, 17 Jan 2017 17:17:59 +0000
reviewersmcmanus
bugs1056934
milestone53.0a1
Bug 1056934 - Part 6: Fix bug where TCPSocketParent would not use TLS when requested. r=mcmanus MozReview-Commit-ID: EQHzJWyzAN9
dom/network/TCPSocketParent.cpp
--- a/dom/network/TCPSocketParent.cpp
+++ b/dom/network/TCPSocketParent.cpp
@@ -142,19 +142,28 @@ TCPSocketParent::RecvOpenBind(const nsCS
   nsCOMPtr<nsISocketTransportService> sts =
     do_GetService("@mozilla.org/network/socket-transport-service;1", &rv);
   if (NS_FAILED(rv)) {
     FireInteralError(this, __LINE__);
     return IPC_OK();
   }
 
   nsCOMPtr<nsISocketTransport> socketTransport;
-  rv = sts->CreateTransport(nullptr, 0,
-                            aRemoteHost, aRemotePort,
-                            nullptr, getter_AddRefs(socketTransport));
+  if (aUseSSL) {
+    const char* socketTypes[1];
+    socketTypes[0] = "ssl";
+    rv = sts->CreateTransport(socketTypes, 1,
+                              aRemoteHost, aRemotePort,
+                              nullptr, getter_AddRefs(socketTransport));
+  } else {
+    rv = sts->CreateTransport(nullptr, 0,
+                              aRemoteHost, aRemotePort,
+                              nullptr, getter_AddRefs(socketTransport));
+  }
+
   if (NS_FAILED(rv)) {
     FireInteralError(this, __LINE__);
     return IPC_OK();
   }
 
   // in most cases aReuseAddrPort is false, but ICE TCP needs
   // sockets options set that allow addr/port reuse
   socketTransport->SetReuseAddrPort(aReuseAddrPort);