* Header file for the TclCurl extension to enable Tcl interpreters
* to access libcurl.
*
- * Copyright (c) 2001-2009 Andres Garcia Garcia.
+ * Copyright (c) 2001-2011 Andres Garcia Garcia.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#endif
#include <curl/curl.h>
-#include <curl/types.h>
#include <curl/easy.h>
#include <tcl.h>
#include <tclDecls.h>
#define TCL_STORAGE_CLASS DLLEXPORT
#endif
-#define TclCurlVersion "7.19.6"
+#define TclCurlVersion "7.22.0"
/*
* This struct will contain the data of a transfer if the user wants
char *command;
int anyAuthFlag;
char *sshkeycallProc;
+ struct curl_slist *mailrcpt;
+ char *chunkBgnProc;
+ char *chunkBgnVar;
+ char *chunkEndProc;
+ char *fnmatchProc;
+ struct curl_slist *resolve;
+ struct curl_slist *telnetoptions;
};
struct shcurlObjData {
};
CONST static char *optionTable[] = {
- "CURLOPT_URL", "CURLOPT_FILE", "CURLOPT_INFILE",
+ "CURLOPT_URL", "CURLOPT_FILE", "CURLOPT_READDATA",
"CURLOPT_USERAGENT", "CURLOPT_REFERER", "CURLOPT_VERBOSE",
"CURLOPT_HEADER", "CURLOPT_NOBODY", "CURLOPT_PROXY",
"CURLOPT_PROXYPORT", "CURLOPT_HTTPPROXYTUNNEL", "CURLOPT_FAILONERROR",
"CURLOPT_PROXYUSERNAME", "CURLOPT_PROXYPASSWORD", "CURLOPT_TFTP_BLKSIZE",
"CURLOPT_SOCKS5_GSSAPI_SERVICE", "CURLOPT_SOCKS5_GSSAPI_NEC",
"CURLOPT_PROTOCOLS", "CURLOPT_REDIR_PROTOCOLS","CURLOPT_FTP_SSL_CC",
- "CURLOPT_SSH_KNOWNHOSTS", "CURLOPT_SSH_KEYFUNCTION",
+ "CURLOPT_SSH_KNOWNHOSTS", "CURLOPT_SSH_KEYFUNCTION","CURLOPT_MAIL_FROM",
+ "CURLOPT_MAIL_RCPT", "CURLOPT_FTP_USE_PRET", "CURLOPT_WILDCARDMATCH",
+ "CURLOPT_CHUNK_BGN_PROC", "CURLOPT_CHUNK_BGN_VAR", "CURLOPT_CHUNK_END_PROC",
+ "CURLOPT_FNMATCH_PROC", "CURLOPT_RESOLVE", "CURLOPT_TLSAUTH_USERNAME",
+ "CURLOPT_TLSAUTH_PASSWORD","CURLOPT_GSSAPI_DELEGATION", "CURLOPT_NOPROXY",
+ "CURLOPT_TELNETOPTIONS",
(char *)NULL
};
"-password", "-proxyuser", "-proxypassword",
"-tftpblksize", "-socks5gssapiservice","-socks5gssapinec",
"-protocols", "-redirprotocols", "-ftpsslcc",
- "-sshknownhosts", "-sshkeyproc",
+ "-sshknownhosts", "-sshkeyproc", "-mailfrom",
+ "-mailrcpt", "-ftpusepret", "-wildcardmatch",
+ "-chunkbgnproc", "-chunkbgnvar", "-chunkendproc",
+ "-fnmatchproc", "-resolve", "-tlsauthusername",
+ "-tlsauthpassword", "-gssapidelegation", "-noproxy",
+ "-telnetoptions",
(char *) NULL
};
"sslengines", "httpconnectcode","cookielist",
"ftpentrypath", "redirecturl", "primaryip",
"appconnecttime", "certinfo", "conditionunmet",
+ "primaryport", "localip", "localport",
(char *)NULL
};
};
CONST static char *proxyTypeTable[] = {
- "http", "socks4", "socks4a", "socks5", "socks5hostname", (char *)NULL
+ "http", "http1.0", "socks4", "socks4a", "socks5", "socks5h", (char *)NULL
};
CONST static char *httpAuthMethods[] = {
- "basic", "digest", "digestie", "gssnegotiate", "ntlm", "any", "anysafe", (char *)NULL
+ "basic", "digest", "digestie", "gssnegotiate", "ntlm", "any", "anysafe", "ntlmwb",(char *)NULL
};
CONST static char *ipresolve[] = {
};
CONST static char *sslversion[] = {
- "default", "tlsv1", "sslv2", "sslv3", (char *)NULL
+ "default", "tlsv1", "sslv2", "sslv3", "tlsv1_0", "tlsv1_1", "tlsv1_2", (char *)NULL
};
CONST static char *ftpfilemethod[] = {
CONST static char *protocolNames[] = {
"http", "https", "ftp", "ftps", "scp", "sftp", "telnet", "ldap",
- "ldaps","dict", "file","tftp", "all", (char*)NULL
+ "ldaps","dict", "file","tftp", "all", "imap", "imaps", "pop3",
+ "pop3s", "smtp", "smtps", "rtsp", "rtmp", "rtmpt", "rtmpe",
+ "rtmpte", "rtmps", "rtmpts", "gopher", (char*)NULL
};
-static curlioerr curlseek(void *instream, curl_off_t offset, int origin);
+CONST static char *tlsauth[] = {
+ "none", "srp", (char *)NULL
+};
+
+CONST static char *gssapidelegation[] = {
+ "flag", "policyflag", (char *) NULL
+};
+
+int curlseek(void *instream, curl_off_t offset, int origin);
int Tclcurl_MultiInit (Tcl_Interp *interp);
size_t curlWriteProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr);
size_t curlReadProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr);
+long curlChunkBgnProcInvoke (const void *transfer_info, void *curlDataPtr, int remains);
+long curlChunkEndProcInvoke (void *curlDataPtr);
+int curlfnmatchProcInvoke(void *curlDataPtr, const char *pattern, const char *filename);
/* Puts a ssh key into a Tcl object */
Tcl_Obj *curlsshkeyextract(Tcl_Interp *interp,const struct curl_khkey *key);
void *curlData);
int curlDebugProcInvoke(CURL *curlHandle, curl_infotype infoType,
- unsigned char * dataPtr, size_t size, void *curlData);
+ char * dataPtr, size_t size, void *curlData);
int curlVersion (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]);