summaryrefslogtreecommitdiff
path: root/plugins/FTPFileYM/curl/docs/examples/anyauthput.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/FTPFileYM/curl/docs/examples/anyauthput.c')
-rw-r--r--plugins/FTPFileYM/curl/docs/examples/anyauthput.c185
1 files changed, 0 insertions, 185 deletions
diff --git a/plugins/FTPFileYM/curl/docs/examples/anyauthput.c b/plugins/FTPFileYM/curl/docs/examples/anyauthput.c
deleted file mode 100644
index b89dca2e15..0000000000
--- a/plugins/FTPFileYM/curl/docs/examples/anyauthput.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2012, 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 http://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.
- *
- ***************************************************************************/
-#include <stdio.h>
-#include <fcntl.h>
-#ifdef WIN32
-# include <io.h>
-#else
-# ifdef __VMS
- typedef int intptr_t;
-# endif
-# if !defined(_AIX) && !defined(__sgi) && !defined(__osf__)
-# include <stdint.h>
-# endif
-# include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef _MSC_VER
-# ifdef _WIN64
- typedef __int64 intptr_t;
-# else
- typedef int intptr_t;
-# endif
-#endif
-
-#include <curl/curl.h>
-
-#if LIBCURL_VERSION_NUM < 0x070c03
-#error "upgrade your libcurl to no less than 7.12.3"
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#if defined(_AIX) || defined(__sgi) || defined(__osf__)
-#ifndef intptr_t
-#define intptr_t long
-#endif
-#endif
-
-/*
- * This example shows a HTTP PUT operation with authentiction using "any"
- * type. It PUTs a file given as a command line argument to the URL also given
- * on the command line.
- *
- * Since libcurl 7.12.3, using "any" auth and POST/PUT requires a set ioctl
- * function.
- *
- * This example also uses its own read callback.
- */
-
-/* ioctl callback function */
-static curlioerr my_ioctl(CURL *handle, curliocmd cmd, void *userp)
-{
- intptr_t fd = (intptr_t)userp;
-
- (void)handle; /* not used in here */
-
- switch(cmd) {
- case CURLIOCMD_RESTARTREAD:
- /* mr libcurl kindly asks as to rewind the read data stream to start */
- if(-1 == lseek(fd, 0, SEEK_SET))
- /* couldn't rewind */
- return CURLIOE_FAILRESTART;
-
- break;
-
- default: /* ignore unknown commands */
- return CURLIOE_UNKNOWNCMD;
- }
- return CURLIOE_OK; /* success! */
-}
-
-/* read callback function, fread() look alike */
-static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
-{
- size_t retcode;
- curl_off_t nread;
-
- intptr_t fd = (intptr_t)stream;
-
- retcode = read(fd, ptr, size * nmemb);
-
- nread = (curl_off_t)retcode;
-
- fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T
- " bytes from file\n", nread);
-
- return retcode;
-}
-
-int main(int argc, char **argv)
-{
- CURL *curl;
- CURLcode res;
- intptr_t hd ;
- struct stat file_info;
-
- char *file;
- char *url;
-
- if(argc < 3)
- return 1;
-
- file= argv[1];
- url = argv[2];
-
- /* get the file size of the local file */
- hd = open(file, O_RDONLY) ;
- fstat(hd, &file_info);
-
- /* In windows, this will init the winsock stuff */
- curl_global_init(CURL_GLOBAL_ALL);
-
- /* get a curl handle */
- curl = curl_easy_init();
- if(curl) {
- /* we want to use our own read function */
- curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
-
- /* which file to upload */
- curl_easy_setopt(curl, CURLOPT_READDATA, (void*)hd);
-
- /* set the ioctl function */
- curl_easy_setopt(curl, CURLOPT_IOCTLFUNCTION, my_ioctl);
-
- /* pass the file descriptor to the ioctl callback as well */
- curl_easy_setopt(curl, CURLOPT_IOCTLDATA, (void*)hd);
-
- /* enable "uploading" (which means PUT when doing HTTP) */
- curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L) ;
-
- /* specify target URL, and note that this URL should also include a file
- name, not only a directory (as you can do with GTP uploads) */
- curl_easy_setopt(curl,CURLOPT_URL, url);
-
- /* and give the size of the upload, this supports large file sizes
- on systems that have general support for it */
- curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
- (curl_off_t)file_info.st_size);
-
- /* tell libcurl we can use "any" auth, which lets the lib pick one, but it
- also costs one extra round-trip and possibly sending of all the PUT
- data twice!!! */
- curl_easy_setopt(curl, CURLOPT_HTTPAUTH, (long)CURLAUTH_ANY);
-
- /* set user name and password for the authentication */
- curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
-
- /* Now run off and do what you've been told! */
- res = curl_easy_perform(curl);
- /* Check for errors */
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n",
- curl_easy_strerror(res));
-
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
- close(hd); /* close the local file */
-
- curl_global_cleanup();
- return 0;
-}