netwerk/socket/nsSOCKSSocketProvider.cpp

Thu, 15 Jan 2015 15:55:04 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:55:04 +0100
branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
permissions
-rw-r--r--

Back out 97036ab72558 which inappropriately compared turds to third parties.

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
     2  *
     3  * This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #include "nsIServiceManager.h"
     8 #include "nsSOCKSSocketProvider.h"
     9 #include "nsSOCKSIOLayer.h"
    10 #include "nsCOMPtr.h"
    11 #include "nsError.h"
    13 //////////////////////////////////////////////////////////////////////////
    15 NS_IMPL_ISUPPORTS(nsSOCKSSocketProvider, nsISocketProvider)
    17 nsresult
    18 nsSOCKSSocketProvider::CreateV4(nsISupports *aOuter, REFNSIID aIID, void **aResult)
    19 {
    20     nsresult rv;
    21     nsCOMPtr<nsISocketProvider> inst =
    22             new nsSOCKSSocketProvider(NS_SOCKS_VERSION_4);
    23     if (!inst)
    24         rv = NS_ERROR_OUT_OF_MEMORY;
    25     else
    26         rv = inst->QueryInterface(aIID, aResult); 
    27     return rv;
    28 }
    30 nsresult
    31 nsSOCKSSocketProvider::CreateV5(nsISupports *aOuter, REFNSIID aIID, void **aResult)
    32 {
    33     nsresult rv;
    34     nsCOMPtr<nsISocketProvider> inst =
    35             new nsSOCKSSocketProvider(NS_SOCKS_VERSION_5);
    36     if (!inst)
    37         rv = NS_ERROR_OUT_OF_MEMORY;
    38     else
    39         rv = inst->QueryInterface(aIID, aResult); 
    40     return rv;
    41 }
    43 NS_IMETHODIMP
    44 nsSOCKSSocketProvider::NewSocket(int32_t family,
    45                                  const char *host, 
    46                                  int32_t port,
    47                                  nsIProxyInfo *proxy,
    48                                  uint32_t flags,
    49                                  PRFileDesc **result,
    50                                  nsISupports **socksInfo)
    51 {
    52     PRFileDesc *sock;
    54     sock = PR_OpenTCPSocket(family);
    55     if (!sock)
    56         return NS_ERROR_OUT_OF_MEMORY;
    58     nsresult rv = nsSOCKSIOLayerAddToSocket(family,
    59                                             host, 
    60                                             port,
    61                                             proxy,
    62                                             mVersion,
    63                                             flags,
    64                                             sock, 
    65                                             socksInfo);
    66     if (NS_SUCCEEDED(rv)) {
    67         *result = sock;
    68         return NS_OK;
    69     }
    71     return NS_ERROR_SOCKET_CREATE_FAILED;
    72 }
    74 NS_IMETHODIMP
    75 nsSOCKSSocketProvider::AddToSocket(int32_t family,
    76                                    const char *host,
    77                                    int32_t port,
    78                                    nsIProxyInfo *proxy,
    79                                    uint32_t flags,
    80                                    PRFileDesc *sock,
    81                                    nsISupports **socksInfo)
    82 {
    83     nsresult rv = nsSOCKSIOLayerAddToSocket(family,
    84                                             host, 
    85                                             port,
    86                                             proxy,
    87                                             mVersion,
    88                                             flags,
    89                                             sock, 
    90                                             socksInfo);
    92     if (NS_FAILED(rv))
    93         rv = NS_ERROR_SOCKET_CREATE_FAILED;
    94     return rv;
    95 }

mercurial