Alexander Krasnostavsky's FTP third party transfer (proxy) support
This commit is contained in:
51
lib/url.c
51
lib/url.c
@@ -1337,6 +1337,57 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
|
||||
data->set.tcp_nodelay = (bool)va_arg(param, long);
|
||||
break;
|
||||
|
||||
/*********** 3rd party transfer options ***********/
|
||||
case CURLOPT_SOURCE_HOST:
|
||||
/*
|
||||
* Use SOURCE HOST
|
||||
*/
|
||||
data->set.source_host = va_arg(param, char *);
|
||||
data->set.printhost = (data->set.source_host != NULL);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOURCE_PORT:
|
||||
/*
|
||||
* Use SOURCE PORT
|
||||
*/
|
||||
data->set.source_port = va_arg(param, char *);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOURCE_USERPWD:
|
||||
/*
|
||||
* Use SOURCE USER[:PASSWORD]
|
||||
*/
|
||||
data->set.source_userpwd = va_arg(param, char *);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOURCE_PATH:
|
||||
/*
|
||||
* Use SOURCE PATH
|
||||
*/
|
||||
data->set.source_path = va_arg(param, char *);
|
||||
break;
|
||||
|
||||
case CURLOPT_PASV_HOST:
|
||||
/*
|
||||
* Indicates whether source or target host is passive
|
||||
*/
|
||||
data->set.pasvHost = va_arg(param, long)?CURL_SOURCE_PASV:CURL_TARGET_PASV;
|
||||
break;
|
||||
|
||||
case CURLOPT_SOURCE_PREQUOTE:
|
||||
/*
|
||||
* List of RAW FTP commands to use before a transfer on the source host
|
||||
*/
|
||||
data->set.source_prequote = va_arg(param, struct curl_slist *);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOURCE_POSTQUOTE:
|
||||
/*
|
||||
* List of RAW FTP commands to use after a transfer on the source host
|
||||
*/
|
||||
data->set.source_postquote = va_arg(param, struct curl_slist *);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* unknown tag and its companion, just ignore: */
|
||||
return CURLE_FAILED_INIT; /* correct this */
|
||||
|
||||
Reference in New Issue
Block a user