From fbbd1f1eee00190c939532c3a630394d947d60ce Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Fri, 7 Jun 2013 15:40:50 +0200 Subject: [PATCH] Fixed various void-safety issue with recent compilers. Note that EWF does now require EiffelStudio 7.2, and is compiling with 7.3 --- contrib/ise_library/cURL-safe.ecf | 93 - contrib/ise_library/cURL.ecf | 93 - contrib/ise_library/cURL/Clib/Makefile-win.SH | 58 - contrib/ise_library/cURL/Clib/Makefile.SH | 92 - contrib/ise_library/cURL/Clib/build.eant | 24 - contrib/ise_library/cURL/Clib/eiffel_curl.c | 188 -- contrib/ise_library/cURL/build.eant | 28 - contrib/ise_library/cURL/cURL-safe.ecf | 93 - contrib/ise_library/cURL/cURL.ecf | 93 - contrib/ise_library/cURL/curl_codes.e | 336 ---- .../ise_library/cURL/curl_default_function.e | 104 - .../ise_library/cURL/curl_easy_externals.e | 409 ---- contrib/ise_library/cURL/curl_externals.e | 254 --- contrib/ise_library/cURL/curl_form.e | 94 - .../ise_library/cURL/curl_form_constants.e | 78 - contrib/ise_library/cURL/curl_function.e | 257 --- .../ise_library/cURL/curl_global_constants.e | 78 - .../ise_library/cURL/curl_info_constants.e | 122 -- contrib/ise_library/cURL/curl_info_type.e | 69 - contrib/ise_library/cURL/curl_msg.e | 51 - contrib/ise_library/cURL/curl_msg_struct.e | 83 - contrib/ise_library/cURL/curl_multi_codes.e | 48 - .../ise_library/cURL/curl_multi_externals.e | 251 --- contrib/ise_library/cURL/curl_opt_constants.e | 1117 ----------- contrib/ise_library/cURL/curl_string.e | 50 - contrib/ise_library/cURL/curl_utility.e | 51 - .../cURL/implementation/mac/api_loader_imp.e | 65 - contrib/ise_library/cURL/license.lic | 1 - contrib/ise_library/cURL/readme.txt | 5 - .../ise_library/cURL/spec/include/curl/curl.h | 1714 ----------------- .../cURL/spec/include/curl/curlver.h | 67 - .../ise_library/cURL/spec/include/curl/easy.h | 81 - .../cURL/spec/include/curl/mprintf.h | 80 - .../cURL/spec/include/curl/multi.h | 346 ---- .../cURL/spec/include/curl/stdcheaders.h | 34 - .../cURL/spec/include/curl/types.h | 1 - .../cURL/spec/include/eiffel_curl.h | 47 - contrib/ise_library/text/uri/license.lic | 1 - .../uri/src/implementation/percent_encoder.e | 508 ----- contrib/ise_library/text/uri/src/iri.e | 352 ---- contrib/ise_library/text/uri/src/uri.e | 971 ---------- contrib/ise_library/text/uri/uri-safe.ecf | 17 - contrib/ise_library/text/uri/uri.ecf | 17 - draft/application/cms/cms-safe.ecf | 6 +- draft/application/cms/example/demo.rc | 6 + draft/library/security/oauth/oauth-safe.ecf | 6 +- examples/restbucksCRUD/restbucks-safe.ecf | 6 +- .../network/http_client/http_client-safe.ecf | 6 +- .../network/protocol/CONNEG/conneg-safe.ecf | 6 +- library/network/protocol/http/http-safe.ecf | 2 +- .../security/openid/consumer/openid-safe.ecf | 12 +- library/security/openid/consumer/openid.ecf | 2 +- .../http_authorization-safe.ecf | 6 +- .../server/ewf_support/ewf_support-safe.ecf | 4 +- .../server/ewsgi/connectors/cgi/cgi-safe.ecf | 6 +- .../ewsgi/connectors/libfcgi/libfcgi-safe.ecf | 6 +- .../ewsgi/connectors/null/null-safe.ecf | 6 +- library/server/ewsgi/ewsgi-safe.ecf | 18 +- library/server/ewsgi/ewsgi_spec-safe.ecf | 2 +- .../response/wgi_logger_response.e | 4 +- library/server/libfcgi/libfcgi-safe.ecf | 15 +- library/server/wsf/connector/cgi-safe.ecf | 16 +- library/server/wsf/connector/libfcgi-safe.ecf | 16 +- library/server/wsf/connector/nino-safe.ecf | 21 +- library/server/wsf/default/cgi-safe.ecf | 11 +- library/server/wsf/default/libfcgi-safe.ecf | 11 +- library/server/wsf/default/nino-safe.ecf | 11 +- library/server/wsf/wsf-safe.ecf | 2 +- library/server/wsf/wsf_extension-safe.ecf | 8 +- .../server/wsf/wsf_router_context-safe.ecf | 4 +- library/server/wsf/wsf_session-safe.ecf | 12 +- library/server/wsf_html/wsf_html-safe.ecf | 18 +- library/text/encoder/encoder-safe.ecf | 2 +- .../parser/uri_template/uri_template-safe.ecf | 6 +- library/utility/general/error/error-safe.ecf | 2 +- precomp/wsf-mt-safe.ecf | 8 +- precomp/wsf-safe.ecf | 6 +- precomp/wsf-scoop-safe.ecf | 6 +- tests/all-safe.ecf | 71 +- 79 files changed, 177 insertions(+), 8694 deletions(-) delete mode 100644 contrib/ise_library/cURL-safe.ecf delete mode 100644 contrib/ise_library/cURL.ecf delete mode 100644 contrib/ise_library/cURL/Clib/Makefile-win.SH delete mode 100644 contrib/ise_library/cURL/Clib/Makefile.SH delete mode 100644 contrib/ise_library/cURL/Clib/build.eant delete mode 100644 contrib/ise_library/cURL/Clib/eiffel_curl.c delete mode 100644 contrib/ise_library/cURL/build.eant delete mode 100644 contrib/ise_library/cURL/cURL-safe.ecf delete mode 100644 contrib/ise_library/cURL/cURL.ecf delete mode 100644 contrib/ise_library/cURL/curl_codes.e delete mode 100644 contrib/ise_library/cURL/curl_default_function.e delete mode 100644 contrib/ise_library/cURL/curl_easy_externals.e delete mode 100644 contrib/ise_library/cURL/curl_externals.e delete mode 100644 contrib/ise_library/cURL/curl_form.e delete mode 100644 contrib/ise_library/cURL/curl_form_constants.e delete mode 100644 contrib/ise_library/cURL/curl_function.e delete mode 100644 contrib/ise_library/cURL/curl_global_constants.e delete mode 100644 contrib/ise_library/cURL/curl_info_constants.e delete mode 100644 contrib/ise_library/cURL/curl_info_type.e delete mode 100644 contrib/ise_library/cURL/curl_msg.e delete mode 100644 contrib/ise_library/cURL/curl_msg_struct.e delete mode 100644 contrib/ise_library/cURL/curl_multi_codes.e delete mode 100644 contrib/ise_library/cURL/curl_multi_externals.e delete mode 100644 contrib/ise_library/cURL/curl_opt_constants.e delete mode 100644 contrib/ise_library/cURL/curl_string.e delete mode 100644 contrib/ise_library/cURL/curl_utility.e delete mode 100644 contrib/ise_library/cURL/implementation/mac/api_loader_imp.e delete mode 100644 contrib/ise_library/cURL/license.lic delete mode 100644 contrib/ise_library/cURL/readme.txt delete mode 100644 contrib/ise_library/cURL/spec/include/curl/curl.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/curlver.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/easy.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/mprintf.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/multi.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/stdcheaders.h delete mode 100644 contrib/ise_library/cURL/spec/include/curl/types.h delete mode 100644 contrib/ise_library/cURL/spec/include/eiffel_curl.h delete mode 100644 contrib/ise_library/text/uri/license.lic delete mode 100644 contrib/ise_library/text/uri/src/implementation/percent_encoder.e delete mode 100644 contrib/ise_library/text/uri/src/iri.e delete mode 100644 contrib/ise_library/text/uri/src/uri.e delete mode 100644 contrib/ise_library/text/uri/uri-safe.ecf delete mode 100644 contrib/ise_library/text/uri/uri.ecf create mode 100644 draft/application/cms/example/demo.rc diff --git a/contrib/ise_library/cURL-safe.ecf b/contrib/ise_library/cURL-safe.ecf deleted file mode 100644 index 81f2428b..00000000 --- a/contrib/ise_library/cURL-safe.ecf +++ /dev/null @@ -1,93 +0,0 @@ - - - - cURL: libcURL wrapper library for Eiffel. - Copyright (c) 1984-2006, Eiffel Software and others. - Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt). - - - /\.svn$ - /EIFGEN.{0,1}$ - /temp$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /spec$ - /Clib$ - - - /gtk$ - /mac$ - - - - - - /mswin$ - /gtk$ - - - - - - - /mswin$ - /mac$ - - - - - - - - - - - diff --git a/contrib/ise_library/cURL.ecf b/contrib/ise_library/cURL.ecf deleted file mode 100644 index c7189049..00000000 --- a/contrib/ise_library/cURL.ecf +++ /dev/null @@ -1,93 +0,0 @@ - - - - cURL: libcURL wrapper library for Eiffel. - Copyright (c) 1984-2006, Eiffel Software and others. - Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt). - - - /\.svn$ - /EIFGEN.{0,1}$ - /temp$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /spec$ - /Clib$ - - - /gtk$ - /mac$ - - - - - - /mswin$ - /gtk$ - - - - - - - /mswin$ - /mac$ - - - - - - - - - - - diff --git a/contrib/ise_library/cURL/Clib/Makefile-win.SH b/contrib/ise_library/cURL/Clib/Makefile-win.SH deleted file mode 100644 index 9db5fcfc..00000000 --- a/contrib/ise_library/cURL/Clib/Makefile-win.SH +++ /dev/null @@ -1,58 +0,0 @@ -TOP = .. -DIR = $dir_sep -OUTDIR= . -INDIR= . -CC = $cc -OUTPUT_CMD = $output_cmd -CFLAGS = -I"$rt_include" -I..$(DIR)spec$(DIR)include -I. \ - -I..$(DIR)..$(DIR)..$(DIR)C_library$(DIR)libpng -I..$(DIR)..$(DIR)..$(DIR)C_library$(DIR)zlib -JCFLAGS = $(CFLAGS) $ccflags $optimize -JMTCFLAGS = $(CFLAGS) $mtccflags $optimize -JILCFLAGS = $(CFLAGS) $mtccflags $optimize -DEIF_IL_DLL -LN = copy -MV = $mv -RM = $del -MAKE = $make -MKDIR = $mkdir -LINK = $link32 -DLL_FLAGS = $dll_flags -DLL_LIBS = $dll_libs -OBJECTS = eiffel_curl.$obj -MT_OBJECTS = MTeiffel_curl.$obj -IL_OBJECTS = ILeiffel_curl.$obj - -.c.$obj: - $(CC) -c $(JCFLAGS) $< - -all:: $output_libraries - $(MAKE) clean - -standard:: eiffel_curl.lib ileiffel_curl.lib -mtstandard:: mteiffel_curl.lib - -clean: - $(RM) *.$obj - $(RM) *.lib - -eiffel_curl.lib: $(OBJECTS) - $alib_line - $(MKDIR) ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib - $(MV) $@ ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib$(DIR)$@ - -mteiffel_curl.lib: $(MT_OBJECTS) - $alib_line - $(MKDIR) ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib - $(MV) $@ ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib$(DIR)$@ - -ileiffel_curl.lib: $(IL_OBJECTS) - $alib_line - $(MKDIR) ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib - $(MV) $@ ..$(DIR)spec$(DIR)$(ISE_C_COMPILER)$(DIR)$(ISE_PLATFORM)$(DIR)lib$(DIR)$@ - -#Multithreaded targets. -MTeiffel_curl.$obj: eiffel_curl.c - $(CC) $(JMTCFLAGS) $(OUTPUT_CMD)$@ -c $? - -#.NET targets. -ILeiffel_curl.$obj: eiffel_curl.c - $(CC) $(JILCFLAGS) $(OUTPUT_CMD)$@ -c $? diff --git a/contrib/ise_library/cURL/Clib/Makefile.SH b/contrib/ise_library/cURL/Clib/Makefile.SH deleted file mode 100644 index 7c49d5de..00000000 --- a/contrib/ise_library/cURL/Clib/Makefile.SH +++ /dev/null @@ -1,92 +0,0 @@ -case $CONFIG in -'') - if test ! -f config.sh; then - (echo "Can't find config.sh."; exit 1) - fi 2>/dev/null - . ./config.sh - ;; -esac -case "$0" in -*/*) cd `expr X$0 : 'X\(.*\)/'` ;; -esac -echo "Extracting "."/Makefile (with variable substitutions)" -$spitshell >Makefile <>Makefile <<'!NO!SUBS!' - -MT_OBJECTS = MTeiffel_curl.o -OBJECTS = eiffel_curl.o - -ALL_OBJECTS = $(OBJECTS) $(MT_OBJECTS) - -all: $(ALL_OBJECTS) - $(MKDIR) ../spec/$(PLATFORM)/lib - $(MV) $? ../spec/$(PLATFORM)/lib - $(MAKE) clobber - -MTeiffel_curl.o: eiffel_curl.c - $(CC) -c $(MTCFLAGS) $? -o $@ - -######################################################################## -# Common rules for all Makefiles -- do not edit - -emptyrule:: - -clean: local_clean -realclean: local_realclean -clobber: local_clobber - -local_clean:: - $(RM) core *~ *.o *.so *.a - -local_realclean:: local_clean - -local_clobber:: local_realclean - $(RM) Makefile config.sh - -Makefile: Makefile.SH - /bin/sh Makefile.SH - -tags:: - $(CTAGS) -w *.[ch] - $(CTAGS) -xw *.[ch] > tags - -local_clobber:: - $(RM) tags - -######################################################################## -# Dependencies generated by make depend -# DO NOT DELETE THIS LINE -- make depend relies on it - -# Put nothing here or make depend will gobble it up -.FORCE_DEPEND:: - @echo "You must run 'make depend' in $(TOP) first."; exit 1 -!NO!SUBS! -chmod 644 Makefile -$eunicefix Makefile - diff --git a/contrib/ise_library/cURL/Clib/build.eant b/contrib/ise_library/cURL/Clib/build.eant deleted file mode 100644 index ca40ab29..00000000 --- a/contrib/ise_library/cURL/Clib/build.eant +++ /dev/null @@ -1,24 +0,0 @@ - - - - - description: "cURL Clib library compilation" - - - - - - - - - - - - - - - - - - - diff --git a/contrib/ise_library/cURL/Clib/eiffel_curl.c b/contrib/ise_library/cURL/Clib/eiffel_curl.c deleted file mode 100644 index 635ea00c..00000000 --- a/contrib/ise_library/cURL/Clib/eiffel_curl.c +++ /dev/null @@ -1,188 +0,0 @@ -/* -indexing - description: "Functions used by the class CURL_FUNCTION." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -*/ - -#include "eiffel_curl.h" - -typedef EIF_INTEGER (* EIF_CURL_PROGRESS_PROC) ( -#ifndef EIF_IL_DLL - EIF_REFERENCE, /* CURL_FUNCTION Eiffel object */ -#endif - EIF_POINTER, /* a_user_pointer */ - EIF_REAL_64, /* a_dltotal */ - EIF_REAL_64, /* a_dlnow */ - EIF_REAL_64, /* a_ultotal */ - EIF_REAL_64 /* a_ulnow */ - ); - -typedef EIF_INTEGER (* EIF_CURL_WRITE_PROC) ( -#ifndef EIF_IL_DLL - EIF_REFERENCE, /* CURL_FUNCTION Eiffel object */ -#endif - EIF_POINTER, /* a_data_pointer */ - EIF_INTEGER, /* a_size */ - EIF_INTEGER, /* a_nmemb */ - EIF_POINTER /* a_write_pointer */ - ); - -typedef EIF_INTEGER (* EIF_CURL_READ_PROC) ( -#ifndef EIF_IL_DLL - EIF_REFERENCE, /* CURL_FUNCTION Eiffel object */ -#endif - EIF_POINTER, /* a_data_pointer */ - EIF_INTEGER, /* a_size */ - EIF_INTEGER, /* a_nmemb */ - EIF_POINTER /* a_write_pointer */ - ); - - -typedef EIF_INTEGER (* EIF_CURL_DEBUG_PROC) ( -#ifndef EIF_IL_DLL - EIF_REFERENCE, /* CURL_FUNCTION Eiffel object */ -#endif - EIF_POINTER, /* a_curl_handle */ - EIF_INTEGER, /* a_curl_infotype */ - EIF_POINTER, /* a_char_pointer */ - EIF_INTEGER, /* a_size */ - EIF_POINTER /* a_user_pointer */ - ); - -static EIF_OBJECT eiffel_function_object = NULL; - /* Address of Eiffel object CURL_FUNCTION */ - -static EIF_CURL_PROGRESS_PROC eiffel_progress_function = NULL; - /* Address of Eiffel CURL_FUNCTION.progress_function */ - -static EIF_CURL_WRITE_PROC eiffel_write_function = NULL; - /* Address of Eiffel CURL_FUNCTION.write_function */ - -static EIF_CURL_READ_PROC eiffel_read_function = NULL; - /* Address of Eiffel CURL_FUNCTION.read_function */ - -static EIF_CURL_DEBUG_PROC eiffel_debug_function = NULL; - /* Address of Eiffel CURL_FUNCTION.debug_function */ - -/* Set Eiffel CURL_FUNCTION object address */ -void c_set_object(EIF_REFERENCE a_address) -{ - if (a_address) { - eiffel_function_object = eif_protect (a_address); - } else { - eiffel_function_object = NULL; - } -} - -/* Release Eiffel CURL_FUNCTION object address */ -void c_release_object() -{ - eif_wean (eiffel_function_object); -} - -/* Set CURL_FUNCTOIN.progress_function address */ -void c_set_progress_function_address( EIF_POINTER a_address) -{ - eiffel_progress_function = (EIF_CURL_PROGRESS_PROC) a_address; -} - -/* Set CURL_FUNCTOIN.write_function address */ -void c_set_write_function_address( EIF_POINTER a_address) -{ - eiffel_write_function = (EIF_CURL_WRITE_PROC) a_address; -} - -/* Set CURL_FUNCTOIN.read_function address */ -void c_set_read_function_address( EIF_POINTER a_address) -{ - eiffel_read_function = (EIF_CURL_READ_PROC) a_address; -} - -/* Set CURL_FUNCTOIN.debug_function address */ -void c_set_debug_function_address (EIF_POINTER a_address) -{ - eiffel_debug_function = (EIF_CURL_DEBUG_PROC) a_address; -} - -/* Eiffel adapter function for CURLOPT_WRITEFUNCTION - We need this function since Eiffel function call need first parameter is EIF_REFERENCE. */ -size_t curl_write_function (void *ptr, size_t size, size_t nmemb, void *data) -{ - if (eiffel_function_object) { - return (size_t) ((eiffel_write_function) ( -#ifndef EIF_IL_DLL - (EIF_REFERENCE) eif_access (eiffel_function_object), -#endif - (EIF_POINTER) ptr, - (EIF_INTEGER) size, - (EIF_INTEGER) nmemb, - (EIF_POINTER) data)); - } else { - return 0; - } -} - -/* Eiffel adapter function for CURLOPT_READFUNCTION - We need this function since Eiffel function call need first parameter is EIF_REFERENCE. */ -size_t curl_read_function (void *ptr, size_t size, size_t nmemb, void *data) -{ - if (eiffel_function_object) { - return (size_t) ((eiffel_read_function) ( -#ifndef EIF_IL_DLL - (EIF_REFERENCE) eif_access (eiffel_function_object), -#endif - (EIF_POINTER) ptr, - (EIF_INTEGER) size, - (EIF_INTEGER) nmemb, - (EIF_POINTER) data)); - } else { - return 0; - } -} - - -/* Eiffel adapter function for CURLOPT_PROGRESSFUNCTION - We need this function since Eiffel function call need first parameter is EIF_REFERENCE. */ -size_t curl_progress_function (void * a_object_id, double a_dltotal, double a_dlnow, double a_ultotal, double a_ulnow) - { - if (eiffel_function_object) { - return (size_t) ((eiffel_progress_function) ( -#ifndef EIF_IL_DLL - (EIF_REFERENCE) eif_access (eiffel_function_object), -#endif - (EIF_POINTER) a_object_id, - (EIF_REAL_64) a_dltotal, - (EIF_REAL_64) a_dlnow, - (EIF_REAL_64) a_ultotal, - (EIF_REAL_64) a_ulnow)); - } else { - return 0; - } - } - -/* Eiffel adapter function for CURLOPT_DEBUGFUNCTION - We need this function since Eiffel function call need first parameter is EIF_REFERENCE. */ -size_t curl_debug_function (CURL * a_curl_handle, curl_infotype a_curl_infotype, unsigned char * a_char_pointer, size_t a_size, void * a_object_id) - { - if (eiffel_function_object) { - return (size_t) ((eiffel_debug_function) ( -#ifndef EIF_IL_DLL - (EIF_REFERENCE) eif_access (eiffel_function_object), -#endif - (EIF_POINTER) a_curl_handle, - (EIF_INTEGER) a_curl_infotype, - (EIF_POINTER) a_char_pointer, - (EIF_INTEGER) a_size, - (EIF_POINTER) a_object_id)); - } else { - return 0; - } - } diff --git a/contrib/ise_library/cURL/build.eant b/contrib/ise_library/cURL/build.eant deleted file mode 100644 index 325768ce..00000000 --- a/contrib/ise_library/cURL/build.eant +++ /dev/null @@ -1,28 +0,0 @@ - - - - - description: "cURL library compilation" - - - - - - - - - - - - - - - - - - - - - - diff --git a/contrib/ise_library/cURL/cURL-safe.ecf b/contrib/ise_library/cURL/cURL-safe.ecf deleted file mode 100644 index 02b15b65..00000000 --- a/contrib/ise_library/cURL/cURL-safe.ecf +++ /dev/null @@ -1,93 +0,0 @@ - - - - cURL: libcURL wrapper library for Eiffel. - Copyright (c) 1984-2006, Eiffel Software and others. - Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt). - - - /\.svn$ - /EIFGEN.{0,1}$ - /temp$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /spec$ - /Clib$ - - - /gtk$ - /mac$ - - - - - - /mswin$ - /gtk$ - - - - - - - /mswin$ - /mac$ - - - - - - - - - - - diff --git a/contrib/ise_library/cURL/cURL.ecf b/contrib/ise_library/cURL/cURL.ecf deleted file mode 100644 index 0707e6ec..00000000 --- a/contrib/ise_library/cURL/cURL.ecf +++ /dev/null @@ -1,93 +0,0 @@ - - - - cURL: libcURL wrapper library for Eiffel. - Copyright (c) 1984-2006, Eiffel Software and others. - Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt). - - - /\.svn$ - /EIFGEN.{0,1}$ - /temp$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /spec$ - /Clib$ - - - /gtk$ - /mac$ - - - - - - /mswin$ - /gtk$ - - - - - - - /mswin$ - /mac$ - - - - - - - - - - - diff --git a/contrib/ise_library/cURL/curl_codes.e b/contrib/ise_library/cURL/curl_codes.e deleted file mode 100644 index d9b320ed..00000000 --- a/contrib/ise_library/cURL/curl_codes.e +++ /dev/null @@ -1,336 +0,0 @@ -note - description: "[ - All possible error codes from all sorts of curl functions. - Future versions may return other values, stay prepared. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_CODES - -feature -- Eiffel cURL: Constants - - eiffelcurle_error_occurred: INTEGER = -1 - -- Error occurred in Eiffel cURL internals - -feature -- Constants - - curle_ok: INTEGER = 0 - -- Declared as CURLE_OK - - curle_unsupported_protocol: INTEGER = 1 - -- Declared as CURLE_UNSUPPORTED_PROTOCOL - - curle_failed_init: INTEGER = 2 - -- Declared as CURLE_FAILED_INIT - - curle_url_malformat: INTEGER = 3 - -- Declared as CURLE_URL_MALFORMAT - - curle_obsolete4: INTEGER = 4 - -- Declared as CURLE_OBSOLETE4 - -- NOT USED - - curle_couldnt_resolve_proxy: INTEGER = 5 - -- Declared as CURLE_COULDNT_RESOLVE_PROXY - - curle_couldnt_resolve_host: INTEGER = 6 - -- Declared as CURLE_COULDNT_RESOLVE_HOST - - curle_couldnt_connect: INTEGER = 7 - -- Declared as CURLE_COULDNT_CONNECT - - curle_ftp_weird_server_reply: INTEGER = 8 - -- Declared as CURLE_FTP_WEIRD_SERVER_REPLY - - curle_remote_access_denied: INTEGER = 9 - -- Declared as CURLE_REMOTE_ACCESS_DENIED - -- A service was denied by the server due to lack of access - -- when login fails this is not returned. - - curle_obsolete10: INTEGER = 10 - -- Declared as CURLE_OBSOLETE10 NOT USED - - curle_ftp_weird_pass_reply: INTEGER = 11 - -- Declared as CURLE_FTP_WEIRD_PASS_REPLY - - curle_obsolete12: INTEGER = 12 - -- Declared as CURLE_OBSOLETE12 NOT USED - - curle_ftp_weird_pasv_reply: INTEGER = 13 - -- Declared as CURLE_FTP_WEIRD_PASV_REPLY - - curle_ftp_weird_227_format: INTEGER = 14 - -- Declared as CURLE_FTP_WEIRD_227_FORMAT - - curle_ftp_cant_get_host: INTEGER = 15 - -- Declared as CURLE_FTP_CANT_GET_HOST - - curle_obsolete16: INTEGER = 16 - -- Declared as CURLE_OBSOLETE16 - -- NOT USED - - curle_ftp_couldnt_set_type: INTEGER = 17 - -- Declared as CURLE_FTP_COULDNT_SET_TYPE - - curle_partial_file: INTEGER = 18 - -- Declared as CURLE_PARTIAL_FILE - - curle_ftp_couldnt_retr_file: INTEGER = 19 - -- Declared as CURLE_FTP_COULDNT_RETR_FILE - - curle_obsolete20: INTEGER = 20 - -- Declared as CURLE_OBSOLETE20 - -- NOT USED - - curle_quote_error: INTEGER = 21 - -- Declared as CURLE_QUOTE_ERROR - -- quote command failure - - curle_http_returned_error: INTEGER = 22 - -- Declared as CURLE_HTTP_RETURNED_ERROR - - curle_write_error: INTEGER = 23 - -- Declared as CURLE_WRITE_ERROR - - curle_obsolete24: INTEGER = 24 - -- Declared as CURLE_OBSOLETE24 NOT USED - - curle_upload_failed: INTEGER = 25 - -- Declared as CURLE_UPLOAD_FAILED - -- failed upload "command" - - curle_read_error: INTEGER = 26 - -- Declared as CURLE_READ_ERROR - -- couldn't open/read from file - - curle_out_of_memory: INTEGER = 27 - -- Declared as CURLE_OUT_OF_MEMORY - -- Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error - -- instead of a memory allocation error if CURL_DOES_CONVERSIONS - -- is defined - - curle_operation_timedout: INTEGER = 28 - -- Declared as CURLE_OPERATION_TIMEDOUT - -- the timeout time was reached - - curle_obsolete29: INTEGER = 29 - -- Declared as CURLE_OBSOLETE29 - -- NOT USED - - curle_ftp_port_failed: INTEGER = 30 - -- Declared as CURLE_FTP_PORT_FAILED - -- FTP PORT operation failed - - curle_ftp_couldnt_use_rest: INTEGER = 31 - -- Declared as CURLE_FTP_COULDNT_USE_REST - -- the REST command failed - - curle_obsolete32: INTEGER = 32 - -- Declared as CURLE_OBSOLETE32 - -- NOT USED - - curle_range_error: INTEGER = 33 - -- Declared as CURLE_RANGE_ERROR - -- RANGE "command" didn't work - - curle_http_post_error: INTEGER = 34 - -- Declared as CURLE_HTTP_POST_ERROR - - curle_ssl_connect_error: INTEGER = 35 - -- Declared CURLE_SSL_CONNECT_ERROR - -- wrong when connecting with SSL - - curle_bad_download_resume: INTEGER = 36 - -- Declared as CURLE_BAD_DOWNLOAD_RESUME - -- couldn't resume download - - curle_file_couldnt_read_file: INTEGER = 37 - -- Declared as CURLE_FILE_COULDNT_READ_FILE - - curle_ldap_cannot_bind: INTEGER = 38 - -- Declared as CURLE_LDAP_CANNOT_BIND - - curle_ldap_search_failed: INTEGER = 39 - -- Declared as CURLE_LDAP_SEARCH_FAILED - - curle_obsolete40: INTEGER = 40 - -- Declared as CURLE_OBSOLETE40 - -- NOT USED - - curle_function_not_found: INTEGER = 41 - -- Declared as CURLE_FUNCTION_NOT_FOUND - - curle_aborted_by_callback: INTEGER = 42 - -- Declared as CURLE_ABORTED_BY_CALLBACK - - curle_bad_function_argument: INTEGER = 43 - -- Declared as CURLE_BAD_FUNCTION_ARGUMENT - - curle_obsolete44: INTEGER = 44 - -- Declared as CURLE_OBSOLETE44 - -- NOT USED - - curle_interface_failed: INTEGER = 45 - -- Declared as CURLE_INTERFACE_FAILED - -- CURLOPT_INTERFACE failed - - curle_obsolete46: INTEGER = 46 - -- Declared as CURLE_OBSOLETE46 - -- NOT USED - - curle_too_many_redirects: INTEGER = 47 - -- Declared as CURLE_TOO_MANY_REDIRECTS - -- catch endless re-direct loops - - curle_unknown_telnet_option: INTEGER = 48 - -- Declared as CURLE_UNKNOWN_TELNET_OPTION - -- User specified an unknown option - - curle_telnet_option_syntax: INTEGER = 49 - -- Declared as CURLE_TELNET_OPTION_SYNTAX - -- Malformed telnet option - - curle_obsolete50: INTEGER = 50 - -- Declared as CURLE_OBSOLETE50 - -- NOT USED - - curle_ssl_peer_certificate: INTEGER = 51 - -- Declared as CURLE_SSL_PEER_CERTIFICATE - -- peer's certificate wasn't ok - - curle_got_nothing: INTEGER = 52 - -- Declared as CURLE_GOT_NOTHING - -- when this is a specific error - - curle_ssl_engine_notfound: INTEGER = 53 - -- Declared as CURLE_SSL_ENGINE_NOTFOUND - -- SSL crypto engine not found */ - - curle_ssl_engine_setfailed: INTEGER = 54 - -- Declared as CURLE_SSL_ENGINE_SETFAILED - -- can not set SSL crypto engine as default - - curle_send_error: INTEGER = 55 - -- Declared as CURLE_SEND_ERROR - -- failed sending network data - - curle_recv_error: INTEGER = 56 - -- Declared as CURLE_RECV_ERROR - -- failure in receiving network data - - curle_obsolete57: INTEGER = 57 - -- Declared as CURLE_OBSOLETE57 - -- NOT IN USE - - curle_ssl_certproblem: INTEGER = 58 - -- Declared as CURLE_SSL_CERTPROBLEM - -- problem with the local certificate - - curle_ssl_cipher: INTEGER = 59 - -- Declared as CURLE_SSL_CIPHER - -- couldn't use specified cipher - - curle_ssl_cacert: INTEGER = 60 - -- Declared as CURLE_SSL_CACERT - -- problem with the CA cert (path?) - - curle_bad_content_encoding: INTEGER = 61 - -- Declared as CURLE_BAD_CONTENT_ENCODING - -- Unrecognized transfer encoding - - curle_ldap_invalid_url: INTEGER = 62 - -- Declared as CURLE_LDAP_INVALID_URL - -- Invalid LDAP URL - - curle_filesize_exceeded: INTEGER = 63 - -- Declared as CURLE_FILESIZE_EXCEEDED - -- Maximum file size exceeded - - curle_use_ssl_failed: INTEGER = 64 - -- Declared as CURLE_USE_SSL_FAILED - -- Requested FTP SSL level failed - - curle_send_fail_rewind: INTEGER = 65 - -- Declared as CURLE_SEND_FAIL_REWIND - -- Sending the data requires a rewind that failed - - curle_ssl_engine_initfailed: INTEGER = 66 - -- Declared as CURLE_SSL_ENGINE_INITFAILED - -- failed to initialise ENGINE - - curle_login_denied: INTEGER = 67 - -- Declared as CURLE_LOGIN_DENIED - -- user, password or similar was not accepted and we failed to login - - curle_tftp_notfound: INTEGER = 68 - -- Declared as CURLE_TFTP_NOTFOUND - -- file not found on server - - curle_tftp_perm: INTEGER = 69 - -- Declared as CURLE_TFTP_PERM - -- permission problem on server - - curle_remote_disk_full: INTEGER = 70 - -- Declared as CURLE_REMOTE_DISK_FULL - -- out of disk space on server - - curle_tftp_illegal: INTEGER = 71 - -- Declared as CURLE_TFTP_ILLEGAL - -- Illegal TFTP operation - - curle_tftp_unknownid: INTEGER = 72 - -- Declared as CURLE_TFTP_UNKNOWNID - -- Unknown transfer ID - - curle_remote_file_exists: INTEGER = 73 - -- Declared as CURLE_REMOTE_FILE_EXISTS - -- File already exists - - curle_tftp_nosuchuser: INTEGER = 74 - -- Declared as CURLE_TFTP_NOSUCHUSER - -- No such user - - curle_conv_failed: INTEGER = 75 - -- Declared as CURLE_CONV_FAILED - -- conversion failed - - curle_conv_reqd: INTEGER = 76 - -- Declared as CURLE_CONV_REQD - -- caller must register conversion callbacks using curl_easy_setopt options - -- CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPT_CONV_TO_NETWORK_FUNCTION, and - -- CURLOPT_CONV_FROM_UTF8_FUNCTION - - curle_ssl_cacert_badfile: INTEGER = 77 - -- Declared as CURLE_SSL_CACERT_BADFILE - -- could not load CACERT file, missing or wrong format - - curle_remote_file_not_found: INTEGER = 78 - -- Declared as CURLE_REMOTE_FILE_NOT_FOUND - -- remote file not found - - curle_ssh: INTEGER = 79 - -- Declared as CURLE_SSH - -- error from the SSH layer, somewhat generic so the error message will be of - -- interest when this has happened - - curle_ssl_shutdown_failed: INTEGER = 80; - -- Declared as CURLE_SSL_SHUTDOWN_FAILED - -- Failed to shut down the SSL connection - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_default_function.e b/contrib/ise_library/cURL/curl_default_function.e deleted file mode 100644 index 01c1c540..00000000 --- a/contrib/ise_library/cURL/curl_default_function.e +++ /dev/null @@ -1,104 +0,0 @@ -note - description: "[ - Default implementation of CURL_FUNCTION. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_DEFAULT_FUNCTION - -inherit - CURL_FUNCTION - -create - make - -feature {NONE} -- Initialization - - make - -- Creation method - do - set_object_and_function_address - end - -feature -- Command - - progress_function (a_object_id: POINTER; a_download_total, a_download_now, a_upload_total, a_upload_now: REAL_64): INTEGER - do - end - - write_function (a_data_pointer: POINTER; a_size, a_nmemb: INTEGER; a_object_id: POINTER): INTEGER - local - l_c_string: C_STRING - do - -- Returns the number of bytes actually saved into object identified by `a_object_id' - Result := a_size * a_nmemb - create l_c_string.make_shared_from_pointer_and_count (a_data_pointer, Result) - - check attached {CURL_STRING} (create {IDENTIFIED}).id_object (a_object_id.to_integer_32) as l_string then - l_string.append (l_c_string.substring (1, Result)) - end - end - - read_function (a_data_pointer: POINTER; a_size, a_nmemb: INTEGER; a_object_id: POINTER): INTEGER - -- A callback readfunction - do - end - - debug_function (a_curl_handle: POINTER; a_curl_infotype: INTEGER; a_char_pointer: POINTER; a_size: INTEGER; a_object_id: POINTER): INTEGER - local - l_c_string: C_STRING - do - inspect - a_curl_infotype - when {CURL_INFO_TYPE}.curlinfo_data_in then - dump ("<= Recv data", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_data_out then - dump ("=> Send data", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_header_in then - dump ("<= Recv header", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_header_out then - dump ("=> Send header", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_ssl_data_in then - dump ("<= Recv SSL data", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_ssl_data_out then - dump ("=> Send SSL data", a_char_pointer, a_size) - when {CURL_INFO_TYPE}.curlinfo_text then - create l_c_string.make_by_pointer_and_count (a_char_pointer, a_size) - print ("%N== Info: " + l_c_string.string) - else - check type_unknow: False end - end - end - -feature {NONE} -- Implementation - - dump (a_text: STRING; a_char_pointer: POINTER; a_size: INTEGER) - -- Dump debug information - require - not_void: a_text /= Void - exists: a_char_pointer /= default_pointer - non_negative: a_size >= 0 - local - l_c_string: C_STRING - do - create l_c_string.make_shared_from_pointer_and_count (a_char_pointer, a_size) - print ("%N" + a_text + "%N" + l_c_string.string) - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_easy_externals.e b/contrib/ise_library/cURL/curl_easy_externals.e deleted file mode 100644 index 5fb94d9a..00000000 --- a/contrib/ise_library/cURL/curl_easy_externals.e +++ /dev/null @@ -1,409 +0,0 @@ -note - description: "[ - cURL easy externals. - For more informaton see: - http://curl.haxx.se/libcurl/c/ - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_EASY_EXTERNALS - -feature -- Command - - init: POINTER - -- Declared as curl_easy_init(). - require - dynamic_library_exists: is_dynamic_library_exists - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_init") - if l_api /= default_pointer then - Result := c_init (l_api) - end - ensure - exists: Result /= default_pointer - end - - setopt_string (a_curl_handle: POINTER; a_opt: INTEGER; a_string: READABLE_STRING_GENERAL) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - not_void: a_string /= Void - local - l_api: POINTER - l_c_str: C_STRING - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - create l_c_str.make (a_string) - c_setopt (l_api, a_curl_handle, a_opt, l_c_str.item) - end - end - - setopt_form (a_curl_handle: POINTER; a_opt: INTEGER; a_form: CURL_FORM) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - not_void: a_form /= Void and then a_form.is_exists - do - setopt_void_star (a_curl_handle, a_opt, a_form.item) - end - - setopt_slist (a_curl_handle: POINTER; a_opt: INTEGER; a_curl_slist: POINTER) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: a_opt = {CURL_OPT_CONSTANTS}.curlopt_httpheader - exists: a_curl_slist /= default_pointer - do - setopt_void_star (a_curl_handle, a_opt, a_curl_slist) - end - - setopt_curl_string (a_curl_handle: POINTER; a_opt: INTEGER; a_curl_string: CURL_STRING) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - not_void: a_curl_string /= Void - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - c_setopt_int (l_api, a_curl_handle, a_opt, a_curl_string.object_id) - end - end - - setopt_integer (a_curl_handle: POINTER; a_opt: INTEGER; a_integer: INTEGER) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - c_setopt_int (l_api, a_curl_handle, a_opt, a_integer) - end - end - - setopt_file (a_curl_handle: POINTER; a_opt: INTEGER; a_file: FILE) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: a_opt = {CURL_OPT_CONSTANTS}.curlopt_readdata - readable: a_file /= Void and then a_file.file_readable - do - setopt_void_star (a_curl_handle, a_opt, a_file.file_pointer) - end - - perform (a_curl_handle: POINTER): INTEGER - -- Declared as curl_easy_perform(). - -- Result is one value from {CURL_CODES} - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_perform") - if l_api /= default_pointer then - Result := c_perform (l_api, a_curl_handle) - else - Result := {CURL_CODES}.eiffelcurle_error_occurred - end - end - - cleanup (a_curl_handle: POINTER) - -- Declared as curl_easy_cleanup(). - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_cleanup") - if l_api /= default_pointer then - c_cleanup (l_api, a_curl_handle) - end - end - -feature -- Query - - getinfo (a_curl_handle: POINTER; a_info: INTEGER; a_data: CELL [detachable ANY]): INTEGER - -- `curl_getinfo - --|* Request internal information from the curl session with this function. The - --|* third argument MUST be a pointer to a long, a pointer to a char * or a - --|* pointer to a double (as the documentation describes elsewhere). The data - --|* pointed to will be filled in accordingly and can be relied upon only if the - --|* function returns CURLE_OK. This function is intended to get used *AFTER* a - --|* performed transfer, all results from this function are undefined until the - --|* transfer is completed. - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_INFO_CONSTANTS}).is_valid (a_info) - local - l_api: POINTER - mp: detachable MANAGED_POINTER - l: INTEGER - cs: C_STRING - d: REAL_64 - do - a_data.replace (Void) - l_api := api_loader.api_pointer ("curl_easy_getinfo") - if l_api /= default_pointer then - if a_info & {CURL_INFO_CONSTANTS}.curlinfo_long /= 0 then - create mp.make ({PLATFORM}.integer_32_bytes) - elseif a_info & {CURL_INFO_CONSTANTS}.curlinfo_string /= 0 then - create mp.make ({PLATFORM}.pointer_bytes) - elseif a_info & {CURL_INFO_CONSTANTS}.curlinfo_double /= 0 then - create mp.make ({PLATFORM}.real_64_bytes) - end - if mp /= Void then - Result := c_getinfo (l_api, a_curl_handle, a_info, mp.item) - if Result = {CURL_CODES}.curle_ok then - if a_info & {CURL_INFO_CONSTANTS}.curlinfo_long /= 0 then - l := mp.read_integer_32 (0) - a_data.put (l) - elseif a_info & {CURL_INFO_CONSTANTS}.curlinfo_string /= 0 then - create cs.make_shared_from_pointer (mp.read_pointer (0)) - a_data.put (cs.string) - elseif a_info & {CURL_INFO_CONSTANTS}.curlinfo_double /= 0 then - d := mp.read_real_64 (0) - a_data.put (d) - end - end - end - end - end - - is_dynamic_library_exists: BOOLEAN - -- If dll/so files exist? - do - Result := api_loader.is_interface_usable - end - -feature -- Special setting - - set_curl_function (a_curl_function: CURL_FUNCTION) - -- Set `curl_function' with `a_curl_function' - do - internal_curl_function := a_curl_function - ensure - set: a_curl_function /= Void implies curl_function = a_curl_function - end - - curl_function: CURL_FUNCTION - -- cURL functions in curl_easy_setopt. - do - if attached internal_curl_function as l_curl_function then - Result := l_curl_function - else - create {CURL_DEFAULT_FUNCTION} Result.make - internal_curl_function := Result - end - ensure - not_void: Result /= Void - end - - set_write_function (a_curl_handle: POINTER) - -- Set cURL write function - -- Set cURL write function with Eiffel default write function. - -- So we can use CURL_STRING as parameter in {CURL_EASY_EXTERNALS}.setopt_curl_string when the option is {CURL_OPT_CONSTANTS}.curlopt_writedata - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - curl_function.c_set_write_function (l_api, a_curl_handle) - end - end - - set_read_function (a_curl_handle: POINTER) - -- Set cURL read function - -- Set cURL read function with Eiffel default read function. - -- So we can use a c file pointer as parameter in {CURL_EASY_EXTERNALS}.setopt_file_pointer when the option is {CURL_OPT_CONSTANTS}.curlopt_readdata - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - curl_function.c_set_read_function (l_api, a_curl_handle) - end - end - - set_progress_function (a_curl_handle: POINTER) - -- Set cURL progress function for upload/download progress. - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - curl_function.c_set_progress_function (l_api, a_curl_handle) - end - end - - set_debug_function (a_curl_handle: POINTER) - -- Set cURL debug function - require - exists: a_curl_handle /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - curl_function.c_set_debug_function (l_api, a_curl_handle) - end - end - -feature {NONE} -- Implementation - - internal_curl_function: detachable CURL_FUNCTION - -- cURL functions. - - api_loader: DYNAMIC_MODULE - -- Module name. - local - l_utility: CURL_UTILITY - once - create l_utility - Result := l_utility.api_loader - end - - setopt_void_star (a_curl_handle: POINTER; a_opt: INTEGER; a_data:POINTER) - -- Declared as curl_easy_setopt(). - require - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_easy_setopt") - if l_api /= default_pointer then - c_setopt (l_api, a_curl_handle, a_opt, a_data) - end - end - -feature {NONE} -- C externals - - c_init (a_api: POINTER): POINTER - -- Declared curl_easy_init (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURL *, ()) $a_api)(); - ]" - end - - c_cleanup (a_api: POINTER; a_curl_handle: POINTER) - -- Decalred as curl_easy_cleanup (). - require - exists: a_api /= default_pointer - exists: a_curl_handle /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, (CURL *)) $a_api)((CURL *)$a_curl_handle); - ]" - end - - c_perform (a_api: POINTER; a_curl_handle: POINTER): INTEGER - -- Declared as curl_easy_perform(). - require - exists: a_api /= default_pointer - exists: a_curl_handle /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLcode, (CURL *)) $a_api) - ((CURL *) $a_curl_handle); - ]" - end - - c_setopt_int (a_api: POINTER; a_curl_handle: POINTER; a_opt: INTEGER; a_data: INTEGER) - -- Same as `c_setopt' except we can pass `a_data' as integer. - require - exists: a_api /= default_pointer - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_api) - ((CURL *) $a_curl_handle, - (CURLoption)$a_opt, - $a_data); - } - ]" - end - - c_setopt (a_api: POINTER; a_curl_handle: POINTER; a_opt: INTEGER; a_data: POINTER) - -- C implementation of `setopt_void_star'. - -- Declared as curl_easy_setopt (). - require - exists: a_api /= default_pointer - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_api) - ((CURL *) $a_curl_handle, - (CURLoption)$a_opt, - $a_data); - } - ]" - end - - c_getinfo (a_api: POINTER; a_curl_handle: POINTER; a_opt: INTEGER; a_data: POINTER): INTEGER - -- C implementation of `curl_easy_getinfo'. - -- Declared as curl_easy_setopt (). - require - exists: a_api /= default_pointer - exists: a_curl_handle /= default_pointer - valid: (create {CURL_OPT_CONSTANTS}).is_valid (a_opt) - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLcode, (CURL *, CURLINFO info, ...)) $a_api) - ((CURL *) $a_curl_handle, - (CURLINFO)$a_opt, - $a_data); - ]" - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2010, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_externals.e b/contrib/ise_library/cURL/curl_externals.e deleted file mode 100644 index 1843e6e6..00000000 --- a/contrib/ise_library/cURL/curl_externals.e +++ /dev/null @@ -1,254 +0,0 @@ -note - description: "[ - cURL externals. - For more information, see: - http://curl.haxx.se/libcurl/c/ - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_EXTERNALS - -feature -- Command - - global_init - -- Declared as curl_global_init(). - require - dynamic_library_exists: is_dynamic_library_exists - local - l_ptr: POINTER - do - l_ptr := api_loader.api_pointer ("curl_global_init") - if l_ptr /= default_pointer then - c_curl_global_init (l_ptr, {CURL_GLOBAL_CONSTANTS}.curl_global_all); - end - end - - global_cleanup - -- Declared as curl_global_cleanup(). - local - l_ptr: POINTER - do - l_ptr := api_loader.api_pointer ("curl_global_cleanup") - if l_ptr /= default_pointer then - c_curl_global_cleanup (l_ptr); - end - end - - formadd_string_string (a_form: CURL_FORM; a_last_pointer: CURL_FORM; a_arg_1: INTEGER; a_arg_1_value: READABLE_STRING_GENERAL; a_arg_2: INTEGER; a_arg_2_value: READABLE_STRING_GENERAL; a_arg_3: INTEGER) - -- Declared as curl_formadd (). - require - not_void: a_form /= Void - not_void: a_last_pointer /= Void - valid: (create {CURL_FORM_CONSTANTS}).is_valid (a_arg_1) - not_void: a_arg_1_value /= Void - valid: (create {CURL_FORM_CONSTANTS}).is_valid (a_arg_2) - not_void: a_arg_2_value /= Void - valid: (create {CURL_FORM_CONSTANTS}).is_valid (a_arg_3) - local - l_form_pointer, l_last_pointer: POINTER - do - l_form_pointer := a_form.item - l_last_pointer := a_last_pointer.item - - internal_formadd_string_string ($l_form_pointer, $l_last_pointer, a_arg_1, a_arg_1_value, a_arg_2, a_arg_2_value, a_arg_3) - - if a_form.item /= l_form_pointer then - check not_set: a_form.item = default_pointer end - a_form.set_item (l_form_pointer) - end - if a_last_pointer.item /= l_last_pointer then - a_last_pointer.set_item (l_last_pointer) - end - end - - slist_append (a_list: POINTER; a_string: READABLE_STRING_GENERAL): POINTER - -- Declared as curl_slist_append (). - -- note: call with a null `a_list' to get initialized pointer as Result - require - not_void: a_string /= Void - local - l_c_string: C_STRING - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_slist_append") - if l_api /= default_pointer then - create l_c_string.make (a_string) - Result := c_slist_append (l_api, a_list, l_c_string.item) - end - end - - slist_free_all (a_curl_slist: POINTER) - -- Declared as curl_slist_free_all (). - -- See: http://curl.haxx.se/libcurl/c/curl_slist_free_all.html - -- curl_slist_free_all - free an entire curl_slist list - -- This must be called when the data has been used, which typically means after the curl_easy_perform(3) has been called. - require - exists: a_curl_slist /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_slist_free_all") - if l_api /= default_pointer then - c_slist_free_all (l_api, a_curl_slist) - end - end - -feature -- Query - - is_dynamic_library_exists: BOOLEAN - -- If dll/so files exist? - do - Result := api_loader.is_interface_usable - end - -feature {CURL_FORM} -- Internal command - - formfree (a_curl_form: POINTER) - -- Declared as curl_formfree (). - -- See: http://curl.askapache.com/libcurl/c/curl_formfree.html - -- curl_formfree() is used to clean up data previously built/appended with curl_formadd(3). - -- This must be called when the data has been used, which typically means after the curl_easy_perform(3) has been called. - require - exists: a_curl_form /= default_pointer - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_formfree") - if l_api /= default_pointer then - c_formfree (l_api, a_curl_form) - end - end - -feature {NONE} -- Implementation - - api_loader: DYNAMIC_MODULE - -- Module name. - local - l_utility: CURL_UTILITY - once - create l_utility - Result := l_utility.api_loader - end - - internal_formadd_string_string (a_form: TYPED_POINTER [POINTER]; a_last_pointer: TYPED_POINTER [POINTER]; a_arg_1: INTEGER; a_arg_1_value: READABLE_STRING_GENERAL; a_arg_2: INTEGER; a_arg_2_value: READABLE_STRING_GENERAL; a_arg_3: INTEGER) - -- Declared as curl_formadd (). - local - l_c_string_1, l_c_string_2: C_STRING - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_formadd"); - if l_api /= default_pointer then - create l_c_string_1.make (a_arg_1_value) - create l_c_string_2.make (a_arg_2_value) - c_formadd_string_string (l_api, a_form, a_last_pointer, a_arg_1, l_c_string_1.item, a_arg_2, l_c_string_2.item, a_arg_3) - end - end - -feature {NONE} -- C externals - - c_formadd_string_string (a_api: POINTER; a_form: TYPED_POINTER [POINTER]; a_last_pointer: TYPED_POINTER [POINTER]; a_arg_1: INTEGER; a_arg_1_value: POINTER; a_arg_2: INTEGER; a_arg_2_value: POINTER; a_arg_3: INTEGER) - -- C implementation of formadd_string_string (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (struct curl_httppost **, struct curl_httppost **, int, char *, int, char *, int)) $a_api) - ((struct curl_httppost **)$a_form, - (struct curl_httppost **)$a_last_pointer, - (int)$a_arg_1, - (char *)$a_arg_1_value, - (int)$a_arg_2, - (char *)$a_arg_2_value, - (int)$a_arg_3); - } - ]" - end - - c_formfree (a_api: POINTER; a_curl_form: POINTER) - -- Declared as curl_formfree (). - require - exists: a_api /= default_pointer - exists: a_curl_form /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, (struct curl_httppost *)) $a_api) - ((struct curl_httppost *) $a_curl_form); - ]" - end - - c_curl_global_init (a_api: POINTER; a_opt: NATURAL_64) - -- `a_api' point to API curl_global_init () - -- `a_opt' is intialization option. - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, (long)) $a_api)((long) $a_opt); - ]" - end - - c_curl_global_cleanup (a_api: POINTER) - -- `a_api' point to API curl_global_cleanup() - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, ()) $a_api)(); - ]" - end - - c_slist_append (a_api: POINTER; a_list_pointer: POINTER; a_string: POINTER): POINTER - -- Declared as curl_slist_append (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - { - return (FUNCTION_CAST(void *, (struct curl_slist *, const char *)) $a_api) - ((struct curl_slist *)$a_list_pointer, - (const char *)$a_string); - } - ]" - end - - c_slist_free_all (a_api: POINTER; a_list_pointer: POINTER) - -- Declared as void curl_slist_free_all(struct curl_slist * list) - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void *, (struct curl_slist *)) $a_api) - ((struct curl_slist *)$a_list_pointer); - ]" - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2010, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_form.e b/contrib/ise_library/cURL/curl_form.e deleted file mode 100644 index 05ff7f69..00000000 --- a/contrib/ise_library/cURL/curl_form.e +++ /dev/null @@ -1,94 +0,0 @@ -note - description: "[ - cURL form. - For more informaton see: - http://curl.haxx.se/libcurl/c/curl_formadd.html - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_FORM - -inherit - DISPOSABLE - -create - make, - share_with_pointer - -feature {NONE} -- Initialization - - make - -- Creation method. - do - end - - share_with_pointer (a_pointer: POINTER) - -- Creation method. - -- `item' share with `a_pointer'. - require - exists: a_pointer /= default_pointer - do - item := a_pointer - ensure - set: item = a_pointer - end - -feature -- Query - - item: POINTER - -- C pointer of Current. - - is_exists: BOOLEAN - -- If C pointer exists? - do - Result := item /= default_pointer - end - -feature -- Command - - dispose - -- Free memory if possible. - local - l_curl: CURL_EXTERNALS - do - if item /= default_pointer then - create l_curl - l_curl.formfree (item) - item := default_pointer - end - end - - release_item - -- Release item - -- NOT free memory! This is useful if Current generated by {CURL_EXTERNALS}.formadd_string_string. - do - item := default_pointer - end - -feature {CURL_EXTERNALS} -- Internal command - - set_item (a_item: POINTER) - -- Set `item' with `a_item' - do - item := a_item - ensure - set: item = a_item - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_form_constants.e b/contrib/ise_library/cURL/curl_form_constants.e deleted file mode 100644 index 260d5761..00000000 --- a/contrib/ise_library/cURL/curl_form_constants.e +++ /dev/null @@ -1,78 +0,0 @@ -note - description: "[ - cURL form constants. - For more informaton see: - http://curl.haxx.se/libcurl/c/curl_formadd.html - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_FORM_CONSTANTS - -feature -- Query - - curlform_copyname: INTEGER - -- Declared as CURLFORM_COPYNAME - external - "C inline use " - alias - "[ - CURLFORM_COPYNAME - ]" - end - - curlform_copycontents: INTEGER - -- Declared as CURLFORM_COPYCONTENTS - external - "C inline use " - alias - "[ - CURLFORM_COPYCONTENTS - ]" - end - - curlform_end: INTEGER - -- Declared as CURLFORM_END - external - "C inline use " - alias - "[ - CURLFORM_END - ]" - end - - curlform_file: INTEGER - -- Declared as CURLFORM_FILE - external - "C inline use " - alias - "[ - CURLFORM_FILE - ]" - end - - is_valid (a_integer: INTEGER): BOOLEAN - -- If `a_integer' valid? - do - Result := a_integer = curlform_copycontents or - a_integer = curlform_copyname or - a_integer = curlform_end or - a_integer = curlform_file - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_function.e b/contrib/ise_library/cURL/curl_function.e deleted file mode 100644 index f5790214..00000000 --- a/contrib/ise_library/cURL/curl_function.e +++ /dev/null @@ -1,257 +0,0 @@ -note - description: "[ - cURL curl_easy_setopt callback functions' Eiffel wrappers. - We need this class since cURL need a c function pointer as value but - Eiffel function need frist parameter of any funciton call is object address. - Client programmers can inherit this class to fit their needs. - - Note: descendants of this class have to call `set_object_and_function_address', - otherwise cURL would not know how to call Eiffel features (such as `write_function'). - See example: $ISE_LIBRARY\examples\cURL\upload_and_read_function - - See http://curl.haxx.se/libcurl/c/curl_easy_setopt.html for libcurl documentation - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -deferred class - CURL_FUNCTION - -inherit - DISPOSABLE - -feature -- Interactive with C - - set_object_and_function_address - -- Set object and function addresses. - -- Call this feature before call `c_set_progress_function', `c_set_debug_function' and `c_set_write_function, c_set_read_function'. - do - c_set_object ($Current) - c_set_progress_function_address ($progress_function) - c_set_write_function_address ($write_function) - c_set_read_function_address ($read_function) - c_set_debug_function_address ($debug_function) - end - - c_set_progress_function (a_setopt_api: POINTER; a_curl_handle: POINTER) - -- Setting CURLOPT_PROGRESSFUNCTION option of `a_curl_handle'. - -- We need this function since cURL need a c function pointer as value. - require - exists: a_setopt_api /= default_pointer - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_setopt_api) - ((CURL *) $a_curl_handle, - (CURLoption)CURLOPT_PROGRESSFUNCTION, - curl_progress_function); - } - ]" - end - - c_set_debug_function (a_setopt_api: POINTER; a_curl_handle: POINTER) - -- Setting CURLOPT_DEBUGFUNCTION option of `a_curl_handle'. - -- We need this function since cURL need a c function pointer as value. - require - exists: a_curl_handle /= default_pointer - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_setopt_api) - ((CURL *) $a_curl_handle, - (CURLoption)CURLOPT_DEBUGFUNCTION, - curl_debug_function); - - } - ]" - end - - c_set_write_function (a_setopt_api: POINTER; a_curl_handle: POINTER) - -- Setting CURLOPT_WRITEFUNCTION option of `a_curl_handle'. - -- We need this function since cURL need a c function pointer as value. - require - exists: a_setopt_api /= default_pointer - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_setopt_api) - ((CURL *) $a_curl_handle, - (CURLoption)CURLOPT_WRITEFUNCTION, - curl_write_function); - } - ]" - end - - c_set_read_function (a_setopt_api: POINTER; a_curl_handle: POINTER) - -- Setting CURLOPT_READFUNCTION option of `a_curl_handle'. - -- We need this function since cURL need a c function pointer as value. - require - exists: a_setopt_api /= default_pointer - external - "C inline use " - alias - "[ - { - (FUNCTION_CAST(void, (CURL *, CURLoption, ...)) $a_setopt_api) - ((CURL *) $a_curl_handle, - (CURLoption)CURLOPT_READFUNCTION, - curl_read_function); - } - ]" - end - -feature -- cURL curl_easy_setopt functions - - progress_function (a_object_id: POINTER; a_download_total, a_download_now, a_upload_total, a_upload_now: REAL_64): INTEGER - -- Function correspond to {CURL_OPT_CONSTANTS}.curlopt_progressfunction - -- Note, pass a {IDENTIFIED}.object_id as `a_object_id' value is helpful since we can't directly pass an Eiffel Object address which - -- may changed during GC. - deferred - end - - write_function (a_data_pointer: POINTER; a_size, a_nmemb: INTEGER; a_object_id: POINTER): INTEGER - -- Function called by libcurl as soon as there is data received that needs to be saved. - -- The size of the data pointed to by `a_data_pointer' is `a_size' multiplied with `a_nmemb', it will not be null terminated. - -- Returns the number of bytes actually taken care of - -- - -- Function corresponds to {CURL_OPT_CONSTANTS}.curlopt_writefunction - -- Note, pass a {IDENTIFIED}.object_id as `a_object_id' value is helpful since we can't directly pass an Eiffel Object address which - -- may changed during GC. - --| libcurl doc: - --| Function pointer that should match the following prototype: size_t function( char *ptr, size_t size, size_t nmemb, void *userdata); - --| This function gets called by libcurl as soon as there is data received that needs to be saved. - --| The size of the data pointed to by ptr is size multiplied with nmemb, it will not be zero terminated. - --| Return the number of bytes actually taken care of. - --| If that amount differs from the amount passed to your function, it'll signal an error to the library. - --| This will abort the transfer and return CURLE_WRITE_ERROR. - --| From 7.18.0, the function can return CURL_WRITEFUNC_PAUSE which then will cause writing to this connection to become paused. - --| See curl_easy_pause(3) for further details. - --| - --| This function may be called with zero bytes data if the transferred file is empty. - --| - --| Set this option to NULL to get the internal default function. - --| The internal default function will write the data to the FILE * given with CURLOPT_WRITEDATA. - --| - --| Set the userdata argument with the CURLOPT_WRITEDATA option. - --| - --| The callback function will be passed as much data as possible in all invokes, - --| but you cannot possibly make any assumptions. It may be one byte, it may be thousands. - --| The maximum amount of body data that can be passed to the write callback is defined - --| in the curl.h header file: CURL_MAX_WRITE_SIZE (the usual default is 16K). - --| If you however have CURLOPT_HEADER set, which sends header data to the write callback, - --| you can get up to CURL_MAX_HTTP_HEADER bytes of header data passed into it. This usually means 100K. - deferred - end - - read_function (a_data_pointer: POINTER; a_size, a_nmemb: INTEGER; a_object_id: POINTER): INTEGER - -- Function called by libcurl as soon as it needs to read data in order to send it to the peer. - -- The data area pointed at by the pointer `a_data_pointer' may be filled with at most - -- `a_size' multiplied with `a_nmemb' number of bytes. - -- Returns the actual number of bytes stored in that memory area. - -- Returning 0 will signal end-of-file to the library and cause it to stop the current transfer. - -- - -- Function corresponds to {CURL_OPT_CONSTANTS}.curlopt_readfunction - -- Note, pass a {IDENTIFIED}.object_id as `a_object_id' value is helpful since we can't directly pass an Eiffel Object address which - -- may changed during GC. - --| libcurl doc: - --| Function pointer that should match the following prototype: size_t function( void *ptr, size_t size, size_t nmemb, void *userdata); - --| This function gets called by libcurl as soon as it needs to read data in order to send it to the peer. - --| The data area pointed at by the pointer ptr may be filled with at most size multiplied with nmemb number of bytes. - --| Your function must return the actual number of bytes that you stored in that memory area. - --| Returning 0 will signal end-of-file to the library and cause it to stop the current transfer. - --| - --| If you stop the current transfer by returning 0 "pre-maturely" (i.e before the server expected it, - --| like when you've said you will upload N bytes and you upload less than N bytes), - --| you may experience that the server "hangs" waiting for the rest of the data that won't come. - --| - --| The read callback may return CURL_READFUNC_ABORT to stop the current operation immediately, - --| resulting in a CURLE_ABORTED_BY_CALLBACK error code from the transfer (Added in 7.12.1) - --| - --| From 7.18.0, the function can return CURL_READFUNC_PAUSE which then will cause reading from this connection to become paused. - --| See curl_easy_pause(3) for further details. - --| - --| Bugs: when doing TFTP uploads, you must return the exact amount of data that the callback wants, - --| or it will be considered the final packet by the server end and the transfer will end there. - --| - --| If you set this callback pointer to NULL, or don't set it at all, the default internal read function will be used. - --| It is doing an fread() on the FILE * userdata set with CURLOPT_READDATA. - deferred - end - - debug_function (a_curl_handle: POINTER; a_curl_infotype: INTEGER; a_char_pointer: POINTER; a_size: INTEGER; a_object_id: POINTER): INTEGER - -- Function correspond to {CURL_OPT_CONSTANTS}.curlopt_debugfunction - -- Note, pass a {IDENTIFIED}.object_id as `a_object_id' value is helpful since we can't directly pass an Eiffel Object address which - -- may changed during GC. - require - vaild: (create {CURL_INFO_TYPE}).is_valid (a_curl_infotype) - deferred - end - -feature {NONE} -- Externals - - c_set_object (a_object: POINTER) - -- Set Current object address. - external - "C signature (EIF_REFERENCE) use %"eiffel_curl.h%"" - end - - c_release_object - -- Release Current pointer in C - external - "C use %"eiffel_curl.h%"" - end - - c_set_progress_function_address (a_address: POINTER) - -- Set progress function address. - external - "C use %"eiffel_curl.h%"" - end - - c_set_write_function_address (a_address: POINTER) - -- Set write function address. - external - "C use %"eiffel_curl.h%"" - end - - c_set_read_function_address (a_address: POINTER) - -- Set read function address. - external - "C use %"eiffel_curl.h%"" - end - - c_set_debug_function_address (a_address: POINTER) - -- Set write function address. - external - "C use %"eiffel_curl.h%"" - end - -feature {NONE} -- Implementation - - dispose - -- Wean `Current' - do - c_release_object - c_set_object (default_pointer) - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_global_constants.e b/contrib/ise_library/cURL/curl_global_constants.e deleted file mode 100644 index 90d4c29a..00000000 --- a/contrib/ise_library/cURL/curl_global_constants.e +++ /dev/null @@ -1,78 +0,0 @@ -note - description: "[ - cURL library constants used by curl_global_init () - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_GLOBAL_CONSTANTS - -feature -- Query - - curl_global_ssl: NATURAL_64 - -- Delcared as CURL_GLOBAL_SSL - external - "C inline use " - alias - "[ - return CURL_GLOBAL_SSL; - ]" - end - - curl_global_win32: NATURAL_64 - -- Delcared as CURL_GLOBAL_WIN32 - external - "C inline use " - alias - "[ - return CURL_GLOBAL_WIN32; - ]" - end - - curl_global_all: NATURAL_64 - -- Delcared as CURL_GLOBAL_ALL - external - "C inline use " - alias - "[ - return CURL_GLOBAL_ALL; - ]" - end - - curl_global_nothing: NATURAL_64 - -- Delcared as CURL_GLOBAL_NOTHING - external - "C inline use " - alias - "[ - return CURL_GLOBAL_NOTHING; - ]" - end - - curl_global_default: NATURAL_64 - -- Delcared as CURL_GLOBAL_DEFAULT - external - "C inline use " - alias - "[ - return CURL_GLOBAL_DEFAULT; - ]" - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end - diff --git a/contrib/ise_library/cURL/curl_info_constants.e b/contrib/ise_library/cURL/curl_info_constants.e deleted file mode 100644 index c8dfd480..00000000 --- a/contrib/ise_library/cURL/curl_info_constants.e +++ /dev/null @@ -1,122 +0,0 @@ -note - description: "[ - cURL library info constants. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_INFO_CONSTANTS - -feature -- Constants - - curlinfo_string: INTEGER = 0x100000 - -- Declared as CURLINFO_STRING - - curlinfo_long: INTEGER = 0x200000 - -- Declared as CURLINFO_LONG - - curlinfo_double: INTEGER = 0x300000 - -- Declared as CURLINFO_DOUBLE - - curlinfo_slist: INTEGER = 0x400000 - -- Declared as CURLINFO_SLIST - - curlinfo_mask: INTEGER = 0x0fffff - -- Declared as CURLINFO_MASK - - curlinfo_typemask: INTEGER = 0xf00000 - -- Declared as CURLINFO_TYPEMASK - -feature -- Info constants - - curlinfo_effective_url: INTEGER = 0x100001 -- CURLINFO_STRING + 1, - curlinfo_response_code: INTEGER = 0x200002 -- CURLINFO_LONG + 2, - curlinfo_total_time: INTEGER = 0x300003 -- CURLINFO_DOUBLE + 3, - curlinfo_namelookup_time: INTEGER = 0x300004 -- CURLINFO_DOUBLE + 4, - curlinfo_connect_time: INTEGER = 0x300005 -- CURLINFO_DOUBLE + 5, - curlinfo_pretransfer_time: INTEGER = 0x300006 -- CURLINFO_DOUBLE + 6, - curlinfo_size_upload: INTEGER = 0x300007 -- CURLINFO_DOUBLE + 7, - curlinfo_size_download: INTEGER = 0x300008 -- CURLINFO_DOUBLE + 8, - curlinfo_speed_download: INTEGER = 0x300009 -- CURLINFO_DOUBLE + 9, - curlinfo_speed_upload: INTEGER = 0x30000a -- CURLINFO_DOUBLE + 10, - curlinfo_header_size: INTEGER = 0x20000b -- CURLINFO_LONG + 11, - curlinfo_request_size: INTEGER = 0x20000c -- CURLINFO_LONG + 12, - curlinfo_ssl_verifyresult: INTEGER = 0x20000d -- CURLINFO_LONG + 13, - curlinfo_filetime: INTEGER = 0x20000e -- CURLINFO_LONG + 14, - curlinfo_content_length_download: INTEGER = 0x30000f -- CURLINFO_DOUBLE + 15, - curlinfo_content_length_upload: INTEGER = 0x300010 -- CURLINFO_DOUBLE + 16, - curlinfo_starttransfer_time: INTEGER = 0x300011 -- CURLINFO_DOUBLE + 17, - curlinfo_content_type: INTEGER = 0x100012 -- CURLINFO_STRING + 18, - curlinfo_redirect_time: INTEGER = 0x300013 -- CURLINFO_DOUBLE + 19, - curlinfo_redirect_count: INTEGER = 0x200014 -- CURLINFO_LONG + 20, - curlinfo_private: INTEGER = 0x100015 -- CURLINFO_STRING + 21, - curlinfo_http_connectcode: INTEGER = 0x200016 -- CURLINFO_LONG + 22, - curlinfo_httpauth_avail: INTEGER = 0x200017 -- CURLINFO_LONG + 23, - curlinfo_proxyauth_avail: INTEGER = 0x200018 -- CURLINFO_LONG + 24, - curlinfo_os_errno: INTEGER = 0x200019 -- CURLINFO_LONG + 25, - curlinfo_num_connects: INTEGER = 0x20001a -- CURLINFO_LONG + 26, - curlinfo_ssl_engines: INTEGER = 0x40001b -- CURLINFO_SLIST + 27, - curlinfo_cookielist: INTEGER = 0x40001c -- CURLINFO_SLIST + 28, - curlinfo_lastsocket: INTEGER = 0x20001d -- CURLINFO_LONG + 29, - curlinfo_ftp_entry_path: INTEGER = 0x10001e -- CURLINFO_STRING + 30, - -feature -- Contract support - - is_valid (a_code: INTEGER): BOOLEAN - -- Is `a_code' valid? - do - inspect a_code - when - curlinfo_effective_url, - curlinfo_response_code, - curlinfo_total_time, - curlinfo_namelookup_time, - curlinfo_connect_time, - curlinfo_pretransfer_time, - curlinfo_size_upload, - curlinfo_size_download, - curlinfo_speed_download, - curlinfo_speed_upload, - curlinfo_header_size, - curlinfo_request_size, - curlinfo_ssl_verifyresult, - curlinfo_filetime, - curlinfo_content_length_download, - curlinfo_content_length_upload, - curlinfo_starttransfer_time, - curlinfo_content_type, - curlinfo_redirect_time, - curlinfo_redirect_count, - curlinfo_private, - curlinfo_http_connectcode, - curlinfo_httpauth_avail, - curlinfo_proxyauth_avail, - curlinfo_os_errno, - curlinfo_num_connects, - curlinfo_ssl_engines, - curlinfo_cookielist, - curlinfo_lastsocket, - curlinfo_ftp_entry_path - then - Result := True - else - Result := False - end - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_info_type.e b/contrib/ise_library/cURL/curl_info_type.e deleted file mode 100644 index 7137e97e..00000000 --- a/contrib/ise_library/cURL/curl_info_type.e +++ /dev/null @@ -1,69 +0,0 @@ -note - description: "[ - cURL library info type constants. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_INFO_TYPE - -feature -- Enumeration - - curlinfo_text: INTEGER = 0 - -- Declared as CURLINFO_TEXT - - curlinfo_header_in: INTEGER = 1 - -- Declared as CURLINFO_HEADER_IN - - curlinfo_header_out: INTEGER = 2 - -- Declared as CURLINFO_HEADER_OUT - - curlinfo_data_in: INTEGER = 3 - -- Declared as CURLINFO_DATA_IN - - curlinfo_data_out: INTEGER = 4 - -- Declared as CURLINFO_DATA_OUT - - curlinfo_ssl_data_in: INTEGER = 5 - -- Declared as CURLINFO_SSL_DATA_IN - - curlinfo_ssl_data_out: INTEGER = 6 - -- Declared as CURLINFO_SSL_DATA_OUT - -feature -- Contract support - - is_valid (a_type: INTEGER): BOOLEAN - -- If `a_type' valid? - do - inspect a_type - when - curlinfo_data_in, - curlinfo_data_out, - curlinfo_header_in, - curlinfo_header_out, - curlinfo_ssl_data_in, - curlinfo_ssl_data_out, - curlinfo_text - then - Result := True - else - Result := False - end - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_msg.e b/contrib/ise_library/cURL/curl_msg.e deleted file mode 100644 index 3a318a81..00000000 --- a/contrib/ise_library/cURL/curl_msg.e +++ /dev/null @@ -1,51 +0,0 @@ -note - description: "[ - C CURLMSG enum - ]" - date: "$Date$" - revision: "$Revision$" - -class - CURL_MSG - -feature -- Query - - curlmsg_done: INTEGER - -- Declared as CURLMSG_DONE. - -- This easy handle has completed. - -- 'result' contains the CURLcode of the transfer - external - "C inline use " - alias - "return CURLMSG_DONE;" - end - - curlmsg_none: INTEGER - -- Declared as CURLMSG_NONE. - -- First, not used - external - "C inline use " - alias - "return CURLMSG_NONE;" - end - - curlmsg_last: INTEGER - -- Declared as CURLMSG_LAST. - -- Last, not used - external - "C inline use " - alias - "return CURLMSG_LAST;" - end - -note - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/cURL/curl_msg_struct.e b/contrib/ise_library/cURL/curl_msg_struct.e deleted file mode 100644 index b5e618a1..00000000 --- a/contrib/ise_library/cURL/curl_msg_struct.e +++ /dev/null @@ -1,83 +0,0 @@ -note - description: "[ - - C Struct CURLMsg wrapper - Read multi stack informationals - - This class is used by {CURL_MSG_STRUCT}.info_read - - More info: - http://curl.haxx.se/libcurl/c/curl_multi_info_read.html - ]" - date: "$Date$" - revision: "$Revision$" - -class - CURL_MSG_STRUCT - -create - make - -feature {NONE} -- Initialization - - make (a_pointer: POINTER) - -- Creation method - -- Bind message structure to the address `a_pointer'". - require - not_default: a_pointer /= default_pointer - do - item := a_pointer - ensure - set: item = a_pointer - end - -feature -- Query - - curl_handle: POINTER - -- CURL easy_handle - -- The handle it concerns - do - Result := c_curl_handle (item) - end - - msg: INTEGER - -- What does this message mean? - -- It's one value from {CURLMSG} - do - Result := c_msg (item) - end - -feature {NONE} -- Implementation - - item: POINTER - -- C struct item - -feature {NONE} -- C externals - - c_curl_handle (a_item: POINTER): POINTER - -- cURL easy handle it concerns - external - "C inline use " - alias - "return (CURL *)((CURLMsg *)$a_item)->easy_handle;" - end - - c_msg (a_item: POINTER): INTEGER - -- Get msg - external - "C inline use " - alias - "return (CURLMSG)((CURLMsg *)$a_item)->msg;" - end - -;note - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/cURL/curl_multi_codes.e b/contrib/ise_library/cURL/curl_multi_codes.e deleted file mode 100644 index 44951a36..00000000 --- a/contrib/ise_library/cURL/curl_multi_codes.e +++ /dev/null @@ -1,48 +0,0 @@ -note - description: "[ - The generic return code used by functions in the libcurl multi interface. - Also consider curl_multi_strerror(3). - ]" - date: "$Date$" - revision: "$Revision$" - -class - CURL_MULTI_CODES - -feature -- Query - - curlm_call_multi_perform: INTEGER = -1 - -- This is not really an error. It means you should call curl_multi_perform(3) again without doing select() or similar in between. - - curlm_ok: INTEGER = 0 - -- Things are fine. - - curlm_bad_handle: INTEGER = 1 - -- The passed-in handle is not a valid CURLM handle. - - curlm_bad_easy_handle: INTEGER = 2 - -- An easy handle was not good/valid. It could mean that it isn't an easy handle at all, or possibly that the handle already is in used by this or another multi handle. - - curlm_out_of_memory: INTEGER = 3 - -- You are doomed. - - curlm_internal_error: INTEGER = 4 - -- This can only be returned if libcurl bugs. Please report it to us! - - curlm_bad_socket: INTEGER = 5 - -- The passed-in socket is not a valid one that libcurl already knows about. (Added in 7.15.4) - - curlm_unknown_option: INTEGER = 6 - -- curl_multi_setopt() with unsupported option (Added in 7.15.4) - -note - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/cURL/curl_multi_externals.e b/contrib/ise_library/cURL/curl_multi_externals.e deleted file mode 100644 index 2ee944b0..00000000 --- a/contrib/ise_library/cURL/curl_multi_externals.e +++ /dev/null @@ -1,251 +0,0 @@ -note - description: "[ - The multi interface offers several abilities that the easy interface doesn't. They are mainly: - 1. Enable a "pull" interface. The application that uses libcurl decides where and when to ask libcurl to get/send data. - 2. Enable multiple simultaneous transfers in the same thread without making it complicated for the application. - 3. Enable the application to wait for action on its own file descriptors and curl's file descriptors simultaneous easily. - - More info: http://curl.haxx.se/libcurl/c/libcurl-multi.html - ]" - date: "$Date$" - revision: "$Revision$" - -class - CURL_MULTI_EXTERNALS - -feature -- Command - - init - -- Create a multi handle. - -- If success, Result is a cURL multi hanlde just created. - -- This feature maybe failed in some cases: cannot find required DLL, etc. - -- Then the post condition would be violated. - require - dynamic_library_exists: is_dynamic_library_exists - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_multi_init") - if l_api /= default_pointer then - item := c_init (l_api) - end - end - - add_handle (a_easy_handle: POINTER) - -- Add an easy handle to a multi session. - require - dynamic_library_exists: is_dynamic_library_exists - is_multi_handle_exists: is_exists - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_multi_add_handle") - if l_api /= default_pointer then - c_add_handle (l_api, item, a_easy_handle) - end - end - - remove_handle (a_easy_handle: POINTER) - -- Remove an easy handle from a multi session. - require - dynamic_library_exists: is_dynamic_library_exists - is_multi_handle_exists: is_exists - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_multi_remove_handle") - if l_api /= default_pointer then - c_remove_handle (l_api, item, a_easy_handle) - end - end - - cleanup: INTEGER - -- Close down a multi session. - -- Result is one value from {CURL_MULTI_CODES}. - require - dynamic_library_exists: is_dynamic_library_exists - is_multi_handle_exists: is_exists - local - l_api: POINTER - do - l_api := api_loader.api_pointer ("curl_multi_cleanup") - if l_api /= default_pointer then - Result := c_cleanup (l_api, item) - end - end - - perform (a_running_handle: CELL [INTEGER]): INTEGER - -- Reads/writes available data from each easy handle. - -- Result is one value from {CURL_MULTI_CODES}. - require - dynamic_library_exists: is_dynamic_library_exists - is_multi_handle_exists: is_exists - local - l_api: POINTER - l_running_handle: INTEGER - do - l_api := api_loader.api_pointer ("curl_multi_perform") - if l_api /= default_pointer then - Result := c_perform (l_api, item, $l_running_handle) - a_running_handle.put (l_running_handle) - end - end - - info_read (a_msgs_in_queue: CELL [INTEGER]): POINTER - -- Read multi stack informationals. - -- The result is C struct CURLMsg {CURL_MSG_STRUCT}. - -- Repeated calls to this function will return a new struct each time, until a NULL - -- is returned as a signal that there is no more to get at this point. The integer - -- pointed to with msgs_in_queue will contain the number of remaining messages after - -- this function was called. - -- When you fetch a message using this function, it is removed from the internal queue - -- so calling this function again will not return the same message again. It will instead - -- return new messages at each new invoke until the queue is emptied. - require - dynamic_library_exists: is_dynamic_library_exists - is_multi_handle_exists: is_exists - local - l_api: POINTER - l_msgs_in_queue: INTEGER - do - l_api := api_loader.api_pointer ("curl_multi_info_read") - if l_api /= default_pointer then - Result := c_info_read (l_api, item, $l_msgs_in_queue) - a_msgs_in_queue.put (l_msgs_in_queue) - end - end - - is_dynamic_library_exists: BOOLEAN - -- Are required .dll/.so files available? - do - Result := api_loader.is_interface_usable - end - --- Feature not yet wrapped/tested --- curl_multi_assign --- curl_multi_fdset --- curl_multi_setopt --- curl_multi_socket --- curl_multi_socket_action --- curl_multi_strerror --- curl_multi_timeout - -feature -- Query - - is_exists: BOOLEAN - -- If C pointer exists? - do - Result := item /= default_pointer - end - -feature {NONE} -- Implementation - - item: POINTER - -- C pointer item for cURL multi - -feature {NONE} -- C externals - - c_init (a_api: POINTER): POINTER - -- Declared as curl_multi_init (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLM *, ()) $a_api)(); - ]" - end - - c_cleanup (a_api: POINTER; a_multi_handle: POINTER): INTEGER - -- Declared as curl_multi_cleanup (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLMcode, (CURLM *)) $a_api) - ((CURLM *)$a_multi_handle); - ]" - end - - c_add_handle (a_api: POINTER; a_multi_handle: POINTER; a_easy_handle: POINTER) - -- Declared as curl_multi_add_handle (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, (CURLM *, CURL *)) $a_api) - ((CURLM *) $a_multi_handle, - (CURL *) $a_easy_handle); - ]" - end - - c_remove_handle (a_api: POINTER; a_multi_handle: POINTER; a_easy_handle: POINTER) - -- Declared as curl_multi_remove_handle (). - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - (FUNCTION_CAST(void, (CURLM *, CURL *)) $a_api) - ((CURLM *) $a_multi_handle, - (CURL *) $a_easy_handle); - ]" - end - - c_perform (a_api: POINTER; a_multi_handle: POINTER; a_running_handles: TYPED_POINTER [INTEGER]): INTEGER - -- Declared as curl_multi_perform. - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLMcode, (CURLM *, int *)) $a_api) - ((CURLM *) $a_multi_handle, - (int *) $a_running_handles); - ]" - end - - c_info_read (a_api: POINTER; a_multi_handle: POINTER; a_msgs_in_queue: TYPED_POINTER [INTEGER]): POINTER - -- Declared as curl_multi_info_read. - require - exists: a_api /= default_pointer - external - "C inline use " - alias - "[ - return (FUNCTION_CAST(CURLMsg *, (CURLM *, int *)) $a_api) - ((CURLM *) $a_multi_handle, - (int *) $a_msgs_in_queue); - ]" - end - -feature {NONE} -- Implementation - - api_loader: DYNAMIC_MODULE - -- Module name. - local - l_utility: CURL_UTILITY - once - create l_utility - Result := l_utility.api_loader - end - - -note - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/cURL/curl_opt_constants.e b/contrib/ise_library/cURL/curl_opt_constants.e deleted file mode 100644 index 372e3f27..00000000 --- a/contrib/ise_library/cURL/curl_opt_constants.e +++ /dev/null @@ -1,1117 +0,0 @@ -note - description: "[ - libcurl library opt constants - For more informaton see: - - http://curl.haxx.se/libcurl/c/curl_easy_setopt.html - - Code related to LIBCURL_VERSION: 7.17.0 - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_OPT_CONSTANTS - -feature -- Version - - libcurl_version: STRING - -- String representation of LIBCURL_VERSION - do - create Result.make_from_c (libcurl_version_pointer) - end - - libcurl_version_pointer: POINTER - -- String pointer declared as LIBCURL_VERSION - external - "C inline use " - alias - "return LIBCURL_VERSION;" - end - - libcurl_version_major: INTEGER - -- Declared as LIBCURL_VERSION_MAJOR - external - "C inline use " - alias - "return LIBCURL_VERSION_MAJOR;" - end - - libcurl_version_minor: INTEGER - -- Declared as LIBCURL_VERSION_MINOR - external - "C inline use " - alias - "return LIBCURL_VERSION_MINOR;" - end - - libcurl_version_patch: INTEGER - -- Declared as LIBCURL_VERSION_PATCH - external - "C inline use " - alias - "return LIBCURL_VERSION_PATCH;" - end - -feature -- Behavior - - curlopt_verbose: INTEGER - -- Declared as CURLOPT_VERBOSE. - external - "C inline use " - alias - "return CURLOPT_VERBOSE;" - end - - curlopt_header: INTEGER - -- Declared as CURLOPT_HEADER. - external - "C inline use " - alias - "return CURLOPT_HEADER;" - end - - curlopt_noprogress: INTEGER - -- Declared as CURLOPT_NOPROGRESS - external - "C inline use " - alias - "return CURLOPT_NOPROGRESS;" - end - -feature -- Callback - - curlopt_writefunction: INTEGER - -- Declared as CURLOPT_WRITEFUNCTION. - external - "C inline use " - alias - "return CURLOPT_WRITEFUNCTION;" - end - - curlopt_writedata: INTEGER - -- Declared as CURLOPT_WRITEDATA. - external - "C inline use " - alias - "return CURLOPT_WRITEDATA;" - end - - curlopt_readfunction: INTEGER - -- Declared as CURLOPT_READFUNCTION. - external - "C inline use " - alias - "return CURLOPT_READFUNCTION;" - end - - curlopt_readdata: INTEGER - -- Declared as CURLOPT_READDATA. - external - "C inline use " - alias - "return CURLOPT_READDATA;" - end - - curlopt_debugfunction: INTEGER - -- Declared as CURLOPT_DEBUGFUNCTION. - external - "C inline use " - alias - "return CURLOPT_DEBUGFUNCTION;" - end - - curlopt_progressfunction: INTEGER - -- Declared as CURLOPT_PROGRESSFUNCTION - external - "C inline use " - alias - "return CURLOPT_PROGRESSFUNCTION;" - end - - curlopt_progressdata: INTEGER - -- Declared as CURLOPT_PROGRESSDATA - external - "C inline use " - alias - "return CURLOPT_PROGRESSDATA;" - end - - curlopt_writeheader: INTEGER - -- Declared as CURLOPT_WRITEHEADER. - external - "C inline use " - alias - "return CURLOPT_WRITEHEADER;" - end - -feature -- Network - - curlopt_url: INTEGER - -- Declared as CURLOPT_URL. - external - "C inline use " - alias - "return CURLOPT_URL;" - end - - curlopt_proxy: INTEGER - -- Declared as CURLOPT_PROXY. - external - "C inline use " - alias - "return CURLOPT_PROXY;" - end - - curlopt_proxyport: INTEGER - -- Declared as CURLOPT_PROXYPORT. - external - "C inline use " - alias - "return CURLOPT_PROXYPORT;" - end - - curlopt_proxytype: INTEGER - -- Declared as CURLOPT_PROXYTYPE. - external - "C inline use " - alias - "return CURLOPT_PROXYTYPE;" - end - - curlopt_httpproxytunnel: INTEGER - -- Declared as CURLOPT_HTTPPROXYTUNNEL. - external - "C inline use " - alias - "return CURLOPT_HTTPPROXYTUNNEL;" - end - - curlopt_interface: INTEGER - -- Declared as CURLOPT_INTERFACE. - external - "C inline use " - alias - "return CURLOPT_INTERFACE;" - end - - curlopt_localport: INTEGER - -- Declared as CURLOPT_LOCALPORT - external - "C inline use " - alias - "return CURLOPT_LOCALPORT;" - end - - curlopt_localportrange: INTEGER - -- Declared as CURLOPT_LOCALPORTRANGE - external - "C inline use " - alias - "return CURLOPT_LOCALPORTRANGE;" - end - - curlopt_buffersize: INTEGER - -- Declared as CURLOPT_BUFFERSIZE - external - "C inline use " - alias - "return CURLOPT_BUFFERSIZE" - end - - curlopt_port: INTEGER - -- Declared as CURLOPT_PORT - external - "C inline use " - alias - "return CURLOPT_PORT;" - end - - curlopt_tcp_nodelay: INTEGER - -- Declared as CURLOPT_TCP_NODELAY - external - "C inline use " - alias - "return CURLOPT_TCP_NODELAY;" - end - -feature -- Names and Passwords (Authentication) - - curlopt_userpwd: INTEGER - -- Declared as CURLOPT_USERPWD. - external - "C inline use " - alias - "return CURLOPT_USERPWD;" - end - - curlopt_proxyuserpwd: INTEGER - -- Declared as CURLOPT_PROXYUSERPWD - external - "C inline use " - alias - "return CURLOPT_PROXYUSERPWD;" - end - - curlopt_httpauth: INTEGER - -- Declared as CURLOPT_HTTPAUTH. - external - "C inline use " - alias - "return CURLOPT_HTTPAUTH;" - end - - curlauth_none: INTEGER - -- Declared as CURLAUTH_NONE. - external - "C inline use " - alias - "return CURLAUTH_NONE;" - end - - curlauth_basic: INTEGER - -- Declared as CURLAUTH_BASIC. - external - "C inline use " - alias - "return CURLAUTH_BASIC;" - end - - curlauth_digest: INTEGER - -- Declared as CURLAUTH_DIGEST. - external - "C inline use " - alias - "return CURLAUTH_DIGEST;" - end - - curlauth_any: INTEGER - -- Declared as CURLAUTH_ANY. - external - "C inline use " - alias - "return CURLAUTH_ANY;" - end - - curlauth_anysafe: INTEGER - -- Declared as CURLAUTH_ANYSAFE. - external - "C inline use " - alias - "return CURLAUTH_ANYSAFE;" - end - - curlopt_proxyauth: INTEGER - -- Declared as CURLOPT_PROXYAUTH - external - "C inline use " - alias - "return CURLOPT_PROXYAUTH;" - end - -feature -- HTTP - - curlopt_autoreferer: INTEGER - -- Declared as CURLOPT_AUTOREFERER - external - "C inline use " - alias - "return CURLOPT_AUTOREFERER;" - end - - curlopt_encoding: INTEGER - -- Declared as CURLOPT_ENCODING. - -- in future version, this is called CURLOPT_ACCEPT_ENCODING - external - "C inline use " - alias - "return CURLOPT_ENCODING;" - end - - curlopt_followlocation: INTEGER - -- Declared as CURLOPT_FOLLOWLOCATION - external - "C inline use " - alias - "return CURLOPT_FOLLOWLOCATION;" - end - - curlopt_unrestricted_auth: INTEGER - -- Declared as CURLOPT_UNRESTRICTED_AUTH - external - "C inline use " - alias - "return CURLOPT_UNRESTRICTED_AUTH;" - end - - curlopt_maxredirs: INTEGER - -- Declared as CURLOPT_MAXREDIRS - external - "C inline use " - alias - "return CURLOPT_MAXREDIRS;" - end - - curlopt_put: INTEGER - -- Declared as CURLOPT_PUT. - external - "C inline use " - alias - "return CURLOPT_PUT;" - end - - curlopt_post: INTEGER - -- Declared as CURLOPT_POST. - external - "C inline use " - alias - "return CURLOPT_POST;" - end - - curlopt_postfields: INTEGER - -- Declared as CURLOPT_POSTFIELDS. - external - "C inline use " - alias - "return CURLOPT_POSTFIELDS;" - end - - curlopt_postfieldsize: INTEGER - -- Declared as CURLOPT_POSTFIELDSIZE - external - "C inline use " - alias - "return CURLOPT_POSTFIELDSIZE;" - end - - curlopt_postfieldsize_large: INTEGER - -- Declared as CURLOPT_POSTFIELDSIZE_LARGE - external - "C inline use " - alias - "return CURLOPT_POSTFIELDSIZE_LARGE;" - end - - curlopt_httppost: INTEGER - -- Declared as CURLOPT_HTTPPOST. - external - "C inline use " - alias - "return CURLOPT_HTTPPOST;" - end - - curlopt_referer: INTEGER - -- Declared as CURLOPT_REFERER - external - "C inline use " - alias - "return CURLOPT_REFERER;" - end - - curlopt_useragent: INTEGER - -- Declared as CURLOPT_USERAGENT. - external - "C inline use " - alias - "return CURLOPT_USERAGENT;" - end - - curlopt_httpheader: INTEGER - -- Declared as CURLOPT_HTTPHEADER. - external - "C inline use " - alias - "return CURLOPT_HTTPHEADER;" - end - - curlopt_cookie: INTEGER - -- Declared as CURLOPT_COOKIE. - external - "C inline use " - alias - "return CURLOPT_COOKIE;" - end - - curlopt_cookiefile: INTEGER - -- Declared as CURLOPT_COOKIEFILE. - external - "C inline use " - alias - "return CURLOPT_COOKIEFILE;" - end - - curlopt_cookiejar: INTEGER - -- Declared as CURLOPT_COOKIEJAR - external - "C inline use " - alias - "return CURLOPT_COOKIEJAR;" - end - - curlopt_cookiesession: INTEGER - -- Declared as CURLOPT_COOKIESESSION - external - "C inline use " - alias - "return CURLOPT_COOKIESESSION;" - end - - curlopt_cookielist: INTEGER - -- Declared as CURLOPT_COOKIELIST. - external - "C inline use " - alias - "return CURLOPT_COOKIELIST" - end - - curlopt_httpget: INTEGER - -- Declared as CURLOPT_HTTPGET - -- Pass a long. If the long is non-zero, this forces the HTTP request to get back to GET. usable if a POST, HEAD, PUT or a custom request have been used previously using the same curl handle. - -- When setting CURLOPT_HTTPGET to a non-zero value, it will automatically set CURLOPT_NOBODY to 0 (since 7.14.1). - external - "C inline use " - alias - "return CURLOPT_HTTPGET;" - end - - curlopt_http_version: INTEGER - -- Declared as CURLOPT_HTTP_VERSION - external - "C inline use " - alias - "return CURLOPT_HTTP_VERSION;" - end - - curlopt_ignore_content_length: INTEGER - -- Declared as CURLOPT_IGNORE_CONTENT_LENGTH - external - "C inline use " - alias - "return CURLOPT_IGNORE_CONTENT_LENGTH;" - end - - curlopt_http_content_decoding: INTEGER - -- Declared as CURLOPT_HTTP_CONTENT_DECODING - external - "C inline use " - alias - "return CURLOPT_HTTP_CONTENT_DECODING;" - end - -feature -- Protocol - - curlopt_transfertext: INTEGER - -- Declared as CURLOPT_TRANSFERTEXT - external - "C inline use " - alias - "return CURLOPT_TRANSFERTEXT;" - end - - curlopt_crlf: INTEGER - -- Declared as CURLOPT_CRLF - external - "C inline use " - alias - "return CURLOPT_CRLF;" - end - - curlopt_resume_from: INTEGER - -- Declared as CURLOPT_RESUME_FROM - external - "C inline use " - alias - "return CURLOPT_RESUME_FROM;" - end - - curlopt_resume_from_large: INTEGER - -- Declared as CURLOPT_RESUME_FROM_LARGE - external - "C inline use " - alias - "return CURLOPT_RESUME_FROM_LARGE;" - end - - curlopt_customrequest: INTEGER - -- Declared as CURLOPT_CUSTOMREQUEST - external - "C inline use " - alias - "return CURLOPT_CUSTOMREQUEST" - end - - curlopt_filetime: INTEGER - -- Declared as CURLOPT_FILETIME - external - "C inline use " - alias - "return CURLOPT_FILETIME;" - end - - curlopt_nobody: INTEGER - -- Declared as CURLOPT_NOBODY - external - "C inline use " - alias - "return CURLOPT_NOBODY;" - end - - curlopt_infilesize: INTEGER - -- Declared as CURLOPT_INFILESIZE - external - "C inline use " - alias - "return CURLOPT_INFILESIZE;" - end - - curlopt_infilesize_large: INTEGER - -- Declared as CURLOPT_INFILESIZE_LARGE. - external - "C inline use " - alias - "return CURLOPT_INFILESIZE_LARGE;" - end - - curlopt_upload: INTEGER - -- Declared as CURLOPT_UPLOAD. - external - "C inline use " - alias - "return CURLOPT_UPLOAD;" - end - - curlopt_maxfilesize: INTEGER - -- Declared as CURLOPT_MAXFILESIZE - external - "C inline use " - alias - "return CURLOPT_MAXFILESIZE;" - end - - curlopt_maxfilesize_large: INTEGER - -- Declared as CURLOPT_MAXFILESIZE_LARGE - external - "C inline use " - alias - "return CURLOPT_MAXFILESIZE_LARGE;" - end - - curlopt_timecondition: INTEGER - -- Declared as CURLOPT_TIMECONDITION - external - "C inline use " - alias - "return CURLOPT_TIMECONDITION;" - end - - curlopt_timevalue: INTEGER - -- Declared as CURLOPT_TIMEVALUE - external - "C inline use " - alias - "return CURLOPT_TIMEVALUE;" - end - -feature -- Connection - - curlopt_timeout: INTEGER - -- Declared as CURLOPT_TIMEOUT. - external - "C inline use " - alias - "return CURLOPT_TIMEOUT" - end - - curlopt_connect_timeout: INTEGER - -- The number of seconds to wait while trying to connect. Use 0 to wait indefinitely. - -- Declared as CURLOPT_CONNECTTIMEOUT - external - "C inline use " - alias - "[ - return CURLOPT_CONNECTTIMEOUT - ]" - end - - curlopt_timeout_ms: INTEGER - -- Declared as CURLOPT_TIMEOUT_MS - external - "C inline use " - alias - "return CURLOPT_TIMEOUT_MS;" - end - - curlopt_low_speed_limit: INTEGER - -- Declared as CURLOPT_LOW_SPEED_LIMIT - external - "C inline use " - alias - "return CURLOPT_LOW_SPEED_LIMIT;" - end - - curlopt_low_speed_time: INTEGER - -- Declared as CURLOPT_LOW_SPEED_TIME - external - "C inline use " - alias - "return CURLOPT_LOW_SPEED_TIME;" - end - - curlopt_max_send_speed_large: INTEGER - -- Declared as CURLOPT_MAX_SEND_SPEED_LARGE - external - "C inline use " - alias - "return CURLOPT_MAX_SEND_SPEED_LARGE;" - end - - curlopt_max_recv_speed_large: INTEGER - -- Declared as CURLOPT_MAX_RECV_SPEED_LARGE - external - "C inline use " - alias - "return CURLOPT_MAX_RECV_SPEED_LARGE;" - end - - curlopt_maxconnects: INTEGER - -- Declared as CURLOPT_MAXCONNECTS - external - "C inline use " - alias - "return CURLOPT_MAXCONNECTS;" - end - - curlopt_fresh_connect: INTEGER - -- Declared as CURLOPT_FRESH_CONNECT - external - "C inline use " - alias - "return CURLOPT_FRESH_CONNECT;" - end - - curlopt_forbid_reuse: INTEGER - -- Declared as CURLOPT_FORBID_REUSE - external - "C inline use " - alias - "return CURLOPT_FORBID_REUSE;" - end - - curlopt_connecttimeout: INTEGER - -- Declared as CURLOPT_CONNECTTIMEOUT. - external - "C inline use " - alias - "return CURLOPT_CONNECTTIMEOUT" - end - - curlopt_ipresolve: INTEGER - -- Declared as CURLOPT_IPRESOLVE - external - "C inline use " - alias - "return CURLOPT_IPRESOLVE;" - end - - curl_ipresolve_whatever: INTEGER - -- Declared as CURL_IPRESOLVE_WHATEVER - external - "C inline use " - alias - "return CURL_IPRESOLVE_WHATEVER;" - end - - curl_ipresolve_v4: INTEGER - -- Declared as CURL_IPRESOLVE_V4 - external - "C inline use " - alias - "return CURL_IPRESOLVE_V4;" - end - - curl_ipresolve_v6: INTEGER - -- Declared as CURL_IPRESOLVE_V6 - external - "C inline use " - alias - "return CURL_IPRESOLVE_V6;" - end - - curlopt_connect_only: INTEGER - -- Declared as CURLOPT_CONNECT_ONLY - external - "C inline use " - alias - "return CURLOPT_CONNECT_ONLY;" - end - - curlopt_use_ssl: INTEGER - -- Declared as CURLOPT_USE_SSL - external - "C inline use " - alias - "return CURLOPT_USE_SSL;" - end - - curlusessl_none: INTEGER - -- Declared as CURLUSESSL_NONE - external - "C inline use " - alias - "return CURLUSESSL_NONE;" - end - - curlusessl_try: INTEGER - -- Declared as CURLUSESSL_TRY - external - "C inline use " - alias - "return CURLUSESSL_TRY;" - end - - curlusessl_control: INTEGER - -- Declared as CURLUSESSL_CONTROL - external - "C inline use " - alias - "return CURLUSESSL_CONTROL;" - end - - curlusessl_all: INTEGER - -- Declared as CURLUSESSL_ALL - external - "C inline use " - alias - "return CURLUSESSL_ALL;" - end - -feature -- SSL and Security - - curlopt_sslcert: INTEGER - -- Declared as CURLOPT_SSLCERT - external - "C inline use " - alias - "return CURLOPT_SSLCERT;" - end - - curlopt_sslcerttype: INTEGER - -- Declared as CURLOPT_SSLCERTTYPE - external - "C inline use " - alias - "return CURLOPT_SSLCERTTYPE;" - end - - curlopt_sslkey: INTEGER - -- Declared as CURLOPT_SSLKEY - external - "C inline use " - alias - "return CURLOPT_SSLKEY;" - end - - curlopt_sslkeytype: INTEGER - -- Declared as CURLOPT_SSLKEYTYPE - external - "C inline use " - alias - "return CURLOPT_SSLKEYTYPE;" - end - - curlopt_keypasswd: INTEGER - -- Declared as CURLOPT_KEYPASSWD - external - "C inline use " - alias - "return CURLOPT_KEYPASSWD;" - end - - curlopt_sslengine: INTEGER - -- Declared as CURLOPT_SSLENGINE - external - "C inline use " - alias - "return CURLOPT_SSLENGINE;" - end - - curlopt_sslengine_default: INTEGER - -- Declared as CURLOPT_SSLENGINE_DEFAULT - external - "C inline use " - alias - "return CURLOPT_SSLENGINE_DEFAULT;" - end - - curlopt_sslversion: INTEGER - -- Declared as CURLOPT_SSLVERSION - external - "C inline use " - alias - "return CURLOPT_SSLVERSION;" - end - - curl_sslversion_default: INTEGER - -- Declared as CURL_SSLVERSION_DEFAULT - external - "C inline use " - alias - "return CURL_SSLVERSION_DEFAULT;" - end - - curl_sslversion_tlsv1: INTEGER - -- Declared as CURL_SSLVERSION_TLSv1 - external - "C inline use " - alias - "return CURL_SSLVERSION_TLSv1;" - end - - curl_sslversion_sslv2: INTEGER - -- Declared as CURL_SSLVERSION_SSLv2 - external - "C inline use " - alias - "return CURL_SSLVERSION_SSLv2;" - end - - curl_sslversion_sslv3: INTEGER - -- Declared as CURL_SSLVERSION_SSLv3 - external - "C inline use " - alias - "return CURL_SSLVERSION_SSLv3;" - end - - curlopt_ssl_verifypeer: INTEGER - -- Declared as CURLOPT_SSL_VERIFYPEER. - external - "C inline use " - alias - "return CURLOPT_SSL_VERIFYPEER;" - end - - curlopt_cainfo: INTEGER - -- Declared as CURLOPT_CAINFO - external - "C inline use " - alias - "return CURLOPT_CAINFO;" - end - - curlopt_capath: INTEGER - -- Declared as CURLOPT_CAPATH - external - "C inline use " - alias - "return CURLOPT_CAPATH;" - end - - curlopt_ssl_verifyhost: INTEGER - -- Declared as CURLOPT_SSL_VERIFYHOST - external - "C inline use " - alias - "return CURLOPT_SSL_VERIFYHOST;" - end - - curlopt_random_file: INTEGER - -- Declared as CURLOPT_RANDOM_FILE - external - "C inline use " - alias - "return CURLOPT_RANDOM_FILE;" - end - - curlopt_egdsocket: INTEGER - -- Declared as CURLOPT_EGDSOCKET - external - "C inline use " - alias - "return CURLOPT_EGDSOCKET;" - end - - curlopt_ssl_cipher_list: INTEGER - -- Declared as CURLOPT_SSL_CIPHER_LIST - external - "C inline use " - alias - "return CURLOPT_SSL_CIPHER_LIST;" - end - - curlopt_ssl_sessionid_cache: INTEGER - -- Declared as CURLOPT_SSL_SESSIONID_CACHE - external - "C inline use " - alias - "return CURLOPT_SSL_SESSIONID_CACHE;" - end - - curlopt_krblevel: INTEGER - -- Declared as CURLOPT_KRBLEVEL - external - "C inline use " - alias - "return CURLOPT_KRBLEVEL;" - end - -feature -- SSH - - curlopt_ssh_auth_types: INTEGER - -- Declared as CURLOPT_SSH_AUTH_TYPES - external - "C inline use " - alias - "return CURLOPT_SSH_AUTH_TYPES;" - end - - curlopt_ssh_public_keyfile: INTEGER - -- Declared as CURLOPT_SSH_PUBLIC_KEYFILE - external - "C inline use " - alias - "return CURLOPT_SSH_PUBLIC_KEYFILE;" - end - - curlopt_ssh_private_keyfile: INTEGER - -- Declared as CURLOPT_SSH_PRIVATE_KEYFILE - external - "C inline use " - alias - "return CURLOPT_SSH_PRIVATE_KEYFILE;" - end - -feature -- Status report - - is_valid (v: INTEGER): BOOLEAN - -- If `v' value valid? - do - Result := v = curlopt_verbose or - v = curlopt_header or - v = curlopt_noprogress or - v = curlopt_writefunction or - v = curlopt_writedata or - v = curlopt_readfunction or - v = curlopt_readdata or - v = curlopt_debugfunction or - v = curlopt_progressfunction or - v = curlopt_progressdata or - v = curlopt_writeheader or - v = curlopt_url or - v = curlopt_proxy or - v = curlopt_proxyport or - v = curlopt_proxytype or - v = curlopt_httpproxytunnel or - v = curlopt_interface or - v = curlopt_localport or - v = curlopt_localportrange or - v = curlopt_buffersize or - v = curlopt_port or - v = curlopt_tcp_nodelay or - v = curlopt_userpwd or - v = curlopt_proxyuserpwd or - v = curlopt_httpauth or - v = curlauth_none or - v = curlauth_basic or - v = curlauth_digest or - v = curlauth_any or - v = curlauth_anysafe or - v = curlopt_proxyauth or - v = curlopt_autoreferer or - v = curlopt_encoding or - v = curlopt_followlocation or - v = curlopt_unrestricted_auth or - v = curlopt_maxredirs or - v = curlopt_put or - v = curlopt_post or - v = curlopt_postfields or - v = curlopt_postfieldsize or - v = curlopt_postfieldsize_large or - v = curlopt_httppost or - v = curlopt_referer or - v = curlopt_useragent or - v = curlopt_httpheader or - v = curlopt_cookie or - v = curlopt_cookiefile or - v = curlopt_cookiejar or - v = curlopt_cookiesession or - v = curlopt_cookielist or - v = curlopt_httpget or - v = curlopt_http_version or - v = curlopt_ignore_content_length or - v = curlopt_http_content_decoding or - v = curlopt_transfertext or - v = curlopt_crlf or - v = curlopt_resume_from or - v = curlopt_resume_from_large or - v = curlopt_customrequest or - v = curlopt_filetime or - v = curlopt_nobody or - v = curlopt_infilesize or - v = curlopt_infilesize_large or - v = curlopt_upload or - v = curlopt_maxfilesize or - v = curlopt_maxfilesize_large or - v = curlopt_timecondition or - v = curlopt_timevalue or - v = curlopt_timeout or - v = curlopt_timeout_ms or - v = curlopt_low_speed_limit or - v = curlopt_low_speed_time or - v = curlopt_max_send_speed_large or - v = curlopt_max_recv_speed_large or - v = curlopt_maxconnects or - v = curlopt_fresh_connect or - v = curlopt_forbid_reuse or - v = curlopt_connecttimeout or - v = curlopt_ipresolve or - v = curl_ipresolve_whatever or - v = curl_ipresolve_v4 or - v = curl_ipresolve_v6 or - v = curlopt_connect_only or - v = curlopt_use_ssl or - v = curlusessl_none or - v = curlusessl_try or - v = curlusessl_control or - v = curlusessl_all or - v = curlopt_sslcert or - v = curlopt_sslcerttype or - v = curlopt_sslkey or - v = curlopt_sslkeytype or - v = curlopt_keypasswd or - v = curlopt_sslengine or - v = curlopt_sslengine_default or - v = curlopt_sslversion or - v = curl_sslversion_default or - v = curl_sslversion_tlsv1 or - v = curl_sslversion_sslv2 or - v = curl_sslversion_sslv3 or - v = curlopt_ssl_verifypeer or - v = curlopt_cainfo or - v = curlopt_capath or - v = curlopt_ssl_verifyhost or - v = curlopt_random_file or - v = curlopt_egdsocket or - v = curlopt_ssl_cipher_list or - v = curlopt_ssl_sessionid_cache or - v = curlopt_krblevel or - v = curlopt_ssh_auth_types or - v = curlopt_ssh_public_keyfile or - v = curlopt_ssh_private_keyfile - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2012, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/curl_string.e b/contrib/ise_library/cURL/curl_string.e deleted file mode 100644 index 5f38934c..00000000 --- a/contrib/ise_library/cURL/curl_string.e +++ /dev/null @@ -1,50 +0,0 @@ -note - description: "[ - String used by cURL wrapper library. - Only added features from IDENTIFIED. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_STRING - -inherit - STRING - select - is_equal, - copy, - out - end - - IDENTIFIED - rename - is_equal as identified_is_equal, - copy as identified_copy, - out as identified_out - end - -create - make, - make_empty, - make_filled, - make_from_string, - make_from_c, - make_from_cil - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end - diff --git a/contrib/ise_library/cURL/curl_utility.e b/contrib/ise_library/cURL/curl_utility.e deleted file mode 100644 index 941e822b..00000000 --- a/contrib/ise_library/cURL/curl_utility.e +++ /dev/null @@ -1,51 +0,0 @@ -note - description: "[ - Utilities for Eiffel cURL wrapper library. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - CURL_UTILITY - -feature -- Query - - api_loader: DYNAMIC_MODULE - -- API dynamic loader - local - l_platform: PLATFORM - once - create l_platform - if l_platform.is_unix or l_platform.is_mac then - create Result.make_with_version (module_name, "3") - else - check is_window: l_platform.is_windows end - create Result.make (module_name) - end - ensure - not_void: Result /= Void - end - - module_name: STRING - -- Module name. - once - Result := "libcurl" - ensure - not_void: Result /= Void - end - -note - library: "cURL: Library of reusable components for Eiffel." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/implementation/mac/api_loader_imp.e b/contrib/ise_library/cURL/implementation/mac/api_loader_imp.e deleted file mode 100644 index e2eaf163..00000000 --- a/contrib/ise_library/cURL/implementation/mac/api_loader_imp.e +++ /dev/null @@ -1,65 +0,0 @@ -note - description: "[ - Interactive with native system APIs for dynamic loading. - Cocoa verson. - ]" - status: "See notice at end of class." - legal: "See notice at end of class." - date: "$Date$" - revision: "$Revision$" - -class - API_LOADER_IMP - -feature -- Command - - load_module (a_name: STRING): POINTER - -- Load module with `a_name'. - require - exists: a_name /= Void - do - -- fixme: implement - end - - loal_api (a_module: POINTER; a_name: STRING): POINTER - -- Load api which name is `a_name' in `a_module' - require - exists: a_module /= default_pointer - exists: a_name /= Void - do - -- fixme: implement - end - -note - copyright: "Copyright (c) 1984-2007, Eiffel Software" - license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)" - licensing_options: "http://www.eiffel.com/licensing" - copying: "[ - This file is part of Eiffel Software's Eiffel Development Environment. - - Eiffel Software's Eiffel Development Environment is free - software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published - by the Free Software Foundation, version 2 of the License - (available at the URL listed under "license" above). - - Eiffel Software's Eiffel Development Environment is - distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with Eiffel Software's Eiffel Development - Environment; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - ]" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" - -end diff --git a/contrib/ise_library/cURL/license.lic b/contrib/ise_library/cURL/license.lic deleted file mode 100644 index c929225f..00000000 --- a/contrib/ise_library/cURL/license.lic +++ /dev/null @@ -1 +0,0 @@ -reference:forum2 diff --git a/contrib/ise_library/cURL/readme.txt b/contrib/ise_library/cURL/readme.txt deleted file mode 100644 index aaf6c644..00000000 --- a/contrib/ise_library/cURL/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -When your Eiffel executable running, Eiffel cURL library needs 3 DLLs, they are: - -libcurl.dll, libeay32.dll and ssleay32.dll - -Please make sure the 3 DLLs files can be found in your environment PATH or in same folder of your executable. \ No newline at end of file diff --git a/contrib/ise_library/cURL/spec/include/curl/curl.h b/contrib/ise_library/cURL/spec/include/curl/curl.h deleted file mode 100644 index e7f5ec59..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/curl.h +++ /dev/null @@ -1,1714 +0,0 @@ -#ifndef __CURL_CURL_H -#define __CURL_CURL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2007, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ - -/* If you have problems, all libcurl docs and details are found here: - http://curl.haxx.se/libcurl/ -*/ - -#include "curlver.h" /* the libcurl version defines */ - -#include -#include - -/* The include stuff here below is mainly for time_t! */ -#ifdef vms -# include -# include -#else -# include -# include -#endif /* defined (vms) */ - -typedef void CURL; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Decorate exportable functions for Win32 DLL linking. - * This avoids using a .def file for building libcurl.dll. - */ -#if (defined(WIN32) || defined(_WIN32)) && !defined(CURL_STATICLIB) -#if defined(BUILDING_LIBCURL) -#define CURL_EXTERN __declspec(dllexport) -#else -#define CURL_EXTERN __declspec(dllimport) -#endif -#else - -#ifdef CURL_HIDDEN_SYMBOLS -/* - * This definition is used to make external definitions visibile in the - * shared library when symbols are hidden by default. It makes no - * difference when compiling applications whether this is set or not, - * only when compiling the library. - */ -#define CURL_EXTERN CURL_EXTERN_SYMBOL -#else -#define CURL_EXTERN -#endif -#endif - -/* - * We want the typedef curl_off_t setup for large file support on all - * platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf - * format strings when outputting a variable of type curl_off_t. - * - * Note: "pocc -Ze" is MSVC compatibily mode and this sets _MSC_VER! - */ - -#if (defined(_MSC_VER) && !defined(__POCC__)) || (defined(__LCC__) && defined(WIN32)) -/* MSVC */ -#ifdef _WIN32_WCE - typedef long curl_off_t; -#define CURL_FORMAT_OFF_T "%ld" -#else - typedef signed __int64 curl_off_t; -#define CURL_FORMAT_OFF_T "%I64d" -#endif -#else /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */ -#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__) -/* gcc on windows or Watcom */ - typedef long long curl_off_t; -#define CURL_FORMAT_OFF_T "%I64d" -#else /* GCC or Watcom on Windows */ -#if defined(__ILEC400__) -/* OS400 C compiler. */ - typedef long long curl_off_t; -#define CURL_FORMAT_OFF_T "%lld" -#else /* OS400 C compiler. */ - -/* "normal" POSIX approach, do note that this does not necessarily mean that - the type is >32 bits, see the SIZEOF_CURL_OFF_T define for that! */ - typedef off_t curl_off_t; - -/* Check a range of defines to detect large file support. On Linux it seems - none of these are set by default, so if you don't explicitly switches on - large file support, this define will be made for "small file" support. */ -#ifndef _FILE_OFFSET_BITS -#define _FILE_OFFSET_BITS 0 /* to prevent warnings in the check below */ -#define UNDEF_FILE_OFFSET_BITS -#endif -#ifndef FILESIZEBITS -#define FILESIZEBITS 0 /* to prevent warnings in the check below */ -#define UNDEF_FILESIZEBITS -#endif - -#if defined(_LARGE_FILES) || (_FILE_OFFSET_BITS > 32) || (FILESIZEBITS > 32) \ - || defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE) - /* For now, we assume at least one of these to be set for large files to - work! */ -#define CURL_FORMAT_OFF_T "%lld" -#else /* LARGE_FILE support */ -#define CURL_FORMAT_OFF_T "%ld" -#endif -#endif /* OS400 C compiler. */ -#endif /* GCC or Watcom on Windows */ -#endif /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */ - -#ifdef UNDEF_FILE_OFFSET_BITS -/* this was defined above for our checks, undefine it again */ -#undef _FILE_OFFSET_BITS -#endif - -#ifdef UNDEF_FILESIZEBITS -/* this was defined above for our checks, undefine it again */ -#undef FILESIZEBITS -#endif - -#if defined(_WIN32) && !defined(WIN32) -/* Chris Lewis mentioned that he doesn't get WIN32 defined, only _WIN32 so we - make this adjustment to catch this. */ -#define WIN32 1 -#endif - -#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \ - !defined(__CYGWIN__) || defined(__MINGW32__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H)) -/* The check above prevents the winsock2 inclusion if winsock.h already was - included, since they can't co-exist without problems */ -#include -#endif -#else - -/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish - libc5-based Linux systems. Only include it on system that are known to - require it! */ -#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || defined(__minix) -#include -#endif - -#ifndef _WIN32_WCE -#include -#endif -#ifndef __WATCOMC__ -#include -#endif -#include -#endif - -#ifndef curl_socket_typedef -/* socket typedef */ -#ifdef WIN32 -typedef SOCKET curl_socket_t; -#define CURL_SOCKET_BAD INVALID_SOCKET -#else -typedef int curl_socket_t; -#define CURL_SOCKET_BAD -1 -#endif -#define curl_socket_typedef -#endif /* curl_socket_typedef */ - -struct curl_httppost { - struct curl_httppost *next; /* next entry in the list */ - char *name; /* pointer to allocated name */ - long namelength; /* length of name length */ - char *contents; /* pointer to allocated data contents */ - long contentslength; /* length of contents field */ - char *buffer; /* pointer to allocated buffer contents */ - long bufferlength; /* length of buffer field */ - char *contenttype; /* Content-Type */ - struct curl_slist* contentheader; /* list of extra headers for this form */ - struct curl_httppost *more; /* if one field name has more than one - file, this link should link to following - files */ - long flags; /* as defined below */ -#define HTTPPOST_FILENAME (1<<0) /* specified content is a file name */ -#define HTTPPOST_READFILE (1<<1) /* specified content is a file name */ -#define HTTPPOST_PTRNAME (1<<2) /* name is only stored pointer - do not free in formfree */ -#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer - do not free in formfree */ -#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */ -#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */ - - char *showfilename; /* The file name to show. If not set, the - actual file name will be used (if this - is a file part) */ -}; - -typedef int (*curl_progress_callback)(void *clientp, - double dltotal, - double dlnow, - double ultotal, - double ulnow); - -#ifndef CURL_MAX_WRITE_SIZE - /* Tests have proven that 20K is a very bad buffer size for uploads on - Windows, while 16K for some odd reason performed a lot better. - We do the ifndef check to allow this value to easier be changed at build - time for those who feel adventurous. */ -#define CURL_MAX_WRITE_SIZE 16384 -#endif - -typedef size_t (*curl_write_callback)(char *buffer, - size_t size, - size_t nitems, - void *outstream); - -/* This is a return code for the read callback that, when returned, will - signal libcurl to immediately abort the current transfer. */ -#define CURL_READFUNC_ABORT 0x10000000 -typedef size_t (*curl_read_callback)(char *buffer, - size_t size, - size_t nitems, - void *instream); - -typedef enum { - CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ - CURLSOCKTYPE_LAST /* never use */ -} curlsocktype; - -typedef int (*curl_sockopt_callback)(void *clientp, - curl_socket_t curlfd, - curlsocktype purpose); - -#ifndef CURL_NO_OLDIES - /* not used since 7.10.8, will be removed in a future release */ -typedef int (*curl_passwd_callback)(void *clientp, - const char *prompt, - char *buffer, - int buflen); -#endif - -typedef enum { - CURLIOE_OK, /* I/O operation successful */ - CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ - CURLIOE_FAILRESTART, /* failed to restart the read */ - CURLIOE_LAST /* never use */ -} curlioerr; - -typedef enum { - CURLIOCMD_NOP, /* no operation */ - CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ - CURLIOCMD_LAST /* never use */ -} curliocmd; - -typedef curlioerr (*curl_ioctl_callback)(CURL *handle, - int cmd, - void *clientp); - -/* - * The following typedef's are signatures of malloc, free, realloc, strdup and - * calloc respectively. Function pointers of these types can be passed to the - * curl_global_init_mem() function to set user defined memory management - * callback routines. - */ -typedef void *(*curl_malloc_callback)(size_t size); -typedef void (*curl_free_callback)(void *ptr); -typedef void *(*curl_realloc_callback)(void *ptr, size_t size); -typedef char *(*curl_strdup_callback)(const char *str); -typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); - -/* the kind of data that is passed to information_callback*/ -typedef enum { - CURLINFO_TEXT = 0, - CURLINFO_HEADER_IN, /* 1 */ - CURLINFO_HEADER_OUT, /* 2 */ - CURLINFO_DATA_IN, /* 3 */ - CURLINFO_DATA_OUT, /* 4 */ - CURLINFO_SSL_DATA_IN, /* 5 */ - CURLINFO_SSL_DATA_OUT, /* 6 */ - CURLINFO_END -} curl_infotype; - -typedef int (*curl_debug_callback) - (CURL *handle, /* the handle/transfer this concerns */ - curl_infotype type, /* what kind of data */ - char *data, /* points to the data */ - size_t size, /* size of the data pointed to */ - void *userptr); /* whatever the user please */ - -/* All possible error codes from all sorts of curl functions. Future versions - may return other values, stay prepared. - - Always add new return codes last. Never *EVER* remove any. The return - codes must remain the same! - */ - -typedef enum { - CURLE_OK = 0, - CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ - CURLE_FAILED_INIT, /* 2 */ - CURLE_URL_MALFORMAT, /* 3 */ - CURLE_OBSOLETE4, /* 4 - NOT USED */ - CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ - CURLE_COULDNT_RESOLVE_HOST, /* 6 */ - CURLE_COULDNT_CONNECT, /* 7 */ - CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */ - CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server - due to lack of access - when login fails - this is not returned. */ - CURLE_OBSOLETE10, /* 10 - NOT USED */ - CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ - CURLE_OBSOLETE12, /* 12 - NOT USED */ - CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ - CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ - CURLE_FTP_CANT_GET_HOST, /* 15 */ - CURLE_OBSOLETE16, /* 16 - NOT USED */ - CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ - CURLE_PARTIAL_FILE, /* 18 */ - CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ - CURLE_OBSOLETE20, /* 20 - NOT USED */ - CURLE_QUOTE_ERROR, /* 21 - quote command failure */ - CURLE_HTTP_RETURNED_ERROR, /* 22 */ - CURLE_WRITE_ERROR, /* 23 */ - CURLE_OBSOLETE24, /* 24 - NOT USED */ - CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ - CURLE_READ_ERROR, /* 26 - could open/read from file */ - CURLE_OUT_OF_MEMORY, /* 27 */ - /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error - instead of a memory allocation error if CURL_DOES_CONVERSIONS - is defined - */ - CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ - CURLE_OBSOLETE29, /* 29 - NOT USED */ - CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ - CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ - CURLE_OBSOLETE32, /* 32 - NOT USED */ - CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ - CURLE_HTTP_POST_ERROR, /* 34 */ - CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ - CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ - CURLE_FILE_COULDNT_READ_FILE, /* 37 */ - CURLE_LDAP_CANNOT_BIND, /* 38 */ - CURLE_LDAP_SEARCH_FAILED, /* 39 */ - CURLE_OBSOLETE40, /* 40 - NOT USED */ - CURLE_FUNCTION_NOT_FOUND, /* 41 */ - CURLE_ABORTED_BY_CALLBACK, /* 42 */ - CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ - CURLE_OBSOLETE44, /* 44 - NOT USED */ - CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ - CURLE_OBSOLETE46, /* 46 - NOT USED */ - CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ - CURLE_UNKNOWN_TELNET_OPTION, /* 48 - User specified an unknown option */ - CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ - CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_SSL_PEER_CERTIFICATE, /* 51 - peer's certificate wasn't ok */ - CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ - CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ - CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as - default */ - CURLE_SEND_ERROR, /* 55 - failed sending network data */ - CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ - CURLE_OBSOLETE57, /* 57 - NOT IN USE */ - CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ - CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ - CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized transfer encoding */ - CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ - CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ - CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ - CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind - that failed */ - CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ - CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not - accepted and we failed to login */ - CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ - CURLE_TFTP_PERM, /* 69 - permission problem on server */ - CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ - CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ - CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ - CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ - CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ - CURLE_CONV_FAILED, /* 75 - conversion failed */ - CURLE_CONV_REQD, /* 76 - caller must register conversion - callbacks using curl_easy_setopt options - CURLOPT_CONV_FROM_NETWORK_FUNCTION, - CURLOPT_CONV_TO_NETWORK_FUNCTION, and - CURLOPT_CONV_FROM_UTF8_FUNCTION */ - CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing - or wrong format */ - CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ - CURLE_SSH, /* 79 - error from the SSH layer, somewhat - generic so the error message will be of - interest when this has happened */ - - CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL - connection */ - CURL_LAST /* never use! */ -} CURLcode; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -/* The following were added in 7.17.0 */ -#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* noone should be using this! */ -#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 -#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 -#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 -#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 -#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 -#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 -#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 -#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 -#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 -#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 -#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 -#define CURLE_URL_MALFORMAT_USER CURLE_OBSOLETE4 - -#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED -#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE -#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR -#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL -#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS -#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR -#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED - -/* The following were added earlier */ - -#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT - -#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR -#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED -#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED - -#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE -#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME - -/* This was the error code 50 in 7.7.3 and a few earlier versions, this - is no longer used by libcurl but is instead #defined here only to not - make programs break */ -#define CURLE_ALREADY_COMPLETE 99999 - -#endif /*!CURL_NO_OLDIES*/ - -/* This prototype applies to all conversion callbacks */ -typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); - -typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ - void *ssl_ctx, /* actually an - OpenSSL SSL_CTX */ - void *userptr); - -typedef enum { - CURLPROXY_HTTP = 0, - CURLPROXY_SOCKS4 = 4, - CURLPROXY_SOCKS5 = 5 -} curl_proxytype; - -#define CURLAUTH_NONE 0 /* nothing */ -#define CURLAUTH_BASIC (1<<0) /* Basic (default) */ -#define CURLAUTH_DIGEST (1<<1) /* Digest */ -#define CURLAUTH_GSSNEGOTIATE (1<<2) /* GSS-Negotiate */ -#define CURLAUTH_NTLM (1<<3) /* NTLM */ -#define CURLAUTH_ANY ~0 /* all types set */ -#define CURLAUTH_ANYSAFE (~CURLAUTH_BASIC) - -#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ -#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ -#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ -#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ -#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ -#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ -#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY - -#define CURL_ERROR_SIZE 256 - -/* parameter for the CURLOPT_USE_SSL option */ -typedef enum { - CURLUSESSL_NONE, /* do not attempt to use SSL */ - CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ - CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ - CURLUSESSL_ALL, /* SSL for all communication or fail */ - CURLUSESSL_LAST /* not an option, never use */ -} curl_usessl; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -#define CURLFTPSSL_NONE CURLUSESSL_NONE -#define CURLFTPSSL_TRY CURLUSESSL_TRY -#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL -#define CURLFTPSSL_ALL CURLUSESSL_ALL -#define CURLFTPSSL_LAST CURLUSESSL_LAST -#define curl_ftpssl curl_usessl -#endif /*!CURL_NO_OLDIES*/ - -/* parameter for the CURLOPT_FTP_SSL_CCC option */ -typedef enum { - CURLFTPSSL_CCC_NONE, /* do not send CCC */ - CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ - CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ - CURLFTPSSL_CCC_LAST /* not an option, never use */ -} curl_ftpccc; - -/* parameter for the CURLOPT_FTPSSLAUTH option */ -typedef enum { - CURLFTPAUTH_DEFAULT, /* let libcurl decide */ - CURLFTPAUTH_SSL, /* use "AUTH SSL" */ - CURLFTPAUTH_TLS, /* use "AUTH TLS" */ - CURLFTPAUTH_LAST /* not an option, never use */ -} curl_ftpauth; - -/* parameter for the CURLOPT_FTP_FILEMETHOD option */ -typedef enum { - CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ - CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ - CURLFTPMETHOD_NOCWD, /* no CWD at all */ - CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ - CURLFTPMETHOD_LAST /* not an option, never use */ -} curl_ftpmethod; - -/* long may be 32 or 64 bits, but we should never depend on anything else - but 32 */ -#define CURLOPTTYPE_LONG 0 -#define CURLOPTTYPE_OBJECTPOINT 10000 -#define CURLOPTTYPE_FUNCTIONPOINT 20000 -#define CURLOPTTYPE_OFF_T 30000 - -/* name is uppercase CURLOPT_, - type is one of the defined CURLOPTTYPE_ - number is unique identifier */ -#ifdef CINIT -#undef CINIT -#endif -/* - * Figure out if we can use the ## operator, which is supported by ISO/ANSI C - * and C++. Some compilers support it without setting __STDC__ or __cplusplus - * so we need to carefully check for them too. We don't use configure-checks - * for these since we want these headers to remain generic and working for all - * platforms. - */ -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ - defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ - defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ - defined(__ILEC400__) - /* This compiler is believed to have an ISO compatible preprocessor */ -#define CURL_ISOCPP -#else - /* This compiler is believed NOT to have an ISO compatible preprocessor */ -#undef CURL_ISOCPP -#endif - -#ifdef CURL_ISOCPP -#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLOPT_/**/name = type + number -#endif - -/* - * This macro-mania below setups the CURLOPT_[what] enum, to be used with - * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] - * word. - */ - -typedef enum { - /* This is the FILE * or void * the regular output should be written to. */ - CINIT(FILE, OBJECTPOINT, 1), - - /* The full URL to get/put */ - CINIT(URL, OBJECTPOINT, 2), - - /* Port number to connect to, if other than default. */ - CINIT(PORT, LONG, 3), - - /* Name of proxy to use. */ - CINIT(PROXY, OBJECTPOINT, 4), - - /* "name:password" to use when fetching. */ - CINIT(USERPWD, OBJECTPOINT, 5), - - /* "name:password" to use with proxy. */ - CINIT(PROXYUSERPWD, OBJECTPOINT, 6), - - /* Range to get, specified as an ASCII string. */ - CINIT(RANGE, OBJECTPOINT, 7), - - /* not used */ - - /* Specified file stream to upload from (use as input): */ - CINIT(INFILE, OBJECTPOINT, 9), - - /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE - * bytes big. If this is not used, error messages go to stderr instead: */ - CINIT(ERRORBUFFER, OBJECTPOINT, 10), - - /* Function that will be called to store the output (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11), - - /* Function that will be called to read the input (instead of fread). The - * parameters will use fread() syntax, make sure to follow them. */ - CINIT(READFUNCTION, FUNCTIONPOINT, 12), - - /* Time-out the read operation after this amount of seconds */ - CINIT(TIMEOUT, LONG, 13), - - /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about - * how large the file being sent really is. That allows better error - * checking and better verifies that the upload was succcessful. -1 means - * unknown size. - * - * For large file support, there is also a _LARGE version of the key - * which takes an off_t type, allowing platforms with larger off_t - * sizes to handle larger files. See below for INFILESIZE_LARGE. - */ - CINIT(INFILESIZE, LONG, 14), - - /* POST input fields. */ - CINIT(POSTFIELDS, OBJECTPOINT, 15), - - /* Set the referer page (needed by some CGIs) */ - CINIT(REFERER, OBJECTPOINT, 16), - - /* Set the FTP PORT string (interface name, named or numerical IP address) - Use i.e '-' to use default address. */ - CINIT(FTPPORT, OBJECTPOINT, 17), - - /* Set the User-Agent string (examined by some CGIs) */ - CINIT(USERAGENT, OBJECTPOINT, 18), - - /* If the download receives less than "low speed limit" bytes/second - * during "low speed time" seconds, the operations is aborted. - * You could i.e if you have a pretty high speed connection, abort if - * it is less than 2000 bytes/sec during 20 seconds. - */ - - /* Set the "low speed limit" */ - CINIT(LOW_SPEED_LIMIT, LONG, 19), - - /* Set the "low speed time" */ - CINIT(LOW_SPEED_TIME, LONG, 20), - - /* Set the continuation offset. - * - * Note there is also a _LARGE version of this key which uses - * off_t types, allowing for large file offsets on platforms which - * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. - */ - CINIT(RESUME_FROM, LONG, 21), - - /* Set cookie in request: */ - CINIT(COOKIE, OBJECTPOINT, 22), - - /* This points to a linked list of headers, struct curl_slist kind */ - CINIT(HTTPHEADER, OBJECTPOINT, 23), - - /* This points to a linked list of post entries, struct HttpPost */ - CINIT(HTTPPOST, OBJECTPOINT, 24), - - /* name of the file keeping your private SSL-certificate */ - CINIT(SSLCERT, OBJECTPOINT, 25), - - /* password for the SSL or SSH private key */ - CINIT(KEYPASSWD, OBJECTPOINT, 26), - - /* send TYPE parameter? */ - CINIT(CRLF, LONG, 27), - - /* send linked-list of QUOTE commands */ - CINIT(QUOTE, OBJECTPOINT, 28), - - /* send FILE * or void * to store headers to, if you use a callback it - is simply passed to the callback unmodified */ - CINIT(WRITEHEADER, OBJECTPOINT, 29), - - /* point to a file to read the initial cookies from, also enables - "cookie awareness" */ - CINIT(COOKIEFILE, OBJECTPOINT, 31), - - /* What version to specifly try to use. - See CURL_SSLVERSION defines below. */ - CINIT(SSLVERSION, LONG, 32), - - /* What kind of HTTP time condition to use, see defines */ - CINIT(TIMECONDITION, LONG, 33), - - /* Time to use with the above condition. Specified in number of seconds - since 1 Jan 1970 */ - CINIT(TIMEVALUE, LONG, 34), - - /* 35 = OBSOLETE */ - - /* Custom request, for customizing the get command like - HTTP: DELETE, TRACE and others - FTP: to use a different list command - */ - CINIT(CUSTOMREQUEST, OBJECTPOINT, 36), - - /* HTTP request, for odd commands like DELETE, TRACE and others */ - CINIT(STDERR, OBJECTPOINT, 37), - - /* 38 is not used */ - - /* send linked-list of post-transfer QUOTE commands */ - CINIT(POSTQUOTE, OBJECTPOINT, 39), - - /* Pass a pointer to string of the output using full variable-replacement - as described elsewhere. */ - CINIT(WRITEINFO, OBJECTPOINT, 40), - - CINIT(VERBOSE, LONG, 41), /* talk a lot */ - CINIT(HEADER, LONG, 42), /* throw the header out too */ - CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */ - CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */ - CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 300 */ - CINIT(UPLOAD, LONG, 46), /* this is an upload */ - CINIT(POST, LONG, 47), /* HTTP POST method */ - CINIT(DIRLISTONLY, LONG, 48), /* return bare names when listing directories */ - - CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */ - - /* Specify whether to read the user+password from the .netrc or the URL. - * This must be one of the CURL_NETRC_* enums below. */ - CINIT(NETRC, LONG, 51), - - CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */ - - CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */ - CINIT(PUT, LONG, 54), /* HTTP PUT */ - - /* 55 = OBSOLETE */ - - /* Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_progress_callback - * prototype defines. */ - CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56), - - /* Data passed to the progress callback */ - CINIT(PROGRESSDATA, OBJECTPOINT, 57), - - /* We want the referer field set automatically when following locations */ - CINIT(AUTOREFERER, LONG, 58), - - /* Port of the proxy, can be set in the proxy string as well with: - "[host]:[port]" */ - CINIT(PROXYPORT, LONG, 59), - - /* size of the POST input data, if strlen() is not good to use */ - CINIT(POSTFIELDSIZE, LONG, 60), - - /* tunnel non-http operations through a HTTP proxy */ - CINIT(HTTPPROXYTUNNEL, LONG, 61), - - /* Set the interface string to use as outgoing network interface */ - CINIT(INTERFACE, OBJECTPOINT, 62), - - /* Set the krb4/5 security level, this also enables krb4/5 awareness. This - * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string - * is set but doesn't match one of these, 'private' will be used. */ - CINIT(KRBLEVEL, OBJECTPOINT, 63), - - /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ - CINIT(SSL_VERIFYPEER, LONG, 64), - - /* The CApath or CAfile used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAINFO, OBJECTPOINT, 65), - - /* 66 = OBSOLETE */ - /* 67 = OBSOLETE */ - - /* Maximum number of http redirects to follow */ - CINIT(MAXREDIRS, LONG, 68), - - /* Pass a long set to 1 to get the date of the requested document (if - possible)! Pass a zero to shut it off. */ - CINIT(FILETIME, LONG, 69), - - /* This points to a linked list of telnet options */ - CINIT(TELNETOPTIONS, OBJECTPOINT, 70), - - /* Max amount of cached alive connections */ - CINIT(MAXCONNECTS, LONG, 71), - - /* What policy to use when closing connections when the cache is filled - up */ - CINIT(CLOSEPOLICY, LONG, 72), - - /* 73 = OBSOLETE */ - - /* Set to explicitly use a new connection for the upcoming transfer. - Do not use this unless you're absolutely sure of this, as it makes the - operation slower and is less friendly for the network. */ - CINIT(FRESH_CONNECT, LONG, 74), - - /* Set to explicitly forbid the upcoming transfer's connection to be re-used - when done. Do not use this unless you're absolutely sure of this, as it - makes the operation slower and is less friendly for the network. */ - CINIT(FORBID_REUSE, LONG, 75), - - /* Set to a file name that contains random data for libcurl to use to - seed the random engine when doing SSL connects. */ - CINIT(RANDOM_FILE, OBJECTPOINT, 76), - - /* Set to the Entropy Gathering Daemon socket pathname */ - CINIT(EGDSOCKET, OBJECTPOINT, 77), - - /* Time-out connect operations after this amount of seconds, if connects - are OK within this time, then fine... This only aborts the connect - phase. [Only works on unix-style/SIGALRM operating systems] */ - CINIT(CONNECTTIMEOUT, LONG, 78), - - /* Function that will be called to store headers (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79), - - /* Set this to force the HTTP request to get back to GET. Only really usable - if POST, PUT or a custom request have been used first. - */ - CINIT(HTTPGET, LONG, 80), - - /* Set if we should verify the Common name from the peer certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches the - * provided hostname. */ - CINIT(SSL_VERIFYHOST, LONG, 81), - - /* Specify which file name to write all known cookies in after completed - operation. Set file name to "-" (dash) to make it go to stdout. */ - CINIT(COOKIEJAR, OBJECTPOINT, 82), - - /* Specify which SSL ciphers to use */ - CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83), - - /* Specify which HTTP version to use! This must be set to one of the - CURL_HTTP_VERSION* enums set below. */ - CINIT(HTTP_VERSION, LONG, 84), - - /* Specificly switch on or off the FTP engine's use of the EPSV command. By - default, that one will always be attempted before the more traditional - PASV command. */ - CINIT(FTP_USE_EPSV, LONG, 85), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ - CINIT(SSLCERTTYPE, OBJECTPOINT, 86), - - /* name of the file keeping your private SSL-key */ - CINIT(SSLKEY, OBJECTPOINT, 87), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ - CINIT(SSLKEYTYPE, OBJECTPOINT, 88), - - /* crypto engine for the SSL-sub system */ - CINIT(SSLENGINE, OBJECTPOINT, 89), - - /* set the crypto engine for the SSL-sub system as default - the param has no meaning... - */ - CINIT(SSLENGINE_DEFAULT, LONG, 90), - - /* Non-zero value means to use the global dns cache */ - CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To become OBSOLETE soon */ - - /* DNS cache timeout */ - CINIT(DNS_CACHE_TIMEOUT, LONG, 92), - - /* send linked-list of pre-transfer QUOTE commands (Wesley Laxton)*/ - CINIT(PREQUOTE, OBJECTPOINT, 93), - - /* set the debug function */ - CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94), - - /* set the data for the debug function */ - CINIT(DEBUGDATA, OBJECTPOINT, 95), - - /* mark this as start of a cookie session */ - CINIT(COOKIESESSION, LONG, 96), - - /* The CApath directory used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAPATH, OBJECTPOINT, 97), - - /* Instruct libcurl to use a smaller receive buffer */ - CINIT(BUFFERSIZE, LONG, 98), - - /* Instruct libcurl to not use any signal/alarm handlers, even when using - timeouts. This option is useful for multi-threaded applications. - See libcurl-the-guide for more background information. */ - CINIT(NOSIGNAL, LONG, 99), - - /* Provide a CURLShare for mutexing non-ts data */ - CINIT(SHARE, OBJECTPOINT, 100), - - /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), - CURLPROXY_SOCKS4 and CURLPROXY_SOCKS5. */ - CINIT(PROXYTYPE, LONG, 101), - - /* Set the Accept-Encoding string. Use this to tell a server you would like - the response to be compressed. */ - CINIT(ENCODING, OBJECTPOINT, 102), - - /* Set pointer to private data */ - CINIT(PRIVATE, OBJECTPOINT, 103), - - /* Set aliases for HTTP 200 in the HTTP Response header */ - CINIT(HTTP200ALIASES, OBJECTPOINT, 104), - - /* Continue to send authentication (user+password) when following locations, - even when hostname changed. This can potentionally send off the name - and password to whatever host the server decides. */ - CINIT(UNRESTRICTED_AUTH, LONG, 105), - - /* Specificly switch on or off the FTP engine's use of the EPRT command ( it - also disables the LPRT attempt). By default, those ones will always be - attempted before the good old traditional PORT command. */ - CINIT(FTP_USE_EPRT, LONG, 106), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_USERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(HTTPAUTH, LONG, 107), - - /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx - in second argument. The function must be matching the - curl_ssl_ctx_callback proto. */ - CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108), - - /* Set the userdata for the ssl context callback function's third - argument */ - CINIT(SSL_CTX_DATA, OBJECTPOINT, 109), - - /* FTP Option that causes missing dirs to be created on the remote server */ - CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(PROXYAUTH, LONG, 111), - - /* FTP option that changes the timeout, in seconds, associated with - getting a response. This is different from transfer timeout time and - essentially places a demand on the FTP server to acknowledge commands - in a timely manner. */ - CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112), - - /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to - tell libcurl to resolve names to those IP versions only. This only has - affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ - CINIT(IPRESOLVE, LONG, 113), - - /* Set this option to limit the size of a file that will be downloaded from - an HTTP or FTP server. - - Note there is also _LARGE version which adds large file support for - platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ - CINIT(MAXFILESIZE, LONG, 114), - - /* See the comment for INFILESIZE above, but in short, specifies - * the size of the file being uploaded. -1 means unknown. - */ - CINIT(INFILESIZE_LARGE, OFF_T, 115), - - /* Sets the continuation offset. There is also a LONG version of this; - * look above for RESUME_FROM. - */ - CINIT(RESUME_FROM_LARGE, OFF_T, 116), - - /* Sets the maximum size of data that will be downloaded from - * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. - */ - CINIT(MAXFILESIZE_LARGE, OFF_T, 117), - - /* Set this option to the file name of your .netrc file you want libcurl - to parse (using the CURLOPT_NETRC option). If not set, libcurl will do - a poor attempt to find the user's home directory and check for a .netrc - file in there. */ - CINIT(NETRC_FILE, OBJECTPOINT, 118), - - /* Enable SSL/TLS for FTP, pick one of: - CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise - CURLFTPSSL_CONTROL - SSL for the control connection or fail - CURLFTPSSL_ALL - SSL for all communication or fail - */ - CINIT(USE_SSL, LONG, 119), - - /* The _LARGE version of the standard POSTFIELDSIZE option */ - CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120), - - /* Enable/disable the TCP Nagle algorithm */ - CINIT(TCP_NODELAY, LONG, 121), - - /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 123 OBSOLETE. Gone in 7.16.0 */ - /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 127 OBSOLETE. Gone in 7.16.0 */ - /* 128 OBSOLETE. Gone in 7.16.0 */ - - /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option - can be used to change libcurl's default action which is to first try - "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK - response has been received. - - Available parameters are: - CURLFTPAUTH_DEFAULT - let libcurl decide - CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS - CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL - */ - CINIT(FTPSSLAUTH, LONG, 129), - - CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130), - CINIT(IOCTLDATA, OBJECTPOINT, 131), - - /* 132 OBSOLETE. Gone in 7.16.0 */ - /* 133 OBSOLETE. Gone in 7.16.0 */ - - /* zero terminated string for pass on to the FTP server when asked for - "account" info */ - CINIT(FTP_ACCOUNT, OBJECTPOINT, 134), - - /* feed cookies into cookie engine */ - CINIT(COOKIELIST, OBJECTPOINT, 135), - - /* ignore Content-Length */ - CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), - - /* Set to non-zero to skip the IP address received in a 227 PASV FTP server - response. Typically used for FTP-SSL purposes but is not restricted to - that. libcurl will then instead use the same IP address it used for the - control connection. */ - CINIT(FTP_SKIP_PASV_IP, LONG, 137), - - /* Select "file method" to use when doing FTP, see the curl_ftpmethod - above. */ - CINIT(FTP_FILEMETHOD, LONG, 138), - - /* Local port number to bind the socket to */ - CINIT(LOCALPORT, LONG, 139), - - /* Number of ports to try, including the first one set with LOCALPORT. - Thus, setting it to 1 will make no additional attempts but the first. - */ - CINIT(LOCALPORTRANGE, LONG, 140), - - /* no transfer, set up connection and let application use the socket by - extracting it with CURLINFO_LASTSOCKET */ - CINIT(CONNECT_ONLY, LONG, 141), - - /* Function that will be called to convert from the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142), - - /* Function that will be called to convert to the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143), - - /* Function that will be called to convert from UTF8 - (instead of using the iconv calls in libcurl) - Note that this is used only for SSL certificate processing */ - CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144), - - /* if the connection proceeds too quickly then need to slow it down */ - /* limit-rate: maximum number of bytes per second to send or receive */ - CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145), - CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), - - /* Pointer to command string to send if USER/PASS fails. */ - CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147), - - /* callback function for setting socket options */ - CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), - CINIT(SOCKOPTDATA, OBJECTPOINT, 149), - - /* set to 0 to disable session ID re-use for this transfer, default is - enabled (== 1) */ - CINIT(SSL_SESSIONID_CACHE, LONG, 150), - - /* allowed SSH authentication methods */ - CINIT(SSH_AUTH_TYPES, LONG, 151), - - /* Used by scp/sftp to do public/private key authentication */ - CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152), - CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153), - - /* Send CCC (Clear Command Channel) after authentication */ - CINIT(FTP_SSL_CCC, LONG, 154), - - /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ - CINIT(TIMEOUT_MS, LONG, 155), - CINIT(CONNECTTIMEOUT_MS, LONG, 156), - - /* set to zero to disable the libcurl's decoding and thus pass the raw body - data to the appliction even when it is encoded/compressed */ - CINIT(HTTP_TRANSFER_DECODING, LONG, 157), - CINIT(HTTP_CONTENT_DECODING, LONG, 158), - - /* Permission used when creating new files and directories on the remote - server for protocols that support it, SFTP/SCP/FILE */ - CINIT(NEW_FILE_PERMS, LONG, 159), - CINIT(NEW_DIRECTORY_PERMS, LONG, 160), - - CURLOPT_LASTENTRY /* the last unused */ -} CURLoption; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -/* The following were added in 7.17.0 */ -#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_FTPAPPEND CURLOPT_APPEND -#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY -#define CURLOPT_FTP_SSL CURLOPT_USE_SSL - -/* The following were added earlier */ - -#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL - -#else -/* This is set if CURL_NO_OLDIES is defined at compile-time */ -#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ -#endif - - - /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host - name resolves addresses using more than one IP protocol version, this - option might be handy to force libcurl to use a specific IP version. */ -#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP - versions that your system allows */ -#define CURL_IPRESOLVE_V4 1 /* resolve to ipv4 addresses */ -#define CURL_IPRESOLVE_V6 2 /* resolve to ipv6 addresses */ - - /* three convenient "aliases" that follow the name scheme better */ -#define CURLOPT_WRITEDATA CURLOPT_FILE -#define CURLOPT_READDATA CURLOPT_INFILE -#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER - - /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ -enum { - CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd - like the library to choose the best possible - for us! */ - CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ - CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ - - CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ -}; - - /* These enums are for use with the CURLOPT_NETRC option. */ -enum CURL_NETRC_OPTION { - CURL_NETRC_IGNORED, /* The .netrc will never be read. - * This is the default. */ - CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred - * to one in the .netrc. */ - CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. - * Unless one is set programmatically, the .netrc - * will be queried. */ - CURL_NETRC_LAST -}; - -enum { - CURL_SSLVERSION_DEFAULT, - CURL_SSLVERSION_TLSv1, - CURL_SSLVERSION_SSLv2, - CURL_SSLVERSION_SSLv3, - - CURL_SSLVERSION_LAST /* never use, keep last */ -}; - - -typedef enum { - CURL_TIMECOND_NONE, - - CURL_TIMECOND_IFMODSINCE, - CURL_TIMECOND_IFUNMODSINCE, - CURL_TIMECOND_LASTMOD, - - CURL_TIMECOND_LAST -} curl_TimeCond; - -#ifdef __BEOS__ -#include -#endif - - -/* curl_strequal() and curl_strnequal() are subject for removal in a future - libcurl, see lib/README.curlx for details */ -CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2); -CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n); - -/* name is uppercase CURLFORM_ */ -#ifdef CFINIT -#undef CFINIT -#endif - -#ifdef CURL_ISOCPP -#define CFINIT(name) CURLFORM_ ## name -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define CFINIT(name) CURLFORM_/**/name -#endif - -typedef enum { - CFINIT(NOTHING), /********* the first one is unused ************/ - - /* */ - CFINIT(COPYNAME), - CFINIT(PTRNAME), - CFINIT(NAMELENGTH), - CFINIT(COPYCONTENTS), - CFINIT(PTRCONTENTS), - CFINIT(CONTENTSLENGTH), - CFINIT(FILECONTENT), - CFINIT(ARRAY), - CFINIT(OBSOLETE), - CFINIT(FILE), - - CFINIT(BUFFER), - CFINIT(BUFFERPTR), - CFINIT(BUFFERLENGTH), - - CFINIT(CONTENTTYPE), - CFINIT(CONTENTHEADER), - CFINIT(FILENAME), - CFINIT(END), - CFINIT(OBSOLETE2), - - CURLFORM_LASTENTRY /* the last unusued */ -} CURLformoption; - -#undef CFINIT /* done */ - -/* structure to be used as parameter for CURLFORM_ARRAY */ -struct curl_forms { - CURLformoption option; - const char *value; -}; - -/* use this for multipart formpost building */ -/* Returns code for curl_formadd() - * - * Returns: - * CURL_FORMADD_OK on success - * CURL_FORMADD_MEMORY if the FormInfo allocation fails - * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form - * CURL_FORMADD_NULL if a null pointer was given for a char - * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed - * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used - * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) - * CURL_FORMADD_MEMORY if a HttpPost struct cannot be allocated - * CURL_FORMADD_MEMORY if some allocation for string copying failed. - * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array - * - ***************************************************************************/ -typedef enum { - CURL_FORMADD_OK, /* first, no error */ - - CURL_FORMADD_MEMORY, - CURL_FORMADD_OPTION_TWICE, - CURL_FORMADD_NULL, - CURL_FORMADD_UNKNOWN_OPTION, - CURL_FORMADD_INCOMPLETE, - CURL_FORMADD_ILLEGAL_ARRAY, - CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ - - CURL_FORMADD_LAST /* last */ -} CURLFORMcode; - -/* - * NAME curl_formadd() - * - * DESCRIPTION - * - * Pretty advanved function for building multi-part formposts. Each invoke - * adds one part that together construct a full post. Then use - * CURLOPT_HTTPPOST to send it off to libcurl. - */ -CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, - struct curl_httppost **last_post, - ...); - -/* - * callback function for curl_formget() - * The void *arg pointer will be the one passed as second argument to curl_formget(). - * The character buffer passed to it must not be freed. - * Should return the buffer length passed to it as the argument "len" on success. - */ -typedef size_t (*curl_formget_callback)(void *arg, const char *buf, size_t len); - -/* - * NAME curl_formget() - * - * DESCRIPTION - * - * Serialize a curl_httppost struct built with curl_formadd(). - * Accepts a void pointer as second argument which will be passed to - * the curl_formget_callback function. - * Returns 0 on success. - */ -CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, - curl_formget_callback append); -/* - * NAME curl_formfree() - * - * DESCRIPTION - * - * Free a multipart formpost previously built with curl_formadd(). - */ -CURL_EXTERN void curl_formfree(struct curl_httppost *form); - -/* - * NAME curl_getenv() - * - * DESCRIPTION - * - * Returns a malloc()'ed string that MUST be curl_free()ed after usage is - * complete. DEPRECATED - see lib/README.curlx - */ -CURL_EXTERN char *curl_getenv(const char *variable); - -/* - * NAME curl_version() - * - * DESCRIPTION - * - * Returns a static ascii string of the libcurl version. - */ -CURL_EXTERN char *curl_version(void); - -/* - * NAME curl_easy_escape() - * - * DESCRIPTION - * - * Escapes URL strings (converts all letters consider illegal in URLs to their - * %XX versions). This function returns a new allocated string or NULL if an - * error occurred. - */ -CURL_EXTERN char *curl_easy_escape(CURL *handle, - const char *string, - int length); - -/* the previous version: */ -CURL_EXTERN char *curl_escape(const char *string, - int length); - - -/* - * NAME curl_easy_unescape() - * - * DESCRIPTION - * - * Unescapes URL encoding in strings (converts all %XX codes to their 8bit - * versions). This function returns a new allocated string or NULL if an error - * occurred. - * Conversion Note: On non-ASCII platforms the ASCII %XX codes are - * converted into the host encoding. - */ -CURL_EXTERN char *curl_easy_unescape(CURL *handle, - const char *string, - int length, - int *outlength); - -/* the previous version */ -CURL_EXTERN char *curl_unescape(const char *string, - int length); - -/* - * NAME curl_free() - * - * DESCRIPTION - * - * Provided for de-allocation in the same translation unit that did the - * allocation. Added in libcurl 7.10 - */ -CURL_EXTERN void curl_free(void *p); - -/* - * NAME curl_global_init() - * - * DESCRIPTION - * - * curl_global_init() should be invoked exactly once for each application that - * uses libcurl - */ -CURL_EXTERN CURLcode curl_global_init(long flags); - -/* - * NAME curl_global_init_mem() - * - * DESCRIPTION - * - * curl_global_init() or curl_global_init_mem() should be invoked exactly once - * for each application that uses libcurl. This function can be used to - * initialize libcurl and set user defined memory management callback - * functions. Users can implement memory management routines to check for - * memory leaks, check for mis-use of the curl library etc. User registered - * callback routines with be invoked by this library instead of the system - * memory management routines like malloc, free etc. - */ -CURL_EXTERN CURLcode curl_global_init_mem(long flags, - curl_malloc_callback m, - curl_free_callback f, - curl_realloc_callback r, - curl_strdup_callback s, - curl_calloc_callback c); - -/* - * NAME curl_global_cleanup() - * - * DESCRIPTION - * - * curl_global_cleanup() should be invoked exactly once for each application - * that uses libcurl - */ -CURL_EXTERN void curl_global_cleanup(void); - -/* linked-list structure for the CURLOPT_QUOTE option (and other) */ -struct curl_slist { - char *data; - struct curl_slist *next; -}; - -/* - * NAME curl_slist_append() - * - * DESCRIPTION - * - * Appends a string to a linked list. If no list exists, it will be created - * first. Returns the new list, after appending. - */ -CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, - const char *); - -/* - * NAME curl_slist_free_all() - * - * DESCRIPTION - * - * free a previously built curl_slist. - */ -CURL_EXTERN void curl_slist_free_all(struct curl_slist *); - -/* - * NAME curl_getdate() - * - * DESCRIPTION - * - * Returns the time, in seconds since 1 Jan 1970 of the time string given in - * the first argument. The time argument in the second parameter is unused - * and should be set to NULL. - */ -CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); - -#define CURLINFO_STRING 0x100000 -#define CURLINFO_LONG 0x200000 -#define CURLINFO_DOUBLE 0x300000 -#define CURLINFO_SLIST 0x400000 -#define CURLINFO_MASK 0x0fffff -#define CURLINFO_TYPEMASK 0xf00000 - -typedef enum { - CURLINFO_NONE, /* first, never use this */ - CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, - CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, - CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, - CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, - CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, - CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, - CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, - CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, - CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, - CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, - CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, - CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, - CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, - CURLINFO_FILETIME = CURLINFO_LONG + 14, - CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, - CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, - CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, - CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, - CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, - CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, - CURLINFO_PRIVATE = CURLINFO_STRING + 21, - CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, - CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, - CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, - CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, - CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, - CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, - CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, - CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, - CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, - /* Fill in new entries below here! */ - - CURLINFO_LASTONE = 30 -} CURLINFO; - -/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as - CURLINFO_HTTP_CODE */ -#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE - -typedef enum { - CURLCLOSEPOLICY_NONE, /* first, never use this */ - - CURLCLOSEPOLICY_OLDEST, - CURLCLOSEPOLICY_LEAST_RECENTLY_USED, - CURLCLOSEPOLICY_LEAST_TRAFFIC, - CURLCLOSEPOLICY_SLOWEST, - CURLCLOSEPOLICY_CALLBACK, - - CURLCLOSEPOLICY_LAST /* last, never use this */ -} curl_closepolicy; - -#define CURL_GLOBAL_SSL (1<<0) -#define CURL_GLOBAL_WIN32 (1<<1) -#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) -#define CURL_GLOBAL_NOTHING 0 -#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL - - -/***************************************************************************** - * Setup defines, protos etc for the sharing stuff. - */ - -/* Different data locks for a single share */ -typedef enum { - CURL_LOCK_DATA_NONE = 0, - /* CURL_LOCK_DATA_SHARE is used internaly to say that - * the locking is just made to change the internal state of the share - * itself. - */ - CURL_LOCK_DATA_SHARE, - CURL_LOCK_DATA_COOKIE, - CURL_LOCK_DATA_DNS, - CURL_LOCK_DATA_SSL_SESSION, - CURL_LOCK_DATA_CONNECT, - CURL_LOCK_DATA_LAST -} curl_lock_data; - -/* Different lock access types */ -typedef enum { - CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ - CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ - CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ - CURL_LOCK_ACCESS_LAST /* never use */ -} curl_lock_access; - -typedef void (*curl_lock_function)(CURL *handle, - curl_lock_data data, - curl_lock_access locktype, - void *userptr); -typedef void (*curl_unlock_function)(CURL *handle, - curl_lock_data data, - void *userptr); - -typedef void CURLSH; - -typedef enum { - CURLSHE_OK, /* all is fine */ - CURLSHE_BAD_OPTION, /* 1 */ - CURLSHE_IN_USE, /* 2 */ - CURLSHE_INVALID, /* 3 */ - CURLSHE_NOMEM, /* out of memory */ - CURLSHE_LAST /* never use */ -} CURLSHcode; - -typedef enum { - CURLSHOPT_NONE, /* don't use */ - CURLSHOPT_SHARE, /* specify a data type to share */ - CURLSHOPT_UNSHARE, /* specify shich data type to stop sharing */ - CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ - CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ - CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock - callback functions */ - CURLSHOPT_LAST /* never use */ -} CURLSHoption; - -CURL_EXTERN CURLSH *curl_share_init(void); -CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); -CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); - -/**************************************************************************** - * Structures for querying information about the curl library at runtime. - */ - -typedef enum { - CURLVERSION_FIRST, - CURLVERSION_SECOND, - CURLVERSION_THIRD, - CURLVERSION_FOURTH, - CURLVERSION_LAST /* never actually use this */ -} CURLversion; - -/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by - basicly all programs ever, that want to get version information. It is - meant to be a built-in version number for what kind of struct the caller - expects. If the struct ever changes, we redefine the NOW to another enum - from above. */ -#define CURLVERSION_NOW CURLVERSION_FOURTH - -typedef struct { - CURLversion age; /* age of the returned struct */ - const char *version; /* LIBCURL_VERSION */ - unsigned int version_num; /* LIBCURL_VERSION_NUM */ - const char *host; /* OS/host/cpu/machine when configured */ - int features; /* bitmask, see defines below */ - const char *ssl_version; /* human readable string */ - long ssl_version_num; /* not used anymore, always 0 */ - const char *libz_version; /* human readable string */ - /* protocols is terminated by an entry with a NULL protoname */ - const char * const *protocols; - - /* The fields below this were added in CURLVERSION_SECOND */ - const char *ares; - int ares_num; - - /* This field was added in CURLVERSION_THIRD */ - const char *libidn; - - /* These field were added in CURLVERSION_FOURTH */ - - /* Same as '_libiconv_version' if built with HAVE_ICONV */ - int iconv_ver_num; - - const char *libssh_version; /* human readable string */ - -} curl_version_info_data; - -#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ -#define CURL_VERSION_KERBEROS4 (1<<1) /* kerberos auth is supported */ -#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ -#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ -#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ -#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support */ -#define CURL_VERSION_DEBUG (1<<6) /* built with debug capabilities */ -#define CURL_VERSION_ASYNCHDNS (1<<7) /* asynchronous dns resolves */ -#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth */ -#define CURL_VERSION_LARGEFILE (1<<9) /* supports files bigger than 2GB */ -#define CURL_VERSION_IDN (1<<10) /* International Domain Names support */ -#define CURL_VERSION_SSPI (1<<11) /* SSPI is supported */ -#define CURL_VERSION_CONV (1<<12) /* character conversions are - supported */ - -/* - * NAME curl_version_info() - * - * DESCRIPTION - * - * This function returns a pointer to a static copy of the version info - * struct. See above. - */ -CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); - -/* - * NAME curl_easy_strerror() - * - * DESCRIPTION - * - * The curl_easy_strerror function may be used to turn a CURLcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_easy_strerror(CURLcode); - -/* - * NAME curl_share_strerror() - * - * DESCRIPTION - * - * The curl_share_strerror function may be used to turn a CURLSHcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_share_strerror(CURLSHcode); - -#ifdef __cplusplus -} -#endif - -/* unfortunately, the easy.h and multi.h include files need options and info - stuff before they can be included! */ -#include "easy.h" /* nothing in curl is fun without the easy stuff */ -#include "multi.h" - -#endif /* __CURL_CURL_H */ diff --git a/contrib/ise_library/cURL/spec/include/curl/curlver.h b/contrib/ise_library/cURL/spec/include/curl/curlver.h deleted file mode 100644 index 1936c317..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/curlver.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef __CURL_CURLVER_H -#define __CURL_CURLVER_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2007, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ - -/* This header file contains nothing but libcurl version info, generated by - a script at release-time. This was made its own header file in 7.11.2 */ - -/* This is the version number of the libcurl package from which this header - file origins: */ -#define LIBCURL_VERSION "7.17.0" - -/* The numeric version number is also available "in parts" by using these - defines: */ -#define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 17 -#define LIBCURL_VERSION_PATCH 0 - -/* This is the numeric version of the libcurl version number, meant for easier - parsing and comparions by programs. The LIBCURL_VERSION_NUM define will - always follow this syntax: - - 0xXXYYZZ - - Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal (using 8 bits each). All three numbers are always represented - using two digits. 1.2 would appear as "0x010200" while version 9.11.7 - appears as "0x090b07". - - This 6-digit (24 bits) hexadecimal number does not show pre-release number, - and it is always a greater number in a more recent release. It makes - comparisons with greater than and less than work. -*/ -#define LIBCURL_VERSION_NUM 0x071100 - -/* - * This is the date and time when the full source package was created. The - * timestamp is not stored in CVS, as the timestamp is properly set in the - * tarballs by the maketgz script. - * - * The format of the date should follow this template: - * - * "Mon Feb 12 11:35:33 UTC 2007" - */ -#define LIBCURL_TIMESTAMP "Thu Sep 13 20:22:24 UTC 2007" - -#endif /* __CURL_CURLVER_H */ diff --git a/contrib/ise_library/cURL/spec/include/curl/easy.h b/contrib/ise_library/cURL/spec/include/curl/easy.h deleted file mode 100644 index 17de2107..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/easy.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __CURL_EASY_H -#define __CURL_EASY_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2004, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN CURL *curl_easy_init(void); -CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); -CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); -CURL_EXTERN void curl_easy_cleanup(CURL *curl); - -/* - * NAME curl_easy_getinfo() - * - * DESCRIPTION - * - * Request internal information from the curl session with this function. The - * third argument MUST be a pointer to a long, a pointer to a char * or a - * pointer to a double (as the documentation describes elsewhere). The data - * pointed to will be filled in accordingly and can be relied upon only if the - * function returns CURLE_OK. This function is intended to get used *AFTER* a - * performed transfer, all results from this function are undefined until the - * transfer is completed. - */ -CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); - - -/* - * NAME curl_easy_duphandle() - * - * DESCRIPTION - * - * Creates a new curl session handle with the same options set for the handle - * passed in. Duplicating a handle could only be a matter of cloning data and - * options, internal state info and things like persistant connections cannot - * be transfered. It is useful in multithreaded applications when you can run - * curl_easy_duphandle() for each new thread to avoid a series of identical - * curl_easy_setopt() invokes in every thread. - */ -CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); - -/* - * NAME curl_easy_reset() - * - * DESCRIPTION - * - * Re-initializes a CURL handle to the default values. This puts back the - * handle to the same state as it was in when it was just created. - * - * It does keep: live connections, the Session ID cache, the DNS cache and the - * cookies. - */ -CURL_EXTERN void curl_easy_reset(CURL *curl); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/contrib/ise_library/cURL/spec/include/curl/mprintf.h b/contrib/ise_library/cURL/spec/include/curl/mprintf.h deleted file mode 100644 index 5c526882..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/mprintf.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef __CURL_MPRINTF_H -#define __CURL_MPRINTF_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2006, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ - -#include -#include /* needed for FILE */ - -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN int curl_mprintf(const char *format, ...); -CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); -CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); -CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, const char *format, ...); -CURL_EXTERN int curl_mvprintf(const char *format, va_list args); -CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); -CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); -CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, const char *format, va_list args); -CURL_EXTERN char *curl_maprintf(const char *format, ...); -CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); - -#ifdef _MPRINTF_REPLACE -# undef printf -# undef fprintf -# undef sprintf -# undef vsprintf -# undef snprintf -# undef vprintf -# undef vfprintf -# undef vsnprintf -# undef aprintf -# undef vaprintf -# define printf curl_mprintf -# define fprintf curl_mfprintf -#ifdef CURLDEBUG -/* When built with CURLDEBUG we define away the sprintf() functions since we - don't want internal code to be using them */ -# define sprintf sprintf_was_used -# define vsprintf vsprintf_was_used -#else -# define sprintf curl_msprintf -# define vsprintf curl_mvsprintf -#endif -# define snprintf curl_msnprintf -# define vprintf curl_mvprintf -# define vfprintf curl_mvfprintf -# define vsnprintf curl_mvsnprintf -# define aprintf curl_maprintf -# define vaprintf curl_mvaprintf -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __CURL_MPRINTF_H */ diff --git a/contrib/ise_library/cURL/spec/include/curl/multi.h b/contrib/ise_library/cURL/spec/include/curl/multi.h deleted file mode 100644 index 094c6484..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/multi.h +++ /dev/null @@ -1,346 +0,0 @@ -#ifndef __CURL_MULTI_H -#define __CURL_MULTI_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2007, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ -/* - This is an "external" header file. Don't give away any internals here! - - GOALS - - o Enable a "pull" interface. The application that uses libcurl decides where - and when to ask libcurl to get/send data. - - o Enable multiple simultaneous transfers in the same thread without making it - complicated for the application. - - o Enable the application to select() on its own file descriptors and curl's - file descriptors simultaneous easily. - -*/ - -/* - * This header file should not really need to include "curl.h" since curl.h - * itself includes this file and we expect user applications to do #include - * without the need for especially including multi.h. - * - * For some reason we added this include here at one point, and rather than to - * break existing (wrongly written) libcurl applications, we leave it as-is - * but with this warning attached. - */ -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void CURLM; - -typedef enum { - CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or - curl_multi_socket*() soon */ - CURLM_OK, - CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ - CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ - CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ - CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ - CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ - CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ - CURLM_LAST -} CURLMcode; - -/* just to make code nicer when using curl_multi_socket() you can now check - for CURLM_CALL_MULTI_SOCKET too in the same style it works for - curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ -#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM - -typedef enum { - CURLMSG_NONE, /* first, not used */ - CURLMSG_DONE, /* This easy handle has completed. 'result' contains - the CURLcode of the transfer */ - CURLMSG_LAST /* last, not used */ -} CURLMSG; - -struct CURLMsg { - CURLMSG msg; /* what this message means */ - CURL *easy_handle; /* the handle it concerns */ - union { - void *whatever; /* message-specific data */ - CURLcode result; /* return code for transfer */ - } data; -}; -typedef struct CURLMsg CURLMsg; - -/* - * Name: curl_multi_init() - * - * Desc: inititalize multi-style curl usage - * - * Returns: a new CURLM handle to use in all 'curl_multi' functions. - */ -CURL_EXTERN CURLM *curl_multi_init(void); - -/* - * Name: curl_multi_add_handle() - * - * Desc: add a standard curl handle to the multi stack - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_remove_handle() - * - * Desc: removes a curl handle from the multi stack again - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_fdset() - * - * Desc: Ask curl for its fd_set sets. The app can use these to select() or - * poll() on. We want curl_multi_perform() called as soon as one of - * them are ready. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, - fd_set *read_fd_set, - fd_set *write_fd_set, - fd_set *exc_fd_set, - int *max_fd); - - /* - * Name: curl_multi_perform() - * - * Desc: When the app thinks there's data available for curl it calls this - * function to read/write whatever there is right now. This returns - * as soon as the reads and writes are done. This function does not - * require that there actually is data available for reading or that - * data can be written, it can be called just in case. It returns - * the number of handles that still transfer data in the second - * argument's integer-pointer. - * - * Returns: CURLMcode type, general multi error code. *NOTE* that this only - * returns errors etc regarding the whole multi stack. There might - * still have occurred problems on invidual transfers even when this - * returns OK. - */ -CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, - int *running_handles); - - /* - * Name: curl_multi_cleanup() - * - * Desc: Cleans up and removes a whole multi stack. It does not free or - * touch any individual easy handles in any way. We need to define - * in what state those handles will be if this function is called - * in the middle of a transfer. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); - -/* - * Name: curl_multi_info_read() - * - * Desc: Ask the multi handle if there's any messages/informationals from - * the individual transfers. Messages include informationals such as - * error code from the transfer or just the fact that a transfer is - * completed. More details on these should be written down as well. - * - * Repeated calls to this function will return a new struct each - * time, until a special "end of msgs" struct is returned as a signal - * that there is no more to get at this point. - * - * The data the returned pointer points to will not survive calling - * curl_multi_cleanup(). - * - * The 'CURLMsg' struct is meant to be very simple and only contain - * very basic informations. If more involved information is wanted, - * we will provide the particular "transfer handle" in that struct - * and that should/could/would be used in subsequent - * curl_easy_getinfo() calls (or similar). The point being that we - * must never expose complex structs to applications, as then we'll - * undoubtably get backwards compatibility problems in the future. - * - * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out - * of structs. It also writes the number of messages left in the - * queue (after this read) in the integer the second argument points - * to. - */ -CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, - int *msgs_in_queue); - -/* - * Name: curl_multi_strerror() - * - * Desc: The curl_multi_strerror function may be used to turn a CURLMcode - * value into the equivalent human readable error string. This is - * useful for printing meaningful error messages. - * - * Returns: A pointer to a zero-terminated error message. - */ -CURL_EXTERN const char *curl_multi_strerror(CURLMcode); - -/* - * Name: curl_multi_socket() and - * curl_multi_socket_all() - * - * Desc: An alternative version of curl_multi_perform() that allows the - * application to pass in one of the file descriptors that have been - * detected to have "action" on them and let libcurl perform. - * See man page for details. - */ -#define CURL_POLL_NONE 0 -#define CURL_POLL_IN 1 -#define CURL_POLL_OUT 2 -#define CURL_POLL_INOUT 3 -#define CURL_POLL_REMOVE 4 - -#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD - -#define CURL_CSELECT_IN 0x01 -#define CURL_CSELECT_OUT 0x02 -#define CURL_CSELECT_ERR 0x04 - -typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ - curl_socket_t s, /* socket */ - int what, /* see above */ - void *userp, /* private callback - pointer */ - void *socketp); /* private socket - pointer */ -/* - * Name: curl_multi_timer_callback - * - * Desc: Called by libcurl whenever the library detects a change in the - * maximum number of milliseconds the app is allowed to wait before - * curl_multi_socket() or curl_multi_perform() must be called - * (to allow libcurl's timed events to take place). - * - * Returns: The callback should return zero. - */ -typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ - long timeout_ms, /* see above */ - void *userp); /* private callback - pointer */ - -CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, - curl_socket_t s, - int ev_bitmask, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, - int *running_handles); - -#ifndef CURL_ALLOW_OLD_MULTI_SOCKET -/* This macro below was added in 7.16.3 to push users who recompile to use - the new curl_multi_socket_action() instead of the old curl_multi_socket() -*/ -#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) -#endif - -/* - * Name: curl_multi_timeout() - * - * Desc: Returns the maximum number of milliseconds the app is allowed to - * wait before curl_multi_socket() or curl_multi_perform() must be - * called (to allow libcurl's timed events to take place). - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, - long *milliseconds); - -#undef CINIT /* re-using the same name as in curl.h */ - -#ifdef CURL_ISOCPP -#define CINIT(name,type,number) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + number -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLMOPT_/**/name = type + number -#endif - -typedef enum { - /* This is the socket callback function pointer */ - CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), - - /* This is the argument passed to the socket callback */ - CINIT(SOCKETDATA, OBJECTPOINT, 2), - - /* set to 1 to enable pipelining for this multi handle */ - CINIT(PIPELINING, LONG, 3), - - /* This is the timer callback function pointer */ - CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), - - /* This is the argument passed to the timer callback */ - CINIT(TIMERDATA, OBJECTPOINT, 5), - - /* maximum number of entries in the connection cache */ - CINIT(MAXCONNECTS, LONG, 6), - - CURLMOPT_LASTENTRY /* the last unused */ -} CURLMoption; - - -/* - * Name: curl_multi_setopt() - * - * Desc: Sets options for the multi handle. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, - CURLMoption option, ...); - - -/* - * Name: curl_multi_assign() - * - * Desc: This function sets an association in the multi handle between the - * given socket and a private pointer of the application. This is - * (only) useful for curl_multi_socket uses. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, - curl_socket_t sockfd, void *sockp); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif diff --git a/contrib/ise_library/cURL/spec/include/curl/stdcheaders.h b/contrib/ise_library/cURL/spec/include/curl/stdcheaders.h deleted file mode 100644 index 11c1e2f6..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/stdcheaders.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __STDC_HEADERS_H -#define __STDC_HEADERS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2004, Daniel Stenberg, , 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. - * - * $Id$ - ***************************************************************************/ - -#include - -size_t fread (void *, size_t, size_t, FILE *); -size_t fwrite (const void *, size_t, size_t, FILE *); - -int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); - -#endif diff --git a/contrib/ise_library/cURL/spec/include/curl/types.h b/contrib/ise_library/cURL/spec/include/curl/types.h deleted file mode 100644 index d37d6ae9..00000000 --- a/contrib/ise_library/cURL/spec/include/curl/types.h +++ /dev/null @@ -1 +0,0 @@ -/* not used */ diff --git a/contrib/ise_library/cURL/spec/include/eiffel_curl.h b/contrib/ise_library/cURL/spec/include/eiffel_curl.h deleted file mode 100644 index 3dd9b005..00000000 --- a/contrib/ise_library/cURL/spec/include/eiffel_curl.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -indexing - description: "Functions used by the class CURL_FUNCTION." - copyright: "Copyright (c) 1984-2006, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 356 Storke Road, Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -*/ - -#ifndef _eiffel_curl_h_ -#define _eiffel_curl_h_ - -#include "eif_eiffel.h" - -/* unix-specific */ -#ifndef EIF_WINDOWS -#include -#include -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern void c_set_object(EIF_REFERENCE a_address); -extern void c_release_object(void); -extern void c_set_progress_function_address( EIF_POINTER a_address); -extern void c_set_read_function_address( EIF_POINTER a_address); -extern void c_set_write_function_address( EIF_POINTER a_address); -extern void c_set_debug_function_address (EIF_POINTER a_address); -extern size_t curl_write_function (void *ptr, size_t size, size_t nmemb, void *data); -extern size_t curl_read_function (void *ptr, size_t size, size_t nmemb, void *data); -extern size_t curl_progress_function (void * a_object_id, double a_dltotal, double a_dlnow, double a_ultotal, double a_ulnow); -extern size_t curl_debug_function (CURL * a_curl_handle, curl_infotype a_curl_infotype, unsigned char * a_char_pointer, size_t a_size, void * a_object_id); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/contrib/ise_library/text/uri/license.lic b/contrib/ise_library/text/uri/license.lic deleted file mode 100644 index c929225f..00000000 --- a/contrib/ise_library/text/uri/license.lic +++ /dev/null @@ -1 +0,0 @@ -reference:forum2 diff --git a/contrib/ise_library/text/uri/src/implementation/percent_encoder.e b/contrib/ise_library/text/uri/src/implementation/percent_encoder.e deleted file mode 100644 index 72b7b894..00000000 --- a/contrib/ise_library/text/uri/src/implementation/percent_encoder.e +++ /dev/null @@ -1,508 +0,0 @@ -note - description: "[ - Component to handle percent encoding - ]" - date: "$Date: 2013-01-26 01:40:46 +0100 (sam., 26 janv. 2013) $" - revision: "$Revision: 90880 $" - EIS: "name=Percent-encoding", "protocol=URI", "src=http://en.wikipedia.org/wiki/Percent-encoding" - -class - PERCENT_ENCODER - -feature -- Percent encoding - - append_percent_encoded_string_to (s: READABLE_STRING_GENERAL; a_result: STRING_GENERAL) - -- Append `a_string' as percent-encoded value to `a_result' - local - c: NATURAL_32 - i,n: INTEGER - do - from - i := 1 - n := s.count - until - i > n - loop - c := s.code (i) - if - --| unreserved ALPHA / DIGIT - (48 <= c and c <= 57) -- DIGIT: 0 .. 9 - or (65 <= c and c <= 90) -- ALPHA: A .. Z - or (97 <= c and c <= 122) -- ALPHA: a .. z - then - a_result.append_code (c) - else - inspect c - when - 45, 46, 95, 126 -- unreserved characters: -._~ - then - a_result.append_code (c) - when - 58, 64, -- reserved =+ gen-delims: :@ - 33, 36, 38, 39, 40, 41, 42, -- reserved =+ sub-delims: !$&'()* - 43, 44, 59, 61, -- reserved = sub-delims: +,;= - 37 -- percent encoding: % - then - append_percent_encoded_character_code_to (c, a_result) - else - append_percent_encoded_character_code_to (c, a_result) - end - end - i := i + 1 - end - end - -feature -- Percent encoding: character - - append_percent_encoded_character_code_to (a_code: NATURAL_32; a_result: STRING_GENERAL) - -- Append character code `a_code' as percent-encoded content into `a_result' - do - if a_code > 0xFF then - -- Unicode - append_percent_encoded_unicode_character_code_to (a_code, a_result) - elseif a_code > 0x7F then - -- Extended ASCII - -- This requires percent-encoding on UTF-8 converted character. - append_percent_encoded_unicode_character_code_to (a_code, a_result) - else - -- ASCII - append_percent_encoded_ascii_character_code_to (a_code, a_result) - end - ensure - appended: a_result.count > old a_result.count - end - -feature {NONE} -- Implementation: character encoding - - append_percent_encoded_ascii_character_code_to (a_code: NATURAL_32; a_result: STRING_GENERAL) - -- Append extended ascii character code `a_code' as percent-encoded content into `a_result' - -- Note: it does not UTF-8 convert this extended ASCII. - require - is_extended_ascii: a_code <= 0xFF - local - c: INTEGER - do - if a_code > 0xFF then - -- Unicode - append_percent_encoded_unicode_character_code_to (a_code, a_result) - else - -- Extended ASCII - c := a_code.to_integer_32 - a_result.append_code (37) -- 37 '%%' - a_result.append_code (hex_digit [c |>> 4]) - a_result.append_code (hex_digit [c & 0xF]) - end - ensure - appended: a_result.count > old a_result.count - end - - append_percent_encoded_unicode_character_code_to (a_code: NATURAL_32; a_result: STRING_GENERAL) - -- Append Unicode character code `a_code' as UTF-8 and percent-encoded content into `a_result' - -- Note: it does include UTF-8 conversion of extended ASCII and Unicode. - do - if a_code <= 0x7F then - -- 0xxxxxxx - append_percent_encoded_ascii_character_code_to (a_code, a_result) - elseif a_code <= 0x7FF then - -- 110xxxxx 10xxxxxx - append_percent_encoded_ascii_character_code_to ((a_code |>> 6) | 0xC0, a_result) - append_percent_encoded_ascii_character_code_to ((a_code & 0x3F) | 0x80, a_result) - elseif a_code <= 0xFFFF then - -- 1110xxxx 10xxxxxx 10xxxxxx - append_percent_encoded_ascii_character_code_to ((a_code |>> 12) | 0xE0, a_result) - append_percent_encoded_ascii_character_code_to (((a_code |>> 6) & 0x3F) | 0x80, a_result) - append_percent_encoded_ascii_character_code_to ((a_code & 0x3F) | 0x80, a_result) - else - -- c <= 1FFFFF - there are no higher code points - -- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - append_percent_encoded_ascii_character_code_to ((a_code |>> 18) | 0xF0, a_result) - append_percent_encoded_ascii_character_code_to (((a_code |>> 12) & 0x3F) | 0x80, a_result) - append_percent_encoded_ascii_character_code_to (((a_code |>> 6) & 0x3F) | 0x80, a_result) - append_percent_encoded_ascii_character_code_to ((a_code & 0x3F) | 0x80, a_result) - end - ensure - appended: a_result.count > old a_result.count - end - -feature -- Percent decoding - - append_percent_decoded_string_to (v: READABLE_STRING_GENERAL; a_result: STRING_GENERAL) - -- Append to `a_result' a string equivalent to the percent-encoded string `v' - --| Note that is `a_result' is a STRING_8, any Unicode character will be kept as UTF-8 - local - i,n: INTEGER - c: NATURAL_32 - pr: CELL [INTEGER] - a_result_is_string_32: BOOLEAN - do - a_result_is_string_32 := attached {STRING_32} a_result - from - i := 1 - create pr.put (i) - n := v.count - until - i > n - loop - c := v.code (i) - inspect c - when 43 then -- 43 '+' - -- Some implementation are replacing spaces with "+" instead of "%20" - a_result.append_code (32) -- 32 ' ' - when 37 then -- 37 '%%' - -- An escaped character ? - if i = n then -- Error? - a_result.append_code (c) - else - if a_result_is_string_32 then - -- Convert UTF-8 to UTF-32 - pr.replace (i) - c := next_percent_decoded_unicode_character_code (v, pr) - a_result.append_code (c) - i := pr.item - else - -- Keep UTF-8 - pr.replace (i) - c := next_percent_decoded_character_code (v, pr) - a_result.append_code (c) - i := pr.item - end - end - else - if c <= 0x7F then - a_result.append_code (c) - else - if a_result_is_string_32 then - a_result.append_code (c) - else - append_percent_encoded_character_code_to (c, a_result) - end - end - end - i := i + 1 - end - end - -feature {NONE} -- Implementation: decoding - - next_percent_decoded_character_code (v: READABLE_STRING_GENERAL; a_position: CELL [INTEGER]): NATURAL_32 - -- Character decoded from string `v' starting from index `a_position.item' - -- note: it also updates `a_position.item' to indicate the new index position. - require - valid_start: a_position.item <= v.count - is_percent_char: v.code (a_position.item) = 37 -- 37 '%%' - local - c: NATURAL_32 - i, n: INTEGER - not_a_digit: BOOLEAN - ascii_pos: NATURAL_32 - ival: NATURAL_32 - pos: INTEGER - c_is_digit: BOOLEAN - do - --| pos is index in stream of escape character ('%') - pos := a_position.item - c := v.code (pos + 1) - if c = 85 or c = 117 then -- 117 'u' 85 'U' - -- NOTE: this is not a standard, but it can occur, so use this for decoding only - -- An escaped Unicode (ucs2) value, from ECMA scripts - -- has the form: %u where is the UCS value - -- of the character (two byte integer, one to 4 chars - -- after escape sequence). - -- See: http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations - -- UTF-8 result can be 1 to 4 characters. - from - i := pos + 2 - n := v.count - until - (i > n) or not_a_digit - loop - c := v.code (i) - c_is_digit := (48 <= c and c <= 57) -- DIGIT: 0 .. 9 - if - c_is_digit - or (97 <= c and c <= 102) -- ALPHA: a..f - or (65 <= c and c <= 70) -- ALPHA: A..F - then - ival := ival * 16 - if c_is_digit then - ival := ival + (c - 48) -- 48 '0' - else - if c > 70 then -- a..f - ival := ival + (c - 97) + 10 -- 97 'a' - else -- A..F - ival := ival + (c - 65) + 10 -- 65 'A' - end - end - i := i + 1 - else - not_a_digit := True - i := i - 1 - end - end - a_position.replace (i) - Result := ival - else - -- ASCII char? - ascii_pos := hexadecimal_string_to_natural_32 (v.substring (pos + 1, pos + 2)) - Result := ascii_pos - a_position.replace (pos + 2) - end - end - - next_percent_decoded_unicode_character_code (v: READABLE_STRING_GENERAL; a_position: CELL [INTEGER]): NATURAL_32 - -- Next decoded character from `v' at position `a_position.item' - -- note: it also updates `a_position' to indicate the new index position. - require - valid_start: a_position.item <= v.count - is_percent_char: v.code (a_position.item) = 37 -- 37 '%%' - local - n, j: INTEGER - c: NATURAL_32 - c1, c2, c3, c4: NATURAL_32 - pr: CELL [INTEGER] - do - create pr.put (a_position.item) - c1 := next_percent_decoded_character_code (v, pr) - - j := pr.item - n := v.count - - Result := c1 - a_position.replace (j) - - if c1 <= 0x7F then - -- 0xxxxxxx - Result := c1 - elseif c1 <= 0xDF then - -- 110xxxxx 10xxxxxx - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c2 := next_percent_decoded_character_code (v, pr) - j := pr.item - Result := ( - ((c1 & 0x1F) |<< 6) | - ( c2 & 0x3F ) - ) - a_position.replace (j) - else - -- Do not try to decode - end - end - elseif c1 <= 0xEF then - -- 1110xxxx 10xxxxxx 10xxxxxx - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c2 := next_percent_decoded_character_code (v, pr) - j := pr.item - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c3 := next_percent_decoded_character_code (v, pr) - j := pr.item - - Result := ( - ((c1 & 0xF) |<< 12) | - ((c2 & 0x3F) |<< 6) | - ( c3 & 0x3F ) - ) - a_position.replace (j) - else - -- Do not try to decode - end - end - else - -- Do not try to decode - end - end - elseif c1 <= 0xF7 then - -- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c2 := next_percent_decoded_character_code (v, pr) - j := pr.item - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c3 := next_percent_decoded_character_code (v, pr) - j := pr.item - if j + 2 <= n then - c := v.code (j + 1) - if c = 37 then -- 37 '%%' - pr.replace (j + 1) - c4 := next_percent_decoded_character_code (v, pr) - j := pr.item - - a_position.replace (j) - - Result := ( - ((c1 & 0x7) |<< 18 ) | - ((c2 & 0x3F) |<< 12) | - ((c3 & 0x3F) |<< 6) | - ( c4 & 0x3F ) - ) - else - -- Do not try to decode - end - end - else - -- Do not try to decode - end - end - else - -- Do not try to decode - end - end - else - Result := c1 - end - end - -feature -- RFC and characters - - is_hexa_decimal_character (c: CHARACTER_32): BOOLEAN - -- Is hexadecimal character ? - do - Result := ('a' <= c and c <= 'f') or ('A' <= c and c <= 'F') -- HEXA - or ('0' <= c and c <= '9') -- DIGIT - end - - is_alpha_or_digit_character (c: CHARACTER_32): BOOLEAN - -- Is ALPHA or DIGIT character ? - do - Result := ('a' <= c and c <= 'z') or ('A' <= c and c <= 'Z') -- ALPHA - or ('0' <= c and c <= '9') -- DIGIT - end - - is_alpha_character (c: CHARACTER_32): BOOLEAN - -- Is ALPHA character ? - do - Result := ('a' <= c and c <= 'z') or ('A' <= c and c <= 'Z') - end - - is_digit_character (c: CHARACTER_32): BOOLEAN - -- Is DIGIT character ? - do - Result := ('0' <= c and c <= '9') - end - - is_unreserved_character (c: CHARACTER_32): BOOLEAN - -- unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" - do - if - ('a' <= c and c <= 'z') -- ALPHA - or ('A' <= c and c <= 'Z') -- ALPHA - or ('0' <= c and c <= '9') -- DIGIT - then - Result := True - else - inspect c - when '-', '_', '.', '~' then -- unreserved - Result := True - else - end - end - end - - is_reserved_character (c: CHARACTER_32): BOOLEAN - -- reserved = gen-delims / sub-delims - do - Result := is_gen_delims_character (c) or is_sub_delims_character (c) - end - - is_gen_delims_character (c: CHARACTER_32): BOOLEAN - -- gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" - do - inspect c - when ':' , '/', '?' , '#' , '[' , ']' , '@' then - Result := True - else - end - end - - is_sub_delims_character (c: CHARACTER_32): BOOLEAN - -- sub-delims = "!" / "$" / "&" / "'" / "(" / ")" - -- / "*" / "+" / "," / ";" / "=" - do - inspect c - when '!' , '$' , '&' , '%'' , '(' , ')' , '*' , '+' , ',' , ';' , '=' then -- sub-delims - Result := True - else - end - end - -feature {NONE} -- Implementation - - hex_digit: SPECIAL [NATURAL_32] - -- Hexadecimal digits. - once - create Result.make_filled (0, 16) - Result [0] := {NATURAL_32} 48 -- 48 '0' - Result [1] := {NATURAL_32} 49 -- 49 '1' - Result [2] := {NATURAL_32} 50 -- 50 '2' - Result [3] := {NATURAL_32} 51 -- 51 '3' - Result [4] := {NATURAL_32} 52 -- 52 '4' - Result [5] := {NATURAL_32} 53 -- 53 '5' - Result [6] := {NATURAL_32} 54 -- 54 '6' - Result [7] := {NATURAL_32} 55 -- 55 '7' - Result [8] := {NATURAL_32} 56 -- 56 '8' - Result [9] := {NATURAL_32} 57 -- 57 '9' - Result [10] := {NATURAL_32} 65 -- 65 'A' - Result [11] := {NATURAL_32} 66 -- 66 'B' - Result [12] := {NATURAL_32} 67 -- 67 'C' - Result [13] := {NATURAL_32} 68 -- 68 'D' - Result [14] := {NATURAL_32} 69 -- 69 'E' - Result [15] := {NATURAL_32} 70 -- 70 'F' - end - - is_hexa_decimal (a_string: READABLE_STRING_GENERAL): BOOLEAN - -- Is `a_string' a valid hexadecimal sequence? - local - l_convertor: like ctoi_convertor - do - l_convertor := ctoi_convertor - l_convertor.parse_string_with_type (a_string, {NUMERIC_INFORMATION}.type_natural_32) - Result := l_convertor.is_integral_integer - end - - hexadecimal_string_to_natural_32 (a_hex_string: READABLE_STRING_GENERAL): NATURAL_32 - -- Convert hexadecimal value `a_hex_string' to its corresponding NATURAL_32 value. - require - is_hexa: is_hexa_decimal (a_hex_string) - local - l_convertor: like ctoi_convertor - do - l_convertor := ctoi_convertor - l_convertor.parse_string_with_type (a_hex_string, {NUMERIC_INFORMATION}.type_no_limitation) - Result := l_convertor.parsed_natural_32 - end - - ctoi_convertor: HEXADECIMAL_STRING_TO_INTEGER_CONVERTER - -- Converter used to convert string to integer or natural. - once - create Result.make - Result.set_leading_separators_acceptable (False) - Result.set_trailing_separators_acceptable (False) - ensure - ctoi_convertor_not_void: Result /= Void - end - -note - copyright: "Copyright (c) 1984-2013, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/text/uri/src/iri.e b/contrib/ise_library/text/uri/src/iri.e deleted file mode 100644 index 81fd1a97..00000000 --- a/contrib/ise_library/text/uri/src/iri.e +++ /dev/null @@ -1,352 +0,0 @@ -note - description : "[ - Object that represents an IRI Scheme - - See http://en.wikipedia.org/wiki/Internationalized_Resource_Identifier - See http://tools.ietf.org/html/rfc3987 (IRI) - - ]" - author: "$Author: manus $" - date: "$Date: 2013-01-26 01:40:46 +0100 (sam., 26 janv. 2013) $" - revision: "$Revision: 90880 $" - EIS: "name=IRI-RFC3987", "protocol=URI", "src=http://tools.ietf.org/html/rfc3987" - EIS: "name=IRI-Wikipedia", "protocol=URI", "src=http://en.wikipedia.org/wiki/Internationalized_Resource_Identifier" - -class - IRI - -inherit - URI - rename - make_from_string as make_from_uri_string, - userinfo as uri_userinfo, - path as uri_path, path_segments as uri_path_segments, - query as uri_query, query_items as uri_query_items, - fragment as uri_fragment, - username_password as uri_username_password, - username as uri_username, password as uri_password, - hier as uri_hier, - authority as uri_authority, - string as uri_string - end - -create - make_from_string, - make_from_uri - -feature {NONE} -- Initialization - - make_from_string (a_string: READABLE_STRING_GENERAL) - -- Make from Internationalized resource identifier text `a_string' - note - EIS: "name=IRI-RFC3987", "protocol=URI", "src=http://tools.ietf.org/html/rfc3987" - EIS: "name=IRI-Wikipedia", "protocol=URI", "src=http://en.wikipedia.org/wiki/Internationalized_Resource_Identifier" - local - l_uri_string: STRING_8 - do - create l_uri_string.make (a_string.count) - iri_into_uri (a_string, l_uri_string) - make_from_uri_string (l_uri_string) - end - - make_from_uri (a_uri: URI) - -- Make Current Internationalized resource identifier from `uri' object - do - make_from_uri_string (a_uri.string) - end - -feature -- Access - - userinfo: detachable READABLE_STRING_32 - -- User information. - --| username:password - --| RFC3986: userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) - do - Result := to_internationalized_percent_encoded_string (uri_userinfo) - end - - path: READABLE_STRING_32 - -- Path component containing data, usually organized in hierarchical form. - do - Result := to_attached_internationalized_percent_encoded_string (uri_path) - end - - query: detachable READABLE_STRING_32 - -- Query string. - do - Result := to_internationalized_percent_encoded_string (uri_query) - end - - fragment: detachable READABLE_STRING_32 - -- The fragment identifier component of a URI allows indirect - -- identification of a secondary resource by reference to a primary - -- resource and additional identifying information. - do - Result := to_internationalized_percent_encoded_string (uri_fragment) - end - -feature -- Access - - path_segments: LIST [READABLE_STRING_32] - -- Segments composing `path'. - do - Result := path.split ('/') - end - - query_items: detachable LIST [TUPLE [name: READABLE_STRING_32; value: detachable READABLE_STRING_32]] - -- Query items composing the `query'. - local - lst: LIST [READABLE_STRING_32] - i: INTEGER - do - if attached query as q then - lst := q.split ('&') - create {ARRAYED_LIST [like query_items.item]} Result.make (lst.count) - across - lst as e - loop - i := e.item.index_of ('=', 1) - if i > 0 then - Result.force ([e.item.substring (1, i - 1), e.item.substring (i + 1, e.item.count)]) - else - Result.force ([e.item, Void]) - end - end - end - end - -feature -- Query - - hier: READABLE_STRING_32 - -- Hier part. - -- hier-part = "//" authority path-abempty - -- / path-absolute - -- / path-rootless - -- / path-empty - local - s: STRING_32 - do - create s.make (10) - if attached authority as l_authority then - s.append_character ('/') - s.append_character ('/') - s.append (l_authority) - end - s.append (path) - Result := s - end - - username_password: detachable TUPLE [username: READABLE_STRING_32; password: detachable READABLE_STRING_32] - -- Username and password value extrated from `userinfo'. - --| userinfo = username:password - local - i: INTEGER - u,p: detachable READABLE_STRING_32 - do - if attached userinfo as t then - i := t.index_of (':', 1) - if i > 0 then - p := t.substring (i + 1, t.count) - u := t.substring (1, i - 1) - else - u := t - p := Void - end - Result := [u, p] - end - end - - username: detachable READABLE_STRING_32 - -- Eventual username. - do - if attached username_password as up then - Result := up.username - end - end - - password: detachable READABLE_STRING_32 - -- Eventual password. - do - if attached username_password as up then - Result := up.password - end - end - - authority: detachable READABLE_STRING_32 - -- Hierarchical element for naming authority. - --| RFC3986: authority = [ userinfo "@" ] host [ ":" port ] - local - s: STRING_32 - do - if attached host as h then - if attached userinfo as u then - create s.make_from_string (u) - s.append_character ('@') - s.append_string_general (h) - else - create s.make (h.count) - s.append_string_general (h) - end - if port /= 0 then - s.append_character (':') - s.append_integer (port) - end - Result := s - else - check not is_valid or else (userinfo = Void and port = 0) end - end - end - -feature -- Conversion - - string: READABLE_STRING_32 - -- String representation. - -- scheme://username:password@hostname/path?query#fragment - local - s: STRING_32 - do - if attached scheme as l_scheme and then not l_scheme.is_empty then - create s.make (l_scheme.count) - s.append_string_general (l_scheme) - s.append_character (':') - else - create s.make_empty - end - s.append (hier) - if attached query as q then - s.append_character ('?') - s.append (q) - end - if attached fragment as f then - s.append_character ('#') - s.append (f) - end - Result := s - end - - to_uri: URI - do - create Result.make_from_string (uri_string) - end - -feature {NONE} -- Implementation: Internationalization - - iri_into_uri (a_string: READABLE_STRING_GENERAL; a_result: STRING_8) - require - is_valid_iri: True - local - i,n: INTEGER - c: NATURAL_32 - do - from - i := 1 - n := a_string.count - until - i > n - loop - c := a_string.code (i) - if c > 0x7F then - -- extended ASCII and/or Unicode - append_percent_encoded_character_code_to (c, a_result) --- elseif c = 37 then -- '%' --- -- Check for %u + code --- if i + 1 <= n then --- c := a_string.code (i + 1) --- if c = 85 or c = 117 then -- 85 'U' 117 'u' --- TODO: Convert it to standard percent-encoding without %U... --- end --- else --- a_result.append_code (c) --- end - else - -- keep as it is - a_result.append_code (c) - end - i := i + 1 - end - end - - to_internationalized_percent_encoded_string (s: detachable READABLE_STRING_8): detachable STRING_32 - -- Convert string `s' to Internationalized Resource Identifier string - -- Result is Void if `s' is Void. - do - if s /= Void then - create Result.make (s.count) - append_percent_encoded_string_into_internationalized_percent_encoded_string (s, Result) - end - end - - to_attached_internationalized_percent_encoded_string (s: READABLE_STRING_8): STRING_32 - -- Convert string `s' to Internationalized Resource Identifier string - do - create Result.make (s.count) - append_percent_encoded_string_into_internationalized_percent_encoded_string (s, Result) - end - - append_percent_encoded_string_into_internationalized_percent_encoded_string (v: READABLE_STRING_GENERAL; a_result: STRING_32) - -- Append to `a_result' the Internationalized URL-decoded equivalent of the given percent-encoded string `v' - -- It simply decode any percent-encoded Unicode character and kept the rest untouched - -- "http://example.com/summer/%C3%A9t%C3%A9" will be converted to IRI "http://example.com/summer/été" - local - i,n: INTEGER - c1, - c: NATURAL_32 - pr: CELL [INTEGER] - do - from - i := 1 - create pr.put (i) - n := v.count - until - i > n - loop - c := v.code (i) - inspect c - when 43 then -- 43 '+' - -- Some implementation are replacing spaces with "+" instead of "%20" - -- Here fix this bad behavior - a_result.append_code (37) -- 37 '%' - a_result.append_code (50) -- 50 '2' - a_result.append_code (48) -- 48 '0' - when 37 then -- 37 '%%' - -- An escaped character ? - if i = n then -- Error? - a_result.append_code (c) - elseif i + 1 <= n then - c1 := v.code (i + 1) - if c1 = 85 or c1 = 117 then -- 117 'u' 85 'U' - -- %u + UTF-32 code - pr.replace (i) - c1 := next_percent_decoded_character_code (v, pr) - i := pr.item - a_result.append_code (c1) - else - pr.replace (i) - c1 := next_percent_decoded_unicode_character_code (v, pr) - if c1 > 0x7F then - a_result.append_code (c1) - i := pr.item - else - a_result.append_code (c) - end - end - end - else - a_result.append_code (c) - end - i := i + 1 - end - end - - -;note - copyright: "Copyright (c) 1984-2013, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/text/uri/src/uri.e b/contrib/ise_library/text/uri/src/uri.e deleted file mode 100644 index b34a5249..00000000 --- a/contrib/ise_library/text/uri/src/uri.e +++ /dev/null @@ -1,971 +0,0 @@ -note - description : "[ - Object that represent a URI Scheme - - See http://en.wikipedia.org/wiki/URI_scheme - See http://en.wikipedia.org/wiki/Uniform_resource_identifier - See http://en.wikipedia.org/wiki/Uniform_resource_locator - See http://tools.ietf.org/html/rfc3986 (URI) - - Global syntax element: - pchar = unreserved / pct-encoded / sub-delims / ":" / "@" - pct-encoded = "%" HEXDIG HEXDIG - unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" - reserved = gen-delims / sub-delims - gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" - sub-delims = "!" / "$" / "&" / "'" / "(" / ")" - / "*" / "+" / "," / ";" / "=" - ]" - date: "$Date: 2013-01-21 10:25:01 +0100 (lun., 21 janv. 2013) $" - revision: "$Revision: 90748 $" - EIS: "name=URI-RFC3986 Generic syntax", "protocol=URI", "src=http://tools.ietf.org/html/rfc3986" - EIS: "name=URI-Wikipedia", "protocol=URI", "src=http://en.wikipedia.org/wiki/URI_scheme" - EIS: "name=IRI-RFC3987", "protocol=URI", "src=http://tools.ietf.org/html/rfc3987" - EIS: "name=IRI-Wikipedia", "protocol=URI", "src=http://en.wikipedia.org/wiki/Internationalized_Resource_Identifier" - EIS: "name=Percent-encoding", "protocol=URI", "src=http://en.wikipedia.org/wiki/Percent-encoding" - - EIS: "name=url-RFC1738", "protocol=URI", "src=http://tools.ietf.org/html/rfc1738" - EIS: "name=mailto-RFC2368", "protocol=URI", "src=http://tools.ietf.org/html/rfc2368" - EIS: "name=ipv6-RFC2373", "protocol=URI", "src=http://tools.ietf.org/html/rfc2373" - EIS: "name=ipv6-RFC2373 in URL", "protocol=URI", "src=http://tools.ietf.org/html/rfc2732" - -class - URI - -inherit - ANY - - PERCENT_ENCODER - export - {NONE} all - end - - DEBUG_OUTPUT - -create - make_from_string - -feature {NONE} -- Initialization - - make_from_string (a_string: READABLE_STRING_8) - -- Parse `a_string' as a URI as specified by RFC3986 - --| Note: for now the result of the parsing does not check the strict validity of each part. - --| URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] - note - EIS: "name=Syntax Components", "protocol=URI", "src=http://tools.ietf.org/html/rfc3986#section-3" - local - p,q: INTEGER - s, t: STRING_8 - do - is_valid := True - p := a_string.index_of (':', 1) - if p > 0 then - set_scheme (a_string.substring (1, p - 1)) - if a_string.count > p + 1 and then a_string[p+1] = '/' and then a_string[p+2] = '/' then - --| Starts by scheme:// - --| waiting for hierarchical part username:password@hostname:port - p := p + 2 - q := a_string.index_of ('@', p + 1) - if q > 0 then - --| found user:passwd - t := a_string.substring (p + 1, q - 1) - set_userinfo (t) - p := q - end - q := a_string.index_of ('/', p + 1) - if q > 0 then - t := a_string.substring (p + 1, q - 1) - else - q := a_string.count - t := a_string.substring (p + 1, q) - q := 0 --| end of processing - end - if not t.is_empty and then t[1] = '[' then - p := t.index_of (']', 2) - if p > 0 then - p := t.index_of (':', p + 1) - else - is_valid := False - end - else - p := t.index_of (':', 1) - end - if p > 0 then - set_hostname (t.substring (1, p - 1)) - t.remove_head (p) - if t.is_integer then - set_port (t.to_integer) - else - set_port (0) - is_valid := False - end - else - set_hostname (t) - set_port (0) - end - else - --| Keep eventual '/' as part of the path - q := p + 1 - set_hostname (Void) - end - - if q > 0 and q <= a_string.count then - --| found query - t := a_string.substring (q, a_string.count) - q := t.index_of ('?', 1) - if q > 0 then - s := t.substring (1, q - 1) - if is_valid_in_uri_string (s) then - set_path (s) - else - set_path ("") - is_valid := False - end - t.remove_head (q) - q := t.index_of ('#', 1) - if q > 0 then - set_query (t.substring (1, q - 1)) - t.remove_head (q) - set_fragment (t) - else - set_query (t) - end - else - if is_valid_in_uri_string (t) then - set_path (t) - else - set_path ("") - is_valid := False - end - end - else - set_path ("") - end - else - set_scheme ("") - set_hostname (Void) - set_path ("") - end - if is_valid then - check_validity (True) - end - ensure - same_if_valid: is_valid and not is_corrected implies a_string.starts_with (string) - end - -feature -- Basic operation - - check_validity (a_fixing: BOOLEAN) - -- Check validity of URI - -- If `a_fixing' is True, attempt to correct input URI. - local - s: STRING_8 - do - -- check scheme - -- TODO: RFC3986: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - if not is_valid_scheme (scheme) then - is_valid := False - end - - -- check userinfo - -- TODO: RFC3986: userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) - if not is_valid_userinfo (userinfo) then - is_valid := False - end - - -- check host - -- TODO: RFC3986: host = IP-literal / IPv4address / reg-name - if not is_valid_host (host) then - is_valid := False - end - - -- Check path - -- TODO: no space, all character well escaped, ... - if path.has (' ') then - -- Fix bad URI - if a_fixing then - create s.make_from_string (path) - s.replace_substring_all (" ", "%%20") - set_path (s) - is_corrected := True - end - end - if not is_valid_path (path) then - is_valid := False - end - - -- Check query - -- TODO: no space, all character well escaped, ... - if attached query as q then - if q.has (' ') then - -- Fix bad URI - if a_fixing then - create s.make_from_string (q) - s.replace_substring_all (" ", "%%20") - set_query (s) - is_corrected := True - else - is_valid := False - end - end - end - if not is_valid_query (query) then - is_valid := True - end - - -- Check fragment - if not is_valid_fragment (fragment) then - is_valid := False - end - end - -feature -- Status - - is_valid: BOOLEAN - -- Is Current valid? - - is_corrected: BOOLEAN - -- Is Current valid after eventual correction? - - has_authority: BOOLEAN - do - Result := host /= Void - end - - has_query: BOOLEAN - do - Result := query /= Void - end - - has_path: BOOLEAN - do - Result := not path.is_empty - end - - has_fragment: BOOLEAN - do - Result := fragment /= Void - end - -feature -- Access - - scheme: IMMUTABLE_STRING_8 - -- Scheme name. - --| scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - - userinfo: detachable IMMUTABLE_STRING_8 - -- User information. - --| username:password - --| RFC3986: userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) - - host: detachable IMMUTABLE_STRING_8 - -- Host name. - --| RFC3986: host = IP-literal / IPv4address / reg-name - - port: INTEGER - -- Associated port, if `0' this is not defined. - -- RFC3986: port = *DIGIT - - path: IMMUTABLE_STRING_8 - -- Path component containing data, usually organized in hierarchical form. - - query: detachable IMMUTABLE_STRING_8 - -- Query string. - - fragment: detachable IMMUTABLE_STRING_8 - -- The fragment identifier component of a URI allows indirect - -- identification of a secondary resource by reference to a primary - -- resource and additional identifying information. - -feature -- Access - - decoded_path: READABLE_STRING_32 - -- Decoded `path' - local - s: STRING_32 - do - create s.make (path.count) - append_decoded_www_form_urlencoded_string_to (path, s) - Result := s - end - - path_segments: LIST [READABLE_STRING_8] - -- Segments composing `path'. - do - Result := path.split ('/') - end - - decoded_path_segments: LIST [READABLE_STRING_32] - -- Decoded Segments composing `path'. - local - lst: like path_segments - do - lst := path_segments - create {ARRAYED_LIST [READABLE_STRING_32]} Result.make (lst.count) - across - lst as e - loop - Result.force (decoded_www_form_urlencoded_string (e.item)) - end - end - - query_items: detachable LIST [TUPLE [name: READABLE_STRING_8; value: detachable READABLE_STRING_8]] - -- Query items composing the `query'. - local - lst: LIST [READABLE_STRING_8] - i: INTEGER - do - if attached query as q then - lst := q.split ('&') - create {ARRAYED_LIST [like query_items.item]} Result.make (lst.count) - across - lst as e - loop - i := e.item.index_of ('=', 1) - if i > 0 then - Result.force ([e.item.substring (1, i - 1), e.item.substring (i + 1, e.item.count)]) - else - Result.force ([e.item, Void]) - end - end - end - end - - decoded_query_items: detachable LIST [TUPLE [name: READABLE_STRING_32; value: detachable READABLE_STRING_32]] - -- Decoded query items composing the `query'. - do - if attached query_items as lst then - create {ARRAYED_LIST [like decoded_query_items.item]} Result.make (lst.count) - across - lst as e - loop - if attached e.item.value as l_val then - Result.force ([decoded_www_form_urlencoded_string (e.item.name), decoded_www_form_urlencoded_string (l_val)]) - else - Result.force ([decoded_www_form_urlencoded_string (e.item.name), Void]) - end - end - end - end - -feature -- Query - - hier: READABLE_STRING_8 - -- Hier part. - -- hier-part = "//" authority path-abempty - -- / path-absolute - -- / path-rootless - -- / path-empty - local - s: STRING_8 - do - create s.make (10) - if attached authority as l_authority then - s.append_character ('/') - s.append_character ('/') - s.append (l_authority) - end - s.append (path) - Result := s - end - - username_password: detachable TUPLE [username: READABLE_STRING_8; password: detachable READABLE_STRING_8] - -- Username and password value extrated from `userinfo'. - --| userinfo = username:password - local - i: INTEGER - u,p: detachable READABLE_STRING_8 - do - if attached userinfo as t then - i := t.index_of (':', 1) - if i > 0 then - p := t.substring (i + 1, t.count) - u := t.substring (1, i - 1) - else - u := t - p := Void - end - Result := [u, p] - end - end - - username: detachable READABLE_STRING_8 - -- Eventual username. - do - if attached username_password as up then - Result := up.username - end - end - - password: detachable READABLE_STRING_8 - -- Eventual password. - do - if attached username_password as up then - Result := up.password - end - end - - authority: detachable READABLE_STRING_8 - -- Hierarchical element for naming authority. - --| RFC3986: authority = [ userinfo "@" ] host [ ":" port ] - local - s: STRING_8 - do - if attached host as h then - if attached userinfo as u then - create s.make_from_string (u) - s.append_character ('@') - s.append (h) - else - create s.make_from_string (h) - end - if port /= 0 then - s.append_character (':') - s.append_integer (port) - end - Result := s - else - check not is_valid or else (userinfo = Void and port = 0) end - end - end - -feature -- Conversion - - string: READABLE_STRING_8 - -- String representation. - -- scheme://username:password@hostname/path?query#fragment - local - s: STRING_8 - do - if attached scheme as l_scheme and then not l_scheme.is_empty then - create s.make_from_string (l_scheme) - s.append_character (':') - else - create s.make_empty - end - s.append (hier) - if attached query as q then - s.append_character ('?') - s.append (q) - end - if attached fragment as f then - s.append_character ('#') - s.append (f) - end - Result := s - end - - resolved_uri: URI - -- Resolved URI, i.e remove segment-component from `path' - local - p: STRING_8 - lst: like path_segments - l_first: BOOLEAN - do - from - lst := path_segments - lst.start - until - lst.off - loop - if lst.item.same_string (".") then - lst.remove - elseif lst.item.same_string ("..") then - lst.back - if not lst.before then - lst.remove - lst.remove - else - lst.forth - lst.remove - end - else - lst.forth - end - end - create p.make (path.count) - l_first := True - across - lst as c - loop - if l_first then - l_first := False - else - p.append_character ('/') - end - p.append (c.item) - end - if p.is_empty then - else - if p.item (1) /= '/' then - if not path.is_empty and then path.item (1) = '/' then - p.prepend_character ('/') - end - end - end - create Result.make_from_string (string) - Result.set_path (p) - end - -feature -- Comparison - - is_same_uri (a_uri: URI): BOOLEAN - -- Is `a_uri' same as Current ? - --| See http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_unreserved_characters - do - Result := decoded_www_form_urlencoded_string (string).same_string (decoded_www_form_urlencoded_string (a_uri.string)) - end - -feature -- Element Change - - set_scheme (v: READABLE_STRING_8) - -- Set `scheme' to `v' - require - is_valid_scheme (v) - do - create scheme.make_from_string (v) - ensure - scheme_set: scheme.same_string (v) - end - - set_userinfo (v: detachable READABLE_STRING_8) - require - is_valid_userinfo (v) - do - if v = Void then - userinfo := Void - else - create userinfo.make_from_string (v.as_string_8) - end - ensure - userinfo_set: is_same_string (v, userinfo) - end - - set_hostname (v: detachable READABLE_STRING_8) - -- Set `host' to `v' - require - is_valid_host (v) - do - if v = Void then - host := Void - else - create host.make_from_string (v) - end - ensure - hostname_set: is_same_string (v, host) - end - - set_port (v: like port) - -- Set `port' to `v' - do - port := v - ensure - port_set: port = v - end - - set_path (a_path: READABLE_STRING_8) - -- Set `path' to `a_path' - require - is_valid_path (a_path) - do - create path.make_from_string (a_path) - ensure - path_set: path.same_string_general (a_path) - end - - set_query (v: detachable READABLE_STRING_8) - -- Set `query' to `v' - require - is_valid_query (v) - do - if v = Void then - query := Void - else - create query.make_from_string (v) - end - ensure - query_set: is_same_string (v, query) - end - - set_fragment (v: detachable READABLE_STRING_8) - -- Set `fragment' to `v' - require - is_valid_fragment (v) - do - if v = Void then - fragment := Void - else - create fragment.make_from_string (v) - end - ensure - fragment_set: is_same_string (v, fragment) - end - -feature -- Change: query - - remove_query - -- Remove query from Current URI - do - query := Void - end - - add_query_parameter (a_name: READABLE_STRING_GENERAL; a_value: detachable READABLE_STRING_GENERAL) - -- Add non percent-encoded parameters - local - q: detachable STRING - do - if attached query as l_query then - create q.make_from_string (l_query) - else - create q.make_empty - end - if not q.is_empty then - q.append_character ('&') - end - - q.append (www_form_urlencoded_string (a_name)) - if a_value /= Void then - q.append_character ('=') - q.append (www_form_urlencoded_string (a_value)) - end - create query.make_from_string (q) - end - - add_query_parameters (lst: ITERABLE [TUPLE [name: READABLE_STRING_GENERAL; value: detachable READABLE_STRING_GENERAL]]) - -- Add non percent-encoded parameters from manifest - do - across - lst as c - loop - add_query_parameter (c.item.name, c.item.value) - end - end - - add_query_parameters_from_table (tb: TABLE_ITERABLE [detachable READABLE_STRING_GENERAL, READABLE_STRING_GENERAL]) - -- Add non percent-encoded parameters from table - do - across - tb as c - loop - add_query_parameter (c.key, c.item) - end - end - -feature -- Status report - - is_valid_scheme (s: READABLE_STRING_GENERAL): BOOLEAN - -- scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - local - i,n: INTEGER - c: CHARACTER_32 - do - if s.is_empty then - Result := False -- Check for URI-reference .. - else - from - i := 1 - n := s.count - Result := is_alpha_character (string_item (s, i)) - i := 2 - until - not Result or i > n - loop - c := string_item (s, i) - Result := is_alpha_or_digit_character (c) or c = '+' or c = '-' or c = '.' - i := i + 1 - end - end - end - - is_valid_userinfo (s: detachable READABLE_STRING_GENERAL): BOOLEAN - -- userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) - local - i,n: INTEGER - c: CHARACTER_32 - do - Result := True - if s /= Void then - from - i := 1 - n := s.count - until - not Result or i > n - loop - c := string_item (s, i) - -- unreserved - if is_unreserved_character (c) - or is_sub_delims_character (c) - or c = ':' - then - -- True - elseif c = '%%' then - if - i + 2 <= n and then - is_hexa_decimal_character (string_item (s, i+ 1)) and is_hexa_decimal_character (string_item (s, i + 2)) - then - -- True - i := i + 2 - else - Result := False - end - else - Result := False - end - i := i + 1 - end - end - end - - is_valid_host (s: detachable READABLE_STRING_GENERAL): BOOLEAN - -- host = IP-literal / IPv4address / reg-name - -- IP-literal = "[" ( IPv6address / IPvFuture ) "]" - -- IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" ) - -- IPv6address = 6( h16 ":" ) ls32 - -- / "::" 5( h16 ":" ) ls32 - -- / [ h16 ] "::" 4( h16 ":" ) ls32 - -- / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 - -- / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 - -- / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 - -- / [ *4( h16 ":" ) h16 ] "::" ls32 - -- / [ *5( h16 ":" ) h16 ] "::" h16 - -- / [ *6( h16 ":" ) h16 ] "::" - -- - -- ls32 = ( h16 ":" h16 ) / IPv4address - -- ; least-significant 32 bits of address - -- - -- h16 = 1*4HEXDIG - -- ; 16 bits of address represented in hexadecimal - -- - -- IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet - -- - -- dec-octet = DIGIT ; 0-9 - -- / %x31-39 DIGIT ; 10-99 - -- / "1" 2DIGIT ; 100-199 - -- / "2" %x30-34 DIGIT ; 200-249 - -- / "25" %x30-35 ; 250-255 - -- - -- reg-name = *( unreserved / pct-encoded / sub-delims ) - do - Result := True - if s /= Void and then not s.is_empty then - if string_item (s, 1) = '[' and string_item (s, s.count) = ']' then - Result := True -- IPV6 : to complete - else - Result := is_hexa_decimal_character (string_item (s, 1)) -- IPV4 or reg-name : to complete - end - end - end - - is_valid_path (s: READABLE_STRING_GENERAL): BOOLEAN - -- path = path-abempty ; begins with "/" or is empty - -- / path-absolute ; begins with "/" but not "//" - -- / path-noscheme ; begins with a non-colon segment - -- / path-rootless ; begins with a segment - -- / path-empty ; zero characters - -- - -- path-abempty = *( "/" segment ) - -- path-absolute = "/" [ segment-nz *( "/" segment ) ] - -- path-noscheme = segment-nz-nc *( "/" segment ) - -- path-rootless = segment-nz *( "/" segment ) - -- path-empty = 0 - -- segment = *pchar - -- segment-nz = 1*pchar - -- segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) - -- ; non-zero-length segment without any colon ":" - -- - -- pchar = unreserved / pct-encoded / sub-delims / ":" / "@" - do - if s.is_empty or string_item (s, 1) = '/' then - Result := is_valid_in_uri_string (s) - elseif has_authority then - if string_item (s, 1) = '/' and (s.count > 1 implies string_item (s, 2) /= '/') then - Result := is_valid_in_uri_string (s) - end - elseif s.is_empty then - Result := True - else - Result := is_valid_in_uri_string (s) - end - -- TO COMPLETE - end - - is_valid_query (s: detachable READABLE_STRING_GENERAL): BOOLEAN - -- query = *( pchar / "/" / "?" ) - local - i,n: INTEGER - c: CHARACTER_32 - do - Result := True - if s /= Void then - from - i := 1 - n := s.count - until - not Result or i > n - loop - c := string_item (s, i) - -- pchar = unreserved / pct-encoded / sub-delims / ":" / "@" - if -- pchar - is_unreserved_character (c) - or is_sub_delims_character (c) - or c = ':' or c = '@' - then - Result := True - elseif c = '/' or c = '?' then - Result := True - elseif c = '%%' then - if - i + 2 <= n and then - is_hexa_decimal_character (string_item (s, i + 1)) and is_hexa_decimal_character (string_item (s, i + 2)) - then - -- True - i := i + 2 - else - Result := False - end - else - Result := False - end - i := i + 1 - end - end - end - - is_valid_fragment (s: detachable READABLE_STRING_GENERAL): BOOLEAN - --fragment = *( pchar / "/" / "?" ) - local - i,n: INTEGER - c: CHARACTER_32 - do - Result := True - if s /= Void then - from - i := 1 - n := s.count - until - not Result or i > n - loop - c := string_item (s, i) - -- pchar = unreserved / pct-encoded / sub-delims / ":" / "@" - if -- pchar - is_unreserved_character (c) - or is_sub_delims_character (c) - or c = ':' or c = '@' - then - Result := True - elseif c = '/' or c = '?' then - Result := True - elseif c = '%%' then - if - i + 2 <= n and then - is_alpha_or_digit_character (string_item (s, i + 1)) and is_alpha_or_digit_character (string_item (s, i + 2)) - then - i := i + 2 - else - Result := False - end - else - Result := False - end - i := i + 1 - end - end - end - -feature -- Helper - - string_item (s: READABLE_STRING_GENERAL; i: INTEGER): CHARACTER_32 - do - Result := s.code (i).to_character_32 - end - - append_www_form_urlencoded_string_to (a_string: READABLE_STRING_GENERAL; a_target: STRING_GENERAL) - -- The application/x-www-form-urlencoded encoded string for `a_string'. - -- character encoding is UTF-8. - -- See http://www.w3.org/TR/html5/forms.html#url-encoded-form-data - do - append_percent_encoded_string_to (a_string, a_target) - end - - www_form_urlencoded_string (a_string: READABLE_STRING_GENERAL): STRING_8 - -- The application/x-www-form-urlencoded encoded string for `a_string'. - -- character encoding is UTF-8. - -- See http://www.w3.org/TR/html5/forms.html#url-encoded-form-data - do - create Result.make (a_string.count) - append_percent_encoded_string_to (a_string, Result) - end - - append_decoded_www_form_urlencoded_string_to (a_string: READABLE_STRING_GENERAL; a_target: STRING_GENERAL) - -- The string decoded from application/x-www-form-urlencoded encoded string `a_string'. - -- character encoding is UTF-8. - -- See http://www.w3.org/TR/html5/forms.html#url-encoded-form-data - do - append_percent_decoded_string_to (a_string, a_target) - end - - decoded_www_form_urlencoded_string (a_string: READABLE_STRING_GENERAL): STRING_32 - -- The string decoded from application/x-www-form-urlencoded encoded string `a_string'. - -- character encoding is UTF-8. - -- See http://www.w3.org/TR/html5/forms.html#url-encoded-form-data - do - create Result.make (a_string.count) - append_percent_decoded_string_to (a_string, Result) - end - -feature -- Assertion helper - - is_valid_in_uri_string (s: READABLE_STRING_GENERAL): BOOLEAN - -- Is `s' composed only of ASCII character? - local - i,n: INTEGER - do - from - Result := True - i := 1 - n := s.count - until - not Result or i > n - loop - if s.code (i) > 0x7F then - Result := False - end - i := i + 1 - end - end - - is_same_string (s1, s2: detachable READABLE_STRING_GENERAL): BOOLEAN - -- `s1' and `s2' have same string content? - do - if s1 = Void then - Result := s2 = Void - elseif s2 = Void then - Result := False - else - Result := s1.same_string (s2) - end - end - -feature -- Status report - - debug_output: STRING - -- String that should be displayed in debugger to represent `Current'. - local - s: STRING - do - create s.make_empty - s.append (string) - Result := s - end - -;note - copyright: "Copyright (c) 1984-2013, Eiffel Software and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - source: "[ - Eiffel Software - 5949 Hollister Ave., Goleta, CA 93117 USA - Telephone 805-685-1006, Fax 805-685-6869 - Website http://www.eiffel.com - Customer support http://support.eiffel.com - ]" -end diff --git a/contrib/ise_library/text/uri/uri-safe.ecf b/contrib/ise_library/text/uri/uri-safe.ecf deleted file mode 100644 index 7ae5299d..00000000 --- a/contrib/ise_library/text/uri/uri-safe.ecf +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - /.git$ - /EIFGENs$ - /.svn$ - - - - - - - diff --git a/contrib/ise_library/text/uri/uri.ecf b/contrib/ise_library/text/uri/uri.ecf deleted file mode 100644 index c92ba12d..00000000 --- a/contrib/ise_library/text/uri/uri.ecf +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - /.git$ - /EIFGENs$ - /.svn$ - - - - - - - diff --git a/draft/application/cms/cms-safe.ecf b/draft/application/cms/cms-safe.ecf index 51accbb1..e7df2d67 100644 --- a/draft/application/cms/cms-safe.ecf +++ b/draft/application/cms/cms-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,14 +7,13 @@ /CVS$ /.svn$ - - @@ -22,6 +21,7 @@ + diff --git a/draft/application/cms/example/demo.rc b/draft/application/cms/example/demo.rc new file mode 100644 index 00000000..b0ec159c --- /dev/null +++ b/draft/application/cms/example/demo.rc @@ -0,0 +1,6 @@ +#include + +STRINGTABLE +BEGIN + 1 "This Program was made using EiffelStudio using Visual Studio C++" +END diff --git a/draft/library/security/oauth/oauth-safe.ecf b/draft/library/security/oauth/oauth-safe.ecf index 62e5bc4f..ab8706f5 100644 --- a/draft/library/security/oauth/oauth-safe.ecf +++ b/draft/library/security/oauth/oauth-safe.ecf @@ -1,5 +1,5 @@ - + @@ -9,7 +9,7 @@ - - + + diff --git a/examples/restbucksCRUD/restbucks-safe.ecf b/examples/restbucksCRUD/restbucks-safe.ecf index 26e51b11..4c54445f 100644 --- a/examples/restbucksCRUD/restbucks-safe.ecf +++ b/examples/restbucksCRUD/restbucks-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,7 +7,7 @@ /\.git$ /\.svn$ - @@ -19,8 +19,8 @@ - + diff --git a/library/network/http_client/http_client-safe.ecf b/library/network/http_client/http_client-safe.ecf index 34db8bfd..f1d90a8d 100644 --- a/library/network/http_client/http_client-safe.ecf +++ b/library/network/http_client/http_client-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,10 +7,9 @@ /EIFGENs$ /.svn$ - - @@ -22,6 +21,7 @@ + diff --git a/library/network/protocol/CONNEG/conneg-safe.ecf b/library/network/protocol/CONNEG/conneg-safe.ecf index 3be360c7..42207d69 100644 --- a/library/network/protocol/CONNEG/conneg-safe.ecf +++ b/library/network/protocol/CONNEG/conneg-safe.ecf @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ - - + + diff --git a/library/network/protocol/http/http-safe.ecf b/library/network/protocol/http/http-safe.ecf index 93ad8e1a..024bdb8c 100644 --- a/library/network/protocol/http/http-safe.ecf +++ b/library/network/protocol/http/http-safe.ecf @@ -1,5 +1,5 @@ - + diff --git a/library/security/openid/consumer/openid-safe.ecf b/library/security/openid/consumer/openid-safe.ecf index b68c1f4a..70e590a7 100644 --- a/library/security/openid/consumer/openid-safe.ecf +++ b/library/security/openid/consumer/openid-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,14 +7,14 @@ /EIFGENs$ /.svn$ - - + - + + - - + diff --git a/library/security/openid/consumer/openid.ecf b/library/security/openid/consumer/openid.ecf index 822d2df7..d9d3b72f 100644 --- a/library/security/openid/consumer/openid.ecf +++ b/library/security/openid/consumer/openid.ecf @@ -11,7 +11,7 @@ - + diff --git a/library/server/authentication/http_authorization/http_authorization-safe.ecf b/library/server/authentication/http_authorization/http_authorization-safe.ecf index 247bb953..e5282ae4 100644 --- a/library/server/authentication/http_authorization/http_authorization-safe.ecf +++ b/library/server/authentication/http_authorization/http_authorization-safe.ecf @@ -1,5 +1,5 @@ - + @@ -9,8 +9,8 @@ - + - + diff --git a/library/server/ewf_support/ewf_support-safe.ecf b/library/server/ewf_support/ewf_support-safe.ecf index dfe77fe2..c31ae934 100644 --- a/library/server/ewf_support/ewf_support-safe.ecf +++ b/library/server/ewf_support/ewf_support-safe.ecf @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ - + diff --git a/library/server/ewsgi/connectors/cgi/cgi-safe.ecf b/library/server/ewsgi/connectors/cgi/cgi-safe.ecf index 9ad9cd54..ef1e2700 100644 --- a/library/server/ewsgi/connectors/cgi/cgi-safe.ecf +++ b/library/server/ewsgi/connectors/cgi/cgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,11 +7,11 @@ /\.git$ /\.svn$ - - + diff --git a/library/server/ewsgi/connectors/libfcgi/libfcgi-safe.ecf b/library/server/ewsgi/connectors/libfcgi/libfcgi-safe.ecf index 48582c1c..689dcbf5 100644 --- a/library/server/ewsgi/connectors/libfcgi/libfcgi-safe.ecf +++ b/library/server/ewsgi/connectors/libfcgi/libfcgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,12 +7,12 @@ /\.git$ /\.svn$ - + - diff --git a/library/server/ewsgi/connectors/null/null-safe.ecf b/library/server/ewsgi/connectors/null/null-safe.ecf index 5039c428..0f7da040 100644 --- a/library/server/ewsgi/connectors/null/null-safe.ecf +++ b/library/server/ewsgi/connectors/null/null-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,11 +7,11 @@ /\.git$ /\.svn$ - - + diff --git a/library/server/ewsgi/ewsgi-safe.ecf b/library/server/ewsgi/ewsgi-safe.ecf index dbf0c5d8..e2979ff7 100644 --- a/library/server/ewsgi/ewsgi-safe.ecf +++ b/library/server/ewsgi/ewsgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -10,15 +10,15 @@ - - - + + + - - - - - + + + + + diff --git a/library/server/ewsgi/ewsgi_spec-safe.ecf b/library/server/ewsgi/ewsgi_spec-safe.ecf index 695a3356..32ac76f1 100644 --- a/library/server/ewsgi/ewsgi_spec-safe.ecf +++ b/library/server/ewsgi/ewsgi_spec-safe.ecf @@ -1,5 +1,5 @@ - + diff --git a/library/server/ewsgi/specification/response/wgi_logger_response.e b/library/server/ewsgi/specification/response/wgi_logger_response.e index cee92fab..39f6195a 100644 --- a/library/server/ewsgi/specification/response/wgi_logger_response.e +++ b/library/server/ewsgi/specification/response/wgi_logger_response.e @@ -25,9 +25,9 @@ feature {NONE} -- Initialization make_with_response_and_output (res: WGI_RESPONSE; a_out: FILE; a_err: FILE) do - make_with_response (res) output := a_out error := a_err + make_with_response (res) end output: FILE @@ -104,7 +104,7 @@ feature -- Error reporting end note - copyright: "2011-2012, Jocelyn Fiat, Javier Velilla, Eiffel Software and others" + copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software diff --git a/library/server/libfcgi/libfcgi-safe.ecf b/library/server/libfcgi/libfcgi-safe.ecf index 22641f08..fe797bfe 100644 --- a/library/server/libfcgi/libfcgi-safe.ecf +++ b/library/server/libfcgi/libfcgi-safe.ecf @@ -1,14 +1,13 @@ - + - /\.svn$ - /\.git$ /EIFGENs$ + /\.git$ + /\.svn$ - - @@ -31,8 +30,7 @@ - - + /linux$ /fake$ @@ -41,12 +39,13 @@ - /windows$ /fake$ + /windows$ + diff --git a/library/server/wsf/connector/cgi-safe.ecf b/library/server/wsf/connector/cgi-safe.ecf index 9f70e84a..bd1d9f5f 100644 --- a/library/server/wsf/connector/cgi-safe.ecf +++ b/library/server/wsf/connector/cgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -10,13 +10,13 @@ - - - - - - + - + + + + + + diff --git a/library/server/wsf/connector/libfcgi-safe.ecf b/library/server/wsf/connector/libfcgi-safe.ecf index 7228eaa5..63bbc68b 100644 --- a/library/server/wsf/connector/libfcgi-safe.ecf +++ b/library/server/wsf/connector/libfcgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -10,13 +10,13 @@ - - - - - - + - + + + + + + diff --git a/library/server/wsf/connector/nino-safe.ecf b/library/server/wsf/connector/nino-safe.ecf index a81f2fb7..5b3c13ee 100644 --- a/library/server/wsf/connector/nino-safe.ecf +++ b/library/server/wsf/connector/nino-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,20 +7,19 @@ /\.git$ /\.svn$ - - - - - + + + + + - - - - - + + + diff --git a/library/server/wsf/default/cgi-safe.ecf b/library/server/wsf/default/cgi-safe.ecf index ed590547..6034e626 100644 --- a/library/server/wsf/default/cgi-safe.ecf +++ b/library/server/wsf/default/cgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,10 +7,11 @@ /\.git$ /\.svn$ - - - - + + + diff --git a/library/server/wsf/default/libfcgi-safe.ecf b/library/server/wsf/default/libfcgi-safe.ecf index 4b6a9804..24a3a7fe 100644 --- a/library/server/wsf/default/libfcgi-safe.ecf +++ b/library/server/wsf/default/libfcgi-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,10 +7,11 @@ /\.git$ /\.svn$ - - - - + + + diff --git a/library/server/wsf/default/nino-safe.ecf b/library/server/wsf/default/nino-safe.ecf index 8befe07f..94ac1a05 100644 --- a/library/server/wsf/default/nino-safe.ecf +++ b/library/server/wsf/default/nino-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,10 +7,11 @@ /\.git$ /\.svn$ - - - - + + + diff --git a/library/server/wsf/wsf-safe.ecf b/library/server/wsf/wsf-safe.ecf index 4fb23bbf..06b6121b 100644 --- a/library/server/wsf/wsf-safe.ecf +++ b/library/server/wsf/wsf-safe.ecf @@ -1,5 +1,5 @@ - + diff --git a/library/server/wsf/wsf_extension-safe.ecf b/library/server/wsf/wsf_extension-safe.ecf index 5a46b2b5..7a111faa 100644 --- a/library/server/wsf/wsf_extension-safe.ecf +++ b/library/server/wsf/wsf_extension-safe.ecf @@ -1,5 +1,5 @@ - + @@ -9,11 +9,11 @@ - - + + - + diff --git a/library/server/wsf/wsf_router_context-safe.ecf b/library/server/wsf/wsf_router_context-safe.ecf index 91b84d36..208b6ff0 100644 --- a/library/server/wsf/wsf_router_context-safe.ecf +++ b/library/server/wsf/wsf_router_context-safe.ecf @@ -1,5 +1,5 @@ - + @@ -11,6 +11,6 @@ - + diff --git a/library/server/wsf/wsf_session-safe.ecf b/library/server/wsf/wsf_session-safe.ecf index b94c5e7a..7a849c69 100644 --- a/library/server/wsf/wsf_session-safe.ecf +++ b/library/server/wsf/wsf_session-safe.ecf @@ -1,5 +1,5 @@ - + @@ -9,12 +9,12 @@ - - - - + + + + - + diff --git a/library/server/wsf_html/wsf_html-safe.ecf b/library/server/wsf_html/wsf_html-safe.ecf index f26bc29b..e1b2baca 100644 --- a/library/server/wsf_html/wsf_html-safe.ecf +++ b/library/server/wsf_html/wsf_html-safe.ecf @@ -1,5 +1,5 @@ - + @@ -9,13 +9,13 @@ - - - - - - - - + + + + + + + + diff --git a/library/text/encoder/encoder-safe.ecf b/library/text/encoder/encoder-safe.ecf index 513e1e4e..9bd23d7e 100644 --- a/library/text/encoder/encoder-safe.ecf +++ b/library/text/encoder/encoder-safe.ecf @@ -1,5 +1,5 @@ - + diff --git a/library/text/parser/uri_template/uri_template-safe.ecf b/library/text/parser/uri_template/uri_template-safe.ecf index fb501669..a1949747 100644 --- a/library/text/parser/uri_template/uri_template-safe.ecf +++ b/library/text/parser/uri_template/uri_template-safe.ecf @@ -1,5 +1,5 @@ - + @@ -7,11 +7,11 @@ /EIFGENs$ /.svn$ - - + diff --git a/library/utility/general/error/error-safe.ecf b/library/utility/general/error/error-safe.ecf index e6da0b5a..563455bc 100644 --- a/library/utility/general/error/error-safe.ecf +++ b/library/utility/general/error/error-safe.ecf @@ -1,5 +1,5 @@ - + diff --git a/precomp/wsf-mt-safe.ecf b/precomp/wsf-mt-safe.ecf index 460ffd13..83840fe8 100644 --- a/precomp/wsf-mt-safe.ecf +++ b/precomp/wsf-mt-safe.ecf @@ -1,11 +1,11 @@ - + - - - + + diff --git a/precomp/wsf-safe.ecf b/precomp/wsf-safe.ecf index 7866c305..26b22c52 100644 --- a/precomp/wsf-safe.ecf +++ b/precomp/wsf-safe.ecf @@ -1,10 +1,10 @@ - + - - + diff --git a/precomp/wsf-scoop-safe.ecf b/precomp/wsf-scoop-safe.ecf index 621ed9eb..db64e5e0 100644 --- a/precomp/wsf-scoop-safe.ecf +++ b/precomp/wsf-scoop-safe.ecf @@ -1,11 +1,11 @@ - + - - + diff --git a/tests/all-safe.ecf b/tests/all-safe.ecf index 6d973ec5..b4c74b34 100644 --- a/tests/all-safe.ecf +++ b/tests/all-safe.ecf @@ -1,5 +1,5 @@ - + Integration project including many lib @@ -8,58 +8,55 @@ /EIFGENs$ /.svn$ - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compiling as Windows , on other platforms than Windows