Commit ce2c3ebd authored by Kamil Dudka's avatar Kamil Dudka
Browse files

curl --socks5-{basic,gssapi}: control socks5 auth

parent 8924f58c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
  remote-name-all.d remote-name.d remote-time.d request.d resolve.d     \
  retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d  \
  service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d      \
  socks5-basic.d socks5-gssapi.d                                        \
  socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d         \
  speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d    \
  ssl-reqd.d sslv2.d sslv3.d stderr.d suppress-connect-headers.d        \
+7 −0
Original line number Diff line number Diff line
Long: socks5-basic
Help: Enable username/password auth for SOCKS5 proxies
Added: 7.55.0
---
Tells curl to use username/password authentication when connecting to a SOCKS5
proxy.  The username/password authentication is enabled by default.  Use
--socks5-gssapi to force GSS-API authentication to SOCKS5 proxies.
+8 −0
Original line number Diff line number Diff line
Long: socks5-gssapi
Help: Enable GSS-API auth for SOCKS5 proxies
Added: 7.55.0
---
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
The GSS-API authentication is enabled by default (if curl is compiled with
GSS-API support).  Use --socks5-basic to force username/password authentication
to SOCKS5 proxies.
+1 −0
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ struct OperationConfig {
  char *preproxy;
  int socks5_gssapi_nec;    /* The NEC reference server does not protect the
                               encryption type exchange */
  unsigned long socks5_auth;/* auth bitmask for socks5 proxies */
  char *proxy_service_name; /* set authentication service name for HTTP and
                               SOCKS5 proxies */
  char *service_name;       /* set authentication service name for DIGEST-MD5,
+18 −0
Original line number Diff line number Diff line
@@ -251,6 +251,8 @@ static const struct LongShort aliases[]= {
  {"E7", "proxy-capath",             ARG_STRING},
  {"E8", "proxy-insecure",           ARG_BOOL},
  {"E9", "proxy-tlsv1",              ARG_NONE},
  {"EA", "socks5-basic",             ARG_BOOL},
  {"EB", "socks5-gssapi",            ARG_BOOL},
  {"f",  "fail",                     ARG_BOOL},
  {"fa", "fail-early",               ARG_BOOL},
  {"F",  "form",                     ARG_STRING},
@@ -1560,6 +1562,22 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
        config->proxy_ssl_version = CURL_SSLVERSION_TLSv1;
        break;

      case 'A':
        /* --socks5-basic */
        if(toggle)
          config->socks5_auth |= CURLAUTH_BASIC;
        else
          config->socks5_auth &= ~CURLAUTH_BASIC;
        break;

      case 'B':
        /* --socks5-gssapi */
        if(toggle)
          config->socks5_auth |= CURLAUTH_GSSAPI;
        else
          config->socks5_auth &= ~CURLAUTH_GSSAPI;
        break;

      default: /* unknown flag */
        return PARAM_OPTION_UNKNOWN;
      }
Loading