1*6236dae4SAndroid Build Coastguard Worker--- 2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al. 3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl 4*6236dae4SAndroid Build Coastguard WorkerTitle: CURLOPT_POSTQUOTE 5*6236dae4SAndroid Build Coastguard WorkerSection: 3 6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl 7*6236dae4SAndroid Build Coastguard WorkerSee-also: 8*6236dae4SAndroid Build Coastguard Worker - CURLOPT_PREQUOTE (3) 9*6236dae4SAndroid Build Coastguard Worker - CURLOPT_QUOTE (3) 10*6236dae4SAndroid Build Coastguard WorkerProtocol: 11*6236dae4SAndroid Build Coastguard Worker - FTP 12*6236dae4SAndroid Build Coastguard Worker - SFTP 13*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.1 14*6236dae4SAndroid Build Coastguard Worker--- 15*6236dae4SAndroid Build Coastguard Worker 16*6236dae4SAndroid Build Coastguard Worker# NAME 17*6236dae4SAndroid Build Coastguard Worker 18*6236dae4SAndroid Build Coastguard WorkerCURLOPT_POSTQUOTE - (S)FTP commands to run after the transfer 19*6236dae4SAndroid Build Coastguard Worker 20*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS 21*6236dae4SAndroid Build Coastguard Worker 22*6236dae4SAndroid Build Coastguard Worker~~~c 23*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h> 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard WorkerCURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTQUOTE, 26*6236dae4SAndroid Build Coastguard Worker struct curl_slist *cmds); 27*6236dae4SAndroid Build Coastguard Worker~~~ 28*6236dae4SAndroid Build Coastguard Worker 29*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION 30*6236dae4SAndroid Build Coastguard Worker 31*6236dae4SAndroid Build Coastguard WorkerPass a pointer to a linked list of FTP or SFTP commands to pass to the server 32*6236dae4SAndroid Build Coastguard Workerafter your FTP transfer request. The commands are only issued if no error 33*6236dae4SAndroid Build Coastguard Workeroccur. The linked list should be a fully valid list of struct curl_slist 34*6236dae4SAndroid Build Coastguard Workerstructs properly filled in as described for CURLOPT_QUOTE(3). 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard WorkerUsing this option multiple times makes the last set list override the previous 37*6236dae4SAndroid Build Coastguard Workerones. Set it to NULL to disable its use again. 38*6236dae4SAndroid Build Coastguard Worker 39*6236dae4SAndroid Build Coastguard Workerlibcurl does not copy the list, it needs to be kept around until after the 40*6236dae4SAndroid Build Coastguard Workertransfer has completed. 41*6236dae4SAndroid Build Coastguard Worker 42*6236dae4SAndroid Build Coastguard Worker# DEFAULT 43*6236dae4SAndroid Build Coastguard Worker 44*6236dae4SAndroid Build Coastguard WorkerNULL 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS% 47*6236dae4SAndroid Build Coastguard Worker 48*6236dae4SAndroid Build Coastguard Worker# EXAMPLE 49*6236dae4SAndroid Build Coastguard Worker 50*6236dae4SAndroid Build Coastguard Worker~~~c 51*6236dae4SAndroid Build Coastguard Workerint main(void) 52*6236dae4SAndroid Build Coastguard Worker{ 53*6236dae4SAndroid Build Coastguard Worker struct curl_slist *cmdlist = NULL; 54*6236dae4SAndroid Build Coastguard Worker cmdlist = curl_slist_append(cmdlist, "RNFR source-name"); 55*6236dae4SAndroid Build Coastguard Worker cmdlist = curl_slist_append(cmdlist, "RNTO new-name"); 56*6236dae4SAndroid Build Coastguard Worker 57*6236dae4SAndroid Build Coastguard Worker CURL *curl = curl_easy_init(); 58*6236dae4SAndroid Build Coastguard Worker if(curl) { 59*6236dae4SAndroid Build Coastguard Worker CURLcode res; 60*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/foo.bin"); 61*6236dae4SAndroid Build Coastguard Worker 62*6236dae4SAndroid Build Coastguard Worker /* pass in the FTP commands to run after the transfer */ 63*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(curl, CURLOPT_POSTQUOTE, cmdlist); 64*6236dae4SAndroid Build Coastguard Worker 65*6236dae4SAndroid Build Coastguard Worker res = curl_easy_perform(curl); 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard Worker curl_easy_cleanup(curl); 68*6236dae4SAndroid Build Coastguard Worker } 69*6236dae4SAndroid Build Coastguard Worker curl_slist_free_all(cmdlist); 70*6236dae4SAndroid Build Coastguard Worker} 71*6236dae4SAndroid Build Coastguard Worker~~~ 72*6236dae4SAndroid Build Coastguard Worker 73*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY% 74*6236dae4SAndroid Build Coastguard Worker 75*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard WorkerReturns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. 78