]> granicus.if.org Git - curl/commitdiff
CURLOPT_SOCKS5_GSSAPI_SERVICE: Merged with CURLOPT_PROXY_SERVICE_NAME
authorSteve Holme <steve_holme@hotmail.com>
Sat, 9 Apr 2016 19:47:05 +0000 (20:47 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 9 Apr 2016 19:47:05 +0000 (20:47 +0100)
As these two options provide identical functionality, the former for
SOCK5 proxies and the latter for HTTP proxies, merged the two options
together.

As such CURLOPT_SOCKS5_GSSAPI_SERVICE is marked as deprecated as of
7.49.0.

13 files changed:
docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
docs/libcurl/symbols-in-versions
include/curl/curl.h
lib/socks_gssapi.c
lib/socks_sspi.c
lib/url.c
lib/url.h
lib/urldata.h
src/tool_cfgable.c
src/tool_cfgable.h
src/tool_getparam.c
src/tool_operate.c

index 237c60ffb6a66cef4b0c1a89a3582bf265e8ef28..a010382fdce5f2b0a809e64fdb519ac93a3d5377 100644 (file)
@@ -29,7 +29,8 @@ CURLOPT_PROXY_SERVICE_NAME \- proxy authentication service name
 CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SERVICE_NAME, char *name);
 .SH DESCRIPTION
 Pass a char * as parameter to a string holding the \fIname\fP of the
-service. The default service name is "HTTP". This option allows you to change it.
+service. The default service name is "HTTP" for HTTP based proxies and "rcmd"
+for SOCKS5. This option allows you to change it.
 .SH DEFAULT
 See above
 .SH PROTOCOLS
@@ -37,7 +38,7 @@ All network protocols
 .SH EXAMPLE
 TODO
 .SH AVAILABILITY
-Added in 7.43.0
+Added in 7.43.0 for HTTP proxies, 7.49.0 for SOCKS5 proxies.
 .SH RETURN VALUE
 Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 CURLE_OUT_OF_MEMORY if there was insufficient heap space.
index 784d16857a18231e2cf72651863a6122f6014024..3e1544f7e366cb30d303634e7542daa3696d173b 100644 (file)
@@ -5,7 +5,7 @@
 .\" *                            | (__| |_| |  _ <| |___
 .\" *                             \___|\___/|_| \_\_____|
 .\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
 .\" *
 .\" * This software is licensed as described in the file COPYING, which
 .\" * you should have received as part of this distribution. The terms
 .\"
 .TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
 .SH NAME
-CURLOPT_SOCKS5_GSSAPI_SERVICE \- proxy socks gssapi service name
+CURLOPT_SOCKS5_GSSAPI_SERVICE \- SOCKS5 proxy authentication service name
 .SH SYNOPSIS
 #include <curl/curl.h>
 
 CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_GSSAPI_SERVICE, char *name);
 .SH DESCRIPTION
-Pass a char * as parameter to a string holding the \fIname\fP of the
-service. The default service name for a SOCKS5 server is
-rcmd/server-fqdn. This option allows you to change it.
+Deprecated since 7.49.0. Use \CURLOPT_PROXY_SERVICE_NAME(3)\fP instead.
+
+Pass a char * as parameter to a string holding the \fIname\fP of the service.
+The default service name for a SOCKS5 server is "rcmd". This option allows you
+to change it.
 .SH DEFAULT
 See above
 .SH PROTOCOLS
-Most
+All network protocols
 .SH EXAMPLE
 TODO
 .SH AVAILABILITY
-Added in 7.19.4
+Added in 7.19.4, deprecated in 7.49.0
 .SH RETURN VALUE
 Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 CURLE_OUT_OF_MEMORY if there was insufficient heap space.
index f116aca7b89081b43695458e1390e2b7e3545563..3e64039a4dd7dd579b31ff4d23bee844f2407d97 100644 (file)
@@ -492,7 +492,7 @@ CURLOPT_SHARE                   7.10
 CURLOPT_SOCKOPTDATA             7.16.0
 CURLOPT_SOCKOPTFUNCTION         7.16.0
 CURLOPT_SOCKS5_GSSAPI_NEC       7.19.4
-CURLOPT_SOCKS5_GSSAPI_SERVICE   7.19.4
+CURLOPT_SOCKS5_GSSAPI_SERVICE   7.19.4        7.49.0
 CURLOPT_SOURCE_HOST             7.12.1        -           7.15.5
 CURLOPT_SOURCE_PATH             7.12.1        -           7.15.5
 CURLOPT_SOURCE_PORT             7.12.1        -           7.15.5
index 954b014df45bd98cade45987f68dfb1644818c88..a8697bb2a7f3ed34abd00c25fa2c7eacaf3e2ab1 100644 (file)
@@ -1462,7 +1462,7 @@ typedef enum {
   CINIT(TFTP_BLKSIZE, LONG, 178),
 
   /* Socks Service */
-  CINIT(SOCKS5_GSSAPI_SERVICE, STRINGPOINT, 179),
+  CINIT(SOCKS5_GSSAPI_SERVICE, STRINGPOINT, 179), /* DEPRECATED, do not use! */
 
   /* Socks Service */
   CINIT(SOCKS5_GSSAPI_NEC, LONG, 180),
index 09457aecd76acd01f7654d64aeeda3e5c7ffeb53..e3fc260cb030180b6dbcdd92e34ababd8bbf6c34 100644 (file)
@@ -120,7 +120,8 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
   unsigned short   us_length;
   char             *user=NULL;
   unsigned char socksreq[4]; /* room for GSS-API exchange header only */
-  char *serviceptr = data->set.str[STRING_SOCKS5_GSSAPI_SERVICE];
+  const char *serviceptr = data->set.str[STRING_PROXY_SERVICE_NAME] ?
+                           data->set.str[STRING_PROXY_SERVICE_NAME] : "rcmd";
 
   /*   GSS-API request looks like
    * +----+------+-----+----------------+
index 5f650be675e5d1652041ad7bb4db03075adb509d..c5f25b66f9cfbe07d4b20692f120ed6bf1e1deff 100644 (file)
@@ -83,7 +83,8 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
   unsigned short us_length;
   unsigned long qop;
   unsigned char socksreq[4]; /* room for GSS-API exchange header only */
-  char *service = data->set.str[STRING_SOCKS5_GSSAPI_SERVICE];
+  const char *service = data->set.str[STRING_PROXY_SERVICE_NAME] ?
+                        data->set.str[STRING_PROXY_SERVICE_NAME]  : "rcmd";
 
   /*   GSS-API request looks like
    * +----+------+-----+----------------+
index 468e143307ed0389662cecbe5dcaa2d3ffa66b4d..b597becb24aa18637bb4060fe670f04d43e79791 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -571,11 +571,6 @@ CURLcode Curl_init_userdefined(struct UserDefined *set)
    * seem not to follow rfc1961 section 4.3/4.4
    */
   set->socks5_gssapi_nec = FALSE;
-  /* set default GSS-API service name */
-  result = setstropt(&set->str[STRING_SOCKS5_GSSAPI_SERVICE],
-                     CURL_DEFAULT_SOCKS5_GSSAPI_SERVICE);
-  if(result)
-    return result;
 #endif
 
   /* This is our preferred CA cert bundle/path since install time */
@@ -1478,28 +1473,21 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
 #endif   /* CURL_DISABLE_PROXY */
 
 #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
-  case CURLOPT_SOCKS5_GSSAPI_SERVICE:
+  case CURLOPT_SOCKS5_GSSAPI_NEC:
     /*
-     * Set GSS-API service name
+     * Set flag for NEC SOCK5 support
      */
-    result = setstropt(&data->set.str[STRING_SOCKS5_GSSAPI_SERVICE],
-                       va_arg(param, char *));
+    data->set.socks5_gssapi_nec = (0 != va_arg(param, long)) ? TRUE : FALSE;
     break;
 
+  case CURLOPT_SOCKS5_GSSAPI_SERVICE:
   case CURLOPT_PROXY_SERVICE_NAME:
     /*
-     * Set negotiate proxy service name
+     * Set proxy authentication service name for Kerberos 5 and SPNEGO
      */
     result = setstropt(&data->set.str[STRING_PROXY_SERVICE_NAME],
                        va_arg(param, char *));
     break;
-
-  case CURLOPT_SOCKS5_GSSAPI_NEC:
-    /*
-     * set flag for nec socks5 support
-     */
-    data->set.socks5_gssapi_nec = (0 != va_arg(param, long)) ? TRUE : FALSE;
-    break;
 #endif
 
 #if !defined(CURL_DISABLE_CRYPTO_AUTH) || defined(USE_KERBEROS5) || \
index e7a9ddf080c0e6bc175ca3913218ca71851b5984..2b25731ea946b3c581ea740eea9d7189cc9d8f10 100644 (file)
--- a/lib/url.h
+++ b/lib/url.h
@@ -67,8 +67,6 @@ void Curl_getoff_all_pipelines(struct SessionHandle *data,
 void Curl_close_connections(struct SessionHandle *data);
 
 #define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */
-#define CURL_DEFAULT_SOCKS5_GSSAPI_SERVICE "rcmd" /* default socks5 gssapi
-                                                     service */
 
 CURLcode Curl_connected_proxy(struct connectdata *conn, int sockindex);
 
index 402a1970d400e8a7498e59186e0b3377d28d7f0c..78593eecc1050130c06972ff5c4e041fe3e26f5f 100644 (file)
@@ -1407,7 +1407,6 @@ enum dupstring {
   STRING_SSH_KNOWNHOSTS,  /* file name of knownhosts file */
 #endif
 #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
-  STRING_SOCKS5_GSSAPI_SERVICE, /* GSSAPI service name */
   STRING_PROXY_SERVICE_NAME, /* Proxy service name */
 #endif
 #if !defined(CURL_DISABLE_CRYPTO_AUTH) || defined(USE_KERBEROS5) || \
index 6c2aced554b5c335f41972a057b31c63d78ac744..4517714cda05d456807b156e7ffb93b3df1f51c7 100644 (file)
@@ -137,7 +137,6 @@ static void free_config_fields(struct OperationConfig *config)
   curl_slist_free_all(config->resolve);
 
   Curl_safefree(config->socksproxy);
-  Curl_safefree(config->socks5_gssapi_service);
   Curl_safefree(config->proxy_service_name);
   Curl_safefree(config->service_name);
 
index fba5617add9d8f5fbbaa24a1b488619783a38403..ba91062c6ff53e313f194c06745a1c5941c1eb8d 100644 (file)
@@ -165,12 +165,10 @@ struct OperationConfig {
 
   char *socksproxy;         /* set to server string */
   int socksver;             /* set to CURLPROXY_SOCKS* define */
-  char *socks5_gssapi_service;  /* set service name for gssapi principal
-                                 * default rcmd */
-  char *proxy_service_name; /* set service name for proxy negotiation
-                             * default HTTP */
-  int socks5_gssapi_nec ;   /* The NEC reference server does not protect
-                             * the encryption type exchange */
+  int socks5_gssapi_nec;    /* The NEC reference server does not protect the
+                               encryption type exchange */
+  char *proxy_service_name; /* set authentication service name for HTTP and
+                               SOCKS5 proxies */
   char *service_name;       /* set authentication service name for DIGEST-MD5,
                                Kerberos 5 and SPNEGO */
 
index cf848c6d7c42d182027d03a0cc2c469d95801733..70290d19e5704f255e2474d38d2b6bdfd07ab561 100644 (file)
@@ -158,7 +158,6 @@ static const struct LongShort aliases[]= {
   {"$3", "keepalive-time",           TRUE},
   {"$4", "post302",                  FALSE},
   {"$5", "noproxy",                  TRUE},
-  {"$6", "socks5-gssapi-service",    TRUE},
   {"$7", "socks5-gssapi-nec",        FALSE},
   {"$8", "proxy1.0",                 TRUE},
   {"$9", "tftp-blksize",             TRUE},
@@ -176,6 +175,9 @@ static const struct LongShort aliases[]= {
   {"$L", "test-event",               FALSE},
   {"$M", "unix-socket",              TRUE},
   {"$N", "path-as-is",               FALSE},
+  {"$O", "socks5-gssapi-service",    TRUE},
+         /* 'socks5-gssapi-service' merged with'proxy-service-name' and
+            deprecated since 7.49.0 */
   {"$O", "proxy-service-name",       TRUE},
   {"$P", "service-name",             TRUE},
   {"$Q", "proto-default",            TRUE},
@@ -901,10 +903,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
         /* This specifies the noproxy list */
         GetStr(&config->noproxy, nextarg);
         break;
-      case '6': /* --socks5-gssapi-service */
-        GetStr(&config->socks5_gssapi_service, nextarg);
-        break;
-      case '7': /* --socks5-gssapi-nec*/
+       case '7': /* --socks5-gssapi-nec*/
         config->socks5_gssapi_nec = toggle;
         break;
       case '8': /* --proxy1.0 */
index 0387e9dcf540f33238dbbb3be10fb10c69ea955f..c8bf12bb266048c37f2a628f750d5f71623bcfbe 100644 (file)
@@ -1209,11 +1209,6 @@ static CURLcode operate_do(struct GlobalConfig *global,
           my_setopt_enum(curl, CURLOPT_FTP_SSL_CCC,
                          (long)config->ftp_ssl_ccc_mode);
 
-        /* new in curl 7.19.4 */
-        if(config->socks5_gssapi_service)
-          my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_SERVICE,
-                        config->socks5_gssapi_service);
-
         /* new in curl 7.19.4 */
         if(config->socks5_gssapi_nec)
           my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_NEC,