Bug 1311044 - show error when connection to domain socket is failed; r=bagder draft
authorLiang-Heng Chen <xeonchen@mozilla.com>
Wed, 19 Oct 2016 18:28:02 +0800
changeset 427447 b9d9a2e49202b75a72e9ded6b6161726a02ce46f
parent 426386 d583050cc25bac22ff57360fb5f71622838abd9b
child 534460 bc09de6241f4f7424e3b046db1b8fcbb4f53b1a4
push id33010
push userbmo:xeonchen@mozilla.com
push dateThu, 20 Oct 2016 09:53:21 +0000
reviewersbagder
bugs1311044
milestone52.0a1
Bug 1311044 - show error when connection to domain socket is failed; r=bagder MozReview-Commit-ID: GtqKiMVwQyX
netwerk/socket/nsSOCKSIOLayer.cpp
--- a/netwerk/socket/nsSOCKSIOLayer.cpp
+++ b/netwerk/socket/nsSOCKSIOLayer.cpp
@@ -508,20 +508,26 @@ nsSOCKSSocketInfo::ConnectToProxy(PRFile
 
         NetAddr proxy = mInternalProxyAddr;
         FixupAddressFamily(fd, &proxy);
         PRNetAddr prProxy;
         NetAddrToPRNetAddr(&proxy, &prProxy);
         status = fd->lower->methods->connect(fd->lower, &prProxy, mTimeout);
         if (status != PR_SUCCESS) {
             PRErrorCode c = PR_GetError();
+
             // If EINPROGRESS, return now and check back later after polling
             if (c == PR_WOULD_BLOCK_ERROR || c == PR_IN_PROGRESS_ERROR) {
                 mState = SOCKS_CONNECTING_TO_PROXY;
                 return status;
+            } else if (IsHostDomainSocket()) {
+                LOGERROR(("socks: connect to domain socket failed (%d)", c));
+                PR_SetError(PR_CONNECT_REFUSED_ERROR, 0);
+                mState = SOCKS_FAILED;
+                return status;
             }
         }
     } while (status != PR_SUCCESS);
 
     // Connected now, start SOCKS
     if (mVersion == 4)
         return WriteV4ConnectRequest();
     return WriteV5AuthRequest();