Files correlati : omento : Aggiornata cUrl alla ultima versione su Github: 7.56.1 git-svn-id: svn://10.65.10.50/branches/R_10_00@24202 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" **************************************************************************
 | |
| .\" *                                  _   _ ____  _
 | |
| .\" *  Project                     ___| | | |  _ \| |
 | |
| .\" *                             / __| | | | |_) | |
 | |
| .\" *                            | (__| |_| |  _ <| |___
 | |
| .\" *                             \___|\___/|_| \_\_____|
 | |
| .\" *
 | |
| .\" * Copyright (C) 1998 - 2017, 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
 | |
| .\" * are also available at https://curl.haxx.se/docs/copyright.html.
 | |
| .\" *
 | |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | |
| .\" * copies of the Software, and permit persons to whom the Software is
 | |
| .\" * furnished to do so, under the terms of the COPYING file.
 | |
| .\" *
 | |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
| .\" * KIND, either express or implied.
 | |
| .\" *
 | |
| .\" **************************************************************************
 | |
| .\"
 | |
| .TH CURLOPT_CHUNK_BGN_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
 | |
| .SH NAME
 | |
| CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
 | |
| .SH SYNOPSIS
 | |
| .nf
 | |
| #include <curl/curl.h>
 | |
| 
 | |
| long chunk_bgn_callback(const void *transfer_info, void *ptr,
 | |
|                         int remains);
 | |
| 
 | |
| CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_BGN_FUNCTION,
 | |
|                           chunk_bgn_callback);
 | |
| .SH DESCRIPTION
 | |
| Pass a pointer to your callback function, which should match the prototype
 | |
| shown above.
 | |
| 
 | |
| This callback function gets called by libcurl before a part of the stream is
 | |
| going to be transferred (if the transfer supports chunks).
 | |
| 
 | |
| The \fItransfer_info\fP pointer will point to a struct curl_fileinfo with
 | |
| details about the file that is about to get transferred.
 | |
| 
 | |
| This callback makes sense only when using the \fICURLOPT_WILDCARDMATCH(3)\fP
 | |
| option for now.
 | |
| 
 | |
| The target of transfer_info parameter is a "feature depended" structure. For
 | |
| the FTP wildcard download, the target is curl_fileinfo structure (see
 | |
| \fIcurl/curl.h\fP).  The parameter \fIptr\fP is a pointer given by
 | |
| \fICURLOPT_CHUNK_DATA(3)\fP. The parameter remains contains number of chunks
 | |
| remaining per the transfer. If the feature is not available, the parameter has
 | |
| zero value.
 | |
| 
 | |
| Return \fICURL_CHUNK_BGN_FUNC_OK\fP if everything is fine,
 | |
| \fICURL_CHUNK_BGN_FUNC_SKIP\fP if you want to skip the concrete chunk or
 | |
| \fICURL_CHUNK_BGN_FUNC_FAIL\fP to tell libcurl to stop if some error occurred.
 | |
| .SH DEFAULT
 | |
| NULL
 | |
| .SH PROTOCOLS
 | |
| FTP
 | |
| .SH EXAMPLE
 | |
| .nf
 | |
| static long file_is_coming(struct curl_fileinfo *finfo,
 | |
|                            struct callback_data *data,
 | |
|                            int remains)
 | |
| {
 | |
|   printf("%3d %40s %10luB ", remains, finfo->filename,
 | |
|          (unsigned long)finfo->size);
 | |
| 
 | |
|   switch(finfo->filetype) {
 | |
|   case CURLFILETYPE_DIRECTORY:
 | |
|     printf(" DIR\n");
 | |
|     break;
 | |
|   case CURLFILETYPE_FILE:
 | |
|     printf("FILE ");
 | |
|     break;
 | |
|   default:
 | |
|     printf("OTHER\n");
 | |
|     break;
 | |
|   }
 | |
| 
 | |
|   if(finfo->filetype == CURLFILETYPE_FILE) {
 | |
|     /* do not transfer files >= 50B */
 | |
|     if(finfo->size > 50) {
 | |
|       printf("SKIPPED\n");
 | |
|       return CURL_CHUNK_BGN_FUNC_SKIP;
 | |
|     }
 | |
| 
 | |
|     data->output = fopen(finfo->filename, "wb");
 | |
|     if(!data->output) {
 | |
|       return CURL_CHUNK_BGN_FUNC_FAIL;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return CURL_CHUNK_BGN_FUNC_OK;
 | |
| }
 | |
| 
 | |
| int main()
 | |
| {
 | |
|   /* data for callback */
 | |
|   struct callback_data callback_info;
 | |
| 
 | |
|   /* callback is called before download of concrete file started */
 | |
|   curl_easy_setopt(curl, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
 | |
|   curl_easy_setopt(curl, CURLOPT_CHUNK_DATA, &callback_info);
 | |
| }
 | |
| .fi
 | |
| .SH AVAILABILITY
 | |
| This was added in 7.21.0
 | |
| .SH RETURN VALUE
 | |
| Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 | |
| .SH "SEE ALSO"
 | |
| .BR CURLOPT_CHUNK_END_FUNCTION "(3), " CURLOPT_WILDCARDMATCH "(3), "
 |