From 35729b4ab6b55ffeea015b7465471a339b52f29e Mon Sep 17 00:00:00 2001 From: Olivier Ligot Date: Mon, 27 May 2013 09:15:12 +0200 Subject: [PATCH 1/8] Use port number 9090 instead of 80 Port 80 is often already used by standard webservers (Apache, nginx, ...). Moreover, on Linux, ports below 1024 can only be opened by root. --- examples/simple/application.e | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/examples/simple/application.e b/examples/simple/application.e index 532ddbfd..159f0cf4 100644 --- a/examples/simple/application.e +++ b/examples/simple/application.e @@ -8,12 +8,23 @@ class inherit WSF_DEFAULT_SERVICE + redefine + initialize + end create make_and_launch feature {NONE} -- Initialization + initialize + -- Initialize current service. + do + set_service_option ("port", 9090) + end + +feature -- Basic operations + execute (req: WSF_REQUEST; res: WSF_RESPONSE) do -- To send a response we need to setup, the status code and From eab8df7e104e85ddad8570b07fd45fbc480e0523 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 28 May 2013 14:42:11 +0200 Subject: [PATCH 2/8] Added WSF_REQUEST.read_input_data_into_file (FILE) --- .../src/http_client_request_context.e | 4 +- .../specification/stream/wgi_input_stream.e | 40 +++++++++++++++++ library/server/wsf/src/wsf_request.e | 43 ++++++++++++++++++- 3 files changed, 84 insertions(+), 3 deletions(-) diff --git a/library/network/http_client/src/http_client_request_context.e b/library/network/http_client/src/http_client_request_context.e index 663c6a57..5d30d2c3 100644 --- a/library/network/http_client/src/http_client_request_context.e +++ b/library/network/http_client/src/http_client_request_context.e @@ -151,14 +151,14 @@ feature -- Element change set_upload_data (a_data: like upload_data) require - has_no_upload_data: not has_upload_data + has_no_upload_data: a_data /= Void implies not has_upload_data do upload_data := a_data end set_upload_filename (a_fn: like upload_filename) require - has_no_upload_filename: not has_upload_filename + has_no_upload_filename: a_fn /= Void implies not has_upload_filename do upload_filename := a_fn end diff --git a/library/server/ewsgi/specification/stream/wgi_input_stream.e b/library/server/ewsgi/specification/stream/wgi_input_stream.e index d5c6b4dc..51ccee50 100644 --- a/library/server/ewsgi/specification/stream/wgi_input_stream.e +++ b/library/server/ewsgi/specification/stream/wgi_input_stream.e @@ -123,6 +123,46 @@ feature -- Input character_read: not end_of_input implies last_appended_count > 0 end + append_to_file (a_file: FILE; nb: INTEGER) + -- Append at most `nb' characters read from input stream + -- to `a_file' + -- Set `last_appended_count' to the number of characters actually read. + -- (Note that even if at least `nb' characters are available + -- in the input stream, there is no guarantee that they + -- will all be read.) + require + is_open_read: is_open_read + not_end_of_input: not end_of_input + a_file_attached: a_file /= Void + a_file_is_open_write: a_file.is_open_write + nb_large_enough: nb > 0 + local + i, end_pos: INTEGER + l_count: INTEGER + do + from + i := a_string.count + 1 + end_pos := i + nb - 1 + until + i > end_pos + loop + read_character + a_file.put_character (last_character) + l_count := l_count + 1 + if end_of_input then + -- Jump out of the loop. + i := end_pos + 1 + else + i := i + 1 + end + end + last_appended_count := l_count + ensure + nb_char_read_large_enough: last_appended_count >= 0 + nb_char_read_small_enough: last_appended_count <= nb + character_read: not end_of_input implies last_appended_count > 0 + end + feature -- Access last_string: STRING_8 diff --git a/library/server/wsf/src/wsf_request.e b/library/server/wsf/src/wsf_request.e index 790bc2ed..a59a839d 100644 --- a/library/server/wsf/src/wsf_request.e +++ b/library/server/wsf/src/wsf_request.e @@ -208,7 +208,7 @@ feature -- Access: Input from n := 8_192 until - n = 0 + n = 0 or l_input.end_of_input loop l_input.append_to_string (buf, n) if l_input.last_appended_count < n then @@ -229,6 +229,47 @@ feature -- Access: Input end end + read_input_data_into_file (a_file: FILE) + -- retrieve the content from the `input' stream into `s' + -- warning: if the input data has already been retrieved + -- you might not get anything + require + a_file_is_open_write: a_file.is_open_write + local + s: STRING + l_input: WGI_INPUT_STREAM + l_raw_data: detachable STRING_8 + n: INTEGER + do + if raw_input_data_recorded and then attached raw_input_data as d then + a_file.put_string (d) + else + if raw_input_data_recorded then + create l_raw_data.make_empty + end + l_input := input + from + n := 8_192 + create s.make (n) + until + n = 0 or l_input.end_of_input + loop + l_input.append_to_string (s, n) + a_file.put_string (s) + if l_raw_data /= Void then + l_raw_data.append (s) + end + s.wipe_out + if l_input.last_appended_count < n then + n := 0 + end + end + if l_raw_data /= Void then + set_raw_input_data (l_raw_data) + end + end + end + feature -- Helper is_request_method (m: READABLE_STRING_GENERAL): BOOLEAN From 401bbc657af801ca51493d139a552046ce3d1a13 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 28 May 2013 15:04:04 +0200 Subject: [PATCH 3/8] update cms style --- .../application/cms/www/themes/test/res/style.css | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/draft/application/cms/www/themes/test/res/style.css b/draft/application/cms/www/themes/test/res/style.css index 6ce3435a..deb06a83 100644 --- a/draft/application/cms/www/themes/test/res/style.css +++ b/draft/application/cms/www/themes/test/res/style.css @@ -70,8 +70,18 @@ div#main-wrapper { } div#main { margin: 0; padding: 0; clear: both; height:0; display: block; } +div#content { padding: 5px 3px 5px 20px; + margin-top: 10px; + min-width: 80%; + display: inline; + float: left; + position: relative; + background-color: #ffffff; + padding-bottom: 30px; +} + div#first_sidebar { - width: 20%; + width: 200px; margin: 5px; padding: 5px; display: inline; @@ -79,7 +89,7 @@ div#first_sidebar { position: relative; } div#second_sidebar { - width: 20%; + width: 100px; margin: 5px; padding: 5px; display: inline; From 5b6c257faeea219d711e63f6e99368fa84a103f3 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 28 May 2013 15:04:50 +0200 Subject: [PATCH 4/8] Improved WGI_INPUT_STREAM.append_to_file (f: FILE; nb: INTEGER) --- .../specification/stream/wgi_input_stream.e | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/library/server/ewsgi/specification/stream/wgi_input_stream.e b/library/server/ewsgi/specification/stream/wgi_input_stream.e index 51ccee50..f37898fa 100644 --- a/library/server/ewsgi/specification/stream/wgi_input_stream.e +++ b/library/server/ewsgi/specification/stream/wgi_input_stream.e @@ -137,26 +137,34 @@ feature -- Input a_file_is_open_write: a_file.is_open_write nb_large_enough: nb > 0 local + s: like last_string i, end_pos: INTEGER l_count: INTEGER + n: INTEGER + l_remaining: INTEGER do from - i := a_string.count + 1 - end_pos := i + nb - 1 + n := nb.min (2_048) + l_remaining := nb - n until - i > end_pos + l_remaining = 0 or n = 0 loop - read_character - a_file.put_character (last_character) - l_count := l_count + 1 - if end_of_input then - -- Jump out of the loop. - i := end_pos + 1 + read_string (n) + s := last_string + a_file.put_string (s) + if end_of_input or s.count < n then + n := s.count + -- no more data + l_remaining := l_remaining - n + n := 0 else - i := i + 1 + n := s.count + l_remaining := l_remaining - n end end - last_appended_count := l_count + last_appended_count := nb - l_remaining + -- Clean `last_string' + last_string.wipe_out ensure nb_char_read_large_enough: last_appended_count >= 0 nb_char_read_small_enough: last_appended_count <= nb @@ -206,7 +214,7 @@ feature -- Status report 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 From b4ec6fdff8407892dccc5aa7318894e7a01309a2 Mon Sep 17 00:00:00 2001 From: Olivier Ligot Date: Wed, 29 May 2013 11:14:58 +0200 Subject: [PATCH 5/8] Socket: reuse address to resolve the error "address already in use" On Unix, when we stop the server, and then re-start it right away, we get an error that the address is already in use: http://www.softlab.ntua.gr/facilities/documentation/unix/unix-socket-faq/unix-socket-faq-4.html#ss4.1 This means that the sockets that were used by the first incarnation of the server are still active. One way to resolve this is to set the socket option SO_REUSEADDR: http://www.softlab.ntua.gr/facilities/documentation/unix/unix-socket-faq/unix-socket-faq-4.html#ss4.5 Tested on Ubuntu 12.04 LTS --- library/tcp_stream_socket.e | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/library/tcp_stream_socket.e b/library/tcp_stream_socket.e index f51873cd..5c3ccf07 100644 --- a/library/tcp_stream_socket.e +++ b/library/tcp_stream_socket.e @@ -8,6 +8,9 @@ class inherit NETWORK_STREAM_SOCKET + redefine + make + end create make_server_by_address_and_port, @@ -18,6 +21,13 @@ create {NETWORK_STREAM_SOCKET} feature {NONE} -- Initialization + make + -- Create a network stream socket. + do + Precursor + set_reuse_address + end + make_server_by_address_and_port (an_address: INET_ADDRESS; a_port: INTEGER) -- Create server socket on `an_address' and `a_port'. require From f41e83c30cf61ff922179749ee3f8173ff19e2fa Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Fri, 31 May 2013 12:28:58 +0200 Subject: [PATCH 6/8] removed unused local variable --- library/network/http_client/src/http_client_request_context.e | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/network/http_client/src/http_client_request_context.e b/library/network/http_client/src/http_client_request_context.e index 5d30d2c3..3d1c69e4 100644 --- a/library/network/http_client/src/http_client_request_context.e +++ b/library/network/http_client/src/http_client_request_context.e @@ -124,8 +124,6 @@ feature -- Element change end add_header_lines (lst: ITERABLE [READABLE_STRING_8]) - local - i: INTEGER do across lst as c @@ -233,7 +231,7 @@ feature {NONE} -- Implementation 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 From fbbd1f1eee00190c939532c3a630394d947d60ce Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Fri, 7 Jun 2013 15:40:50 +0200 Subject: [PATCH 7/8] 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 From fa8b3fdccc2490e1c8820549842edc4f541fc537 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 11 Jun 2013 11:49:45 +0200 Subject: [PATCH 8/8] Added HTTP_DATE.make_now_utc for convenience. --- library/network/protocol/http/src/http_date.e | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/network/protocol/http/src/http_date.e b/library/network/protocol/http/src/http_date.e index 18d1a5a5..7a404017 100644 --- a/library/network/protocol/http/src/http_date.e +++ b/library/network/protocol/http/src/http_date.e @@ -39,6 +39,7 @@ inherit DEBUG_OUTPUT create + make_now_utc, make_from_timestamp, make_from_string, make_from_date_time @@ -76,6 +77,12 @@ feature {NONE} -- Initialization date_time := dt end + make_now_utc + -- Build from current utc date time. + do + create date_time.make_now_utc + end + feature -- Access has_error: BOOLEAN