Commit Graph
100 Commits
Author SHA1 Message Date
jocelyn 897f64e4fe Reuse http_network library.
Reintroduced HTTPD_STREAM_SOCKET for backward compatibility, and ease of usage.
Added websocket libraries (client, and protocol).
2016-10-13 16:25:11 +02:00
jocelyn 981942b2d6 Extracted network socket classes from httpd folder, and created a new library/network/http_network library.
Renamed HTTPD_STREAM_SOCKET as HTTP_STREAM_SOCKET.
Made http_client (net) library use the new http_network library.
2016-10-12 23:27:55 +02:00
jocelyn c132d7734b Moved httpd library from ewsgi/connectors/standalone/lib/httpd to httpd.
Reused the http_network library as well inside httpd library.
2016-10-12 22:54:21 +02:00
jocelyn d28f794828 Implemented chunked Transfer-Encoding in net_http_client.
Implemented support for buffer_size and chunk_size for net_http_client.
2016-10-12 16:49:08 +02:00
jocelyn 9e92b8c0fa Fixed typo in restbuck name. 2016-10-12 11:21:42 +02:00
jocelyn ef704790a8 Fixed the "wsf_tests" autocase suite, which was wrong for cookies, and other minor changes. 2016-10-12 11:21:27 +02:00
jocelyn 57b1691243 Added support for debug.ini to debug example. 2016-10-12 11:19:54 +02:00
jocelyn 29590b1c0d Fixed potential issue related to PATH_INFO, and percent_encoded_path_info computing , when script name is in different path. 2016-10-12 11:19:23 +02:00
jocelyn ed959042d7 Fixed issue with input using "Transfer-Encoding: chunked". 2016-10-12 11:12:37 +02:00
jocelyn 1170417e54 Fixed regression with persistent connection, be sure to keep the remote_info data for all successive requests within a same persistent connection. 2016-10-11 17:34:07 +02:00
jocelyn 2cfe00e61b Updated desktop_app example with embedded standalone web server. 2016-10-11 17:30:50 +02:00
jocelyn a498a167ed Updated desktop application example for scoop concurrency mode. 2016-10-11 16:20:04 +02:00
jocelyn f12158e535 Use the ..._noexception network features in the WGI standalone input and output classes. 2016-10-11 10:57:05 +02:00
jocelyn 080881368a Also check for SOCKET.was_error when accessing the socket data. 2016-10-11 10:29:38 +02:00
jocelyn 7a546622bc Updated deprecated EiffelWeb nino to make it compilable with upcoming EiffelStudio 16.11.
Updated various projects to make them up-to-date and compilable with this latest EiffelWeb.
2016-10-10 21:40:15 +02:00
jocelyn aed7461faf Improved networking implementation for httpd server and sockets.
Use new EiffelNet routines that do not raise exception on error.
Made compilable with 16.05 and dev-and-upcoming release 16.11.
Fixed various minor issues related to base_url, and added comments.
2016-10-08 01:10:16 +02:00
jocelyn 56819d6793 Replace Nino by Standalone whenever it is relevant. 2016-10-08 01:02:12 +02:00
jocelyn b4fd04ad9f Updated has_incoming_data comment. 2016-10-05 16:19:48 +02:00
jocelyn 71a98f3c28 Make EiffelWeb standalone easier to debug by using in some locations error instead of exception for network error.
- Added C external to use C `recv` feature with error (as opposed to have exception raised on network error).
2016-10-05 10:45:57 +02:00
jocelyn ed22be2551 Commented the execute_bad_request, since it is not ready and will trigger error most of the time. 2016-10-05 00:04:21 +02:00
jocelyn 77085364ee Improve socket management for EiffelWeb standalone connector. 2016-10-04 18:49:48 +02:00
jocelyn 0217c6d3f4 First attempt to response with bad request message when bad request is detected. 2016-10-04 13:00:38 +02:00
jocelyn 55fec2423c Added ssl test case for standalone wsf connector. 2016-10-04 12:59:56 +02:00
jocelyn 1f7a81a2d6 Updated workbook, minor changes (removed mention about nino, added libfcgi info). 2016-10-04 12:56:11 +02:00
jocelyn 612ff243c1 Also display SSL information when verbose is enabled for EiffelWeb standalone connector. 2016-10-02 20:05:44 +02:00
jocelyn 40fb3893af Include wsf_proxy to the installation process. 2016-09-27 16:18:06 +02:00
jocelyn 21407f8dcf Fixed SSL support on the httpd component, and also on the EiffelWeb standalone connector.
- the standalone connector support for SSL, is using certicate files for now (no in-memory support).
  - to enable ssl support, set ecf variable `httpd_ssl_enabled=true`.
  - added the `simple_ssl` example to demonstrate how to have standalone ssl server.
    (be careful when using EiffelNet SSL and the http_client library, disable the libcurl
      via ecf variable `libcurl_http_client_disabled=true` )

Added support for recv timeout to the EiffelWeb standalone connector.
  - made EiffelWeb compilable with 16.05 and upcoming 16.11.
    Done via ecfs condition on version to accept EiffelNet with recv_timeout (from 16.11), and without (until 16.05).
  - adding recv timeout prevents server to hang for ever if a client wait too long to send data.

Updated various comments.
2016-09-27 16:11:47 +02:00
jocelyn 356eb143ea Fixed the non void-safe ecf for wsf_proxy. 2016-09-26 17:42:49 +02:00
jocelyn df551d4a4f Use latest API from http_client using DEFAULT_HTTP_CLIENT,
that could use libcurl or EiffelNet depending on the configuration (.ecf).
2016-09-26 13:13:57 +02:00
jocelyn f010da04e9 Merge branch 'reverse_proxy' 2016-09-19 22:19:21 +02:00
jocelyn 5029049ef0 Replaced host+port by uri (http://remotemachine:port/path).
Added support for SSL (https).
2016-08-08 12:30:28 +02:00
jocelyn 80254b2278 When possible keep ecf location relative within the same EiffelWeb directory structure. 2016-08-06 10:07:42 +02:00
jocelyn 210fae5000 First step towards SSL support. 2016-08-06 10:04:45 +02:00
jocelyn 9cc9b95190 Added a simple reverse proxy handler.
- For now, it does not support SSL connection on the target yet.
- No external config file support, this is all about coding.
2016-08-05 11:38:35 +02:00
jocelyn 8b172b5d33 Revisited WSF_REQUEST.read_input_data* functions:
- read_input_data_into_file now accepts a IO_MEDIUM argument instead of just FILE.
- cleaned the implementation, and make sure that eventual `raw_input_data` is containing only the raw input data.
2016-08-05 11:32:14 +02:00
jocelyn cc2d7dbb1c Ignore empty header line. 2016-08-05 11:28:59 +02:00
jocelyn c88394b9fd Added support for category in ATOM format (input and output). 2016-06-24 13:03:09 +02:00
jocelyn 4283662f43 Removed unwanted .ecf file. 2016-06-22 10:55:41 +02:00
jocelyn 1b951376f9 Added more application logic for the example. 2016-06-22 10:52:36 +02:00
jocelyn 193cc3cbde Renamed WGI_STANDALONE_CONNECTOR_ACCESS as WGI_STANDALONE_CONNECTOR_EXPORTER.
Isolate the websocket implementation in descendant of {WEB_SOCKET_EVENT_I}.
Added very simple echo websocket example.
+ code cleaning.
2016-06-22 10:46:15 +02:00
jocelyn b49e841ac7 Added WSF standalone_websocket connector, that provides websocket on top of standalone connector. 2016-06-21 23:37:48 +02:00
jocelyn 8ba74e1c90 Log when a persistent connection is reused.
Use anchor type on `{WGI_STANDALONE_CONNECTOR}.configuration` and `{WSF_STANDALONE_SERVICE_LAUNCHER}.connector`.
Add access to the socket of standalone input stream from `{WSF_STANDALONE_CONNECTOR_ACCESS}`.
Removed a useless redefination in `WSF_EXECUTION`.
2016-06-21 23:36:22 +02:00
jocelyn 0cecb9594c Fixed signature of {HTTPD_CONFIGURATION_I}.set_ca_key . 2016-06-16 10:37:26 +02:00
jocelyn e384a6d6ed Make it easier to reuse the http network classes.
This is to make it easier for websocket solution to reuse httpd implementation.
2016-06-16 10:23:30 +02:00
jocelyn 71a5c086a5 Moved httpd from src to lib, under standalone connector. 2016-06-15 18:04:00 +02:00
jocelyn dfa60bf8f5 Prepared httpd_stream to be useable for client too.
Fixed obsolete tests/dev compilation (mainly to avoid wrong failure reports).
added package.iron files.
2016-06-15 17:56:22 +02:00
jocelyn 113aa69efc Added advanced settings for standalone connector
- max_concurrent_connections=100
- keep_alive_timeout=15
- max_tcp_clients=100
- socket_timeout=300
- max_keep_alive_requests=300
And then can be set via the options as well, and via .ini file.
Also improved the verbose console output system.
2016-06-15 09:19:23 +02:00
jocelyn af5fc75743 Using passive regions.
Improve connector options mainly for standalone connector.
Updated "simple" example to return a timestamp.
2016-06-14 16:01:37 +02:00
jocelyn 5890ca6f73 Removed warning about unknown class in export clause. 2016-05-25 22:51:45 +02:00
jocelyn 7f4bf09d84 updated readme.md to link to workbook. 2016-05-25 19:17:38 +02:00
jocelyn cc3c8af6b4 Updated HTTP_COOKIE implementation
- by default the Cookie does not set max-age and expires, so it defines a Session Cookie.
   (max_age and expires attributes are not included in the response)
 - set_* and unset_* features to define max_age and expire attributes.
 - marked old features as obsolete.
Updated test cases.

Signed-off-by: jvelilla <javier.hector@gmail.com>
2016-05-04 12:26:17 +02:00
jocelyn b35ec65577 Updated EWF Windows tools to install EWF into EiffelStudio source tree. 2016-02-03 18:03:43 +01:00
jocelyn 4482520a86 Removed useless library declarations. 2016-02-03 15:12:54 +01:00
jocelyn e9afc9ad17 Updated package.iron files. 2016-02-02 09:57:03 +01:00
jocelyn 55ab6969ee Do not html escape ' with &apos;
reason: the named character reference &apos; (the apostrophe, U+0027) was introduced in XML 1.0 but does not appear in HTML. Authors should therefore use &#39; instead of &apos; to work as expected in HTML 4 user agents.
2016-01-20 17:53:06 +01:00
jocelyn d982bc06ad Eiffel code and ECFs update to support new agent notations. 2016-01-18 21:42:59 +01:00
jocelyn 2ca87d53b8 Added process_transfer to implement process_file. This way, it is easier to redefine the transfert implementation, or the process_file directly, if needed. 2016-01-18 17:05:35 +01:00
jocelyn 1a4db1d7c6 Eiffel code and ECFs update to support new agent notations.
Removed contrib/library/.../json library.
2016-01-18 16:41:10 +01:00
jocelyn 3bb9101b07 Improved error library by refactorying the sync as two way propagation.
Now one can setup error handler propagation in one way, or two way (sync).
The "reset" applies in both way, even if this is a one way propagation to fit current existing usage.
Added optional id for the error handlers.
Feature renaming according to design changes.
Added related autotest cases.
2016-01-12 16:09:29 +01:00
jocelyn 1b2496b7f0 Better EMAIL.message computing.
Send end of input file for stdin mode.
2016-01-12 16:04:24 +01:00
jocelyn d20c377580 Fixed Reply-To: implementation in notification mailer.
Added helper routines to query additional header, and reset Cc:, and Bcc: values.
2016-01-08 21:46:01 +01:00
jocelyn 166d0839b7 Fixed end_of_input by using SOCKET.readable. 2015-12-28 23:45:04 +01:00
jocelyn fbe0732210 Removed uuid in wsf_session ecf files. 2015-12-28 18:05:18 +01:00
jocelyn b5d6a75155 Fixed table item output by appending html attribute for WSF widget table item. 2015-12-28 17:40:59 +01:00
jocelyn 4fc4b02449 Made WSF_TABLE a TABLE_ITERABLE. 2015-12-28 17:40:20 +01:00
jocelyn 5276bd1479 Fixed URI mapping with regard to trailing slash handling. 2015-12-28 17:39:54 +01:00
jocelyn 7d94413297 removed non void-safe tests.ecf for feeds library 2015-11-05 21:48:17 +01:00
jocelyn 35855941e6 Comment and code cleaning. 2015-11-05 21:37:44 +01:00
jocelyn 50ba8ca703 Fixed various unicode issue related to query and form parameters.
(Especially for the multipart/form-data encoding.)
Factorized code related to smart parameters computing (handling list , table, ...) in WSF_VALUE_UTILITIES.
Fixed an issue with percent_encoded_path_info computation from request_uri.
Fixed issue with cookie addition having same cookie name.
Fixed unicode support for uploaded file.
WSF_STRING is reusing WSF_PERCENT_ENCODER.
Use unicode output for WSF_DEBUG_HANDLER.
Code cleaning
2015-11-05 21:32:24 +01:00
jocelyn dde6a0b7de Added specific configuration file, so that it is easier to use either libcurl or net implementation. 2015-10-19 08:46:31 +02:00
jocelyn b64a281d75 Fixed timeout issue due to too many "ready_for_reading".
Fixed Connection behavior.
Fixed Content-Type settings.
Removed condition on POST or PUT, since code also applied to any request methods.
Added verbose output implementation.
2015-10-19 08:46:30 +02:00
jocelyn b69b8aaaf9 Added first support for persistent connection in NET http client implementation.
Various improvement related to eventual errors.
2015-10-19 08:46:29 +02:00
jocelyn 65b28ed877 Updated README.md with configuration topics related to libcurl or net disabling.
Fixed ssl test by precising insecure ssl.
2015-10-19 08:46:27 +02:00
jocelyn 6c7637716b Updated a few comments
Removed useless NULL_HTTP_CLIENT.
Extracted mime code from NET_HTTP_CLIENT_REQUEST.response into specific routine.
2015-10-19 08:46:26 +02:00
jocelyn ff9a238f5c Added https support with Net implementation.
Added notion of default HTTP_CLIENT, to be able to build portable code among http client implementation.
2015-10-19 08:46:25 +02:00
jocelyn eec3cbdba1 Added null http client for upcoming changes.
Refactored NET request implementation.
  - fixed potential issue with header conflict.
  - simplified, and extract parts of the code into routine.
  - Implemented read of chunked Transfer-Encoding
  - Fixed potential issue with socket handling.
First steps to be able to exclude net or libcurl implementation when using http_client lib.
Removed from NET implementation the hack related to PUT and upload data (it was used to workaround an issue with libcurl).
2015-10-19 08:46:23 +02:00
jocelyn 29c4931dc0 Added support for chunked transfer-encoding response.
Implemented correctly the redirection support for NET_HTTP_CLIENT...
Added the possibility to use HTTP/1.0 .
Splitted the manual tests that were using during development.
First step to redesign and clean the new code.
2015-10-19 08:46:22 +02:00
jocelyn 3f69081d32 Added postcondition to ensure the result of {HTTP_CLIENT_REQUEST}.response is attached.
(useless with void-safety compilation, but keep it for non void-safe execution).
2015-10-19 08:46:11 +02:00
jocelyn 7033db7dc4 Removed useless redefination of is_equal. 2015-10-19 08:46:10 +02:00
jocelyn a1a16b4a22 Fixing http_client.ecf file with correct locations. 2015-10-19 08:46:09 +02:00
jocelyn 98e92ee0fe Basic initial Eiffel NET implementation. 2015-10-19 08:46:07 +02:00
jocelyn 29b55f36cf Added skeleton for Eiffel Net implementation of HTTP_CLIENT solution.
This is work in progress.
2015-10-19 08:46:06 +02:00
jocelyn 061e88c9fe Added FEED.prune (a_item: FEED_ITEM). 2015-10-14 17:40:38 +02:00
jocelyn 66f204b1f2 Make custom error interface more flexible with READABLE_STRING_... instead of STRING_... 2015-10-10 00:58:07 +02:00
jocelyn c92b1b8c3b Added feed to xhtml visitor.
Updated interfaces, mainly related to date attributes.
2015-10-09 19:08:53 +02:00
jocelyn 98c12b8fb9 Made HTTP_DATE more flexible and support UTC+0000, GMT+0000 and now also +0000.
Added comments.
2015-10-08 11:00:01 +02:00
jocelyn 5fee483fd9 Added FEED + FEED operator to merge two feeds.
Added FEED sorting routine.
Added FEED_ITEM.link: detachable FEED_LINK that represents the main feed link.
Comments.
2015-10-08 10:10:08 +02:00
jocelyn f7a7afccd6 Fixed compilation of non void-safe feed.ecf 2015-10-05 22:58:58 +02:00
jocelyn e2c70e6d70 Updated a few comments.
Renamed generator to follow *_FEED_GENERATOR naming.
Renamed feed entry as feed item.
Made FEED conforms to ITERABLE [FEED_ITEM] for convenience.
2015-09-16 10:02:09 +02:00
jocelyn a5e150d1c0 Improved feed library with comments, bug fixes and code factorization. 2015-09-08 21:45:27 +02:00
jocelyn 39887c8bdb Added initial ATOM and RSS feed parser and generator.
(work in progress)
2015-09-07 19:22:50 +02:00
jocelyn 1796d9631f Added target "all_stable_with_ssl" to check compilation with ssl enabled. 2015-08-26 13:38:50 +02:00
jocelyn 389975e409 Merge branch 'v1' 2015-08-24 16:13:01 +02:00
jocelyn 6c51590369 Updated installation location of openid and http_authorization in ISE package.
Added iron package file for ewsgi.
2015-08-24 16:12:25 +02:00
jocelyn 47c5b798b3 Cosmetic true -> True 2015-08-04 13:24:03 +02:00
jocelyn f0cba1d536 Fixing script_url' that wrongly used path_info' instead of `percent_encoded_path_info'.
(issue on script_url when path info contains unicode character).
2015-08-04 13:21:36 +02:00
jocelyn ed891546bc Updated set_value for WSF_FORM_SELECTABLE_INPUT (for example a checkbox).
Call the feature set_checked_by_value iff the the current value exist in the
list of values, in other case set checked in Flase.
If we call set_checked_by_value without filter, previous checked values will be
set in False.
2015-08-04 13:21:07 +02:00
jocelyn 8651ff6e1e Fixing script_url' that wrongly used path_info' instead of `percent_encoded_path_info'.
(issue on script_url when path info contains unicode character).
2015-08-04 13:03:51 +02:00
jocelyn 629edea991 Merge remote-tracking branch 'javier/ewf_html_form' into v1 2015-08-04 13:00:08 +02:00
jocelyn 4f8f17ad48 Fixed various compilation issues.
Ensure the obsolete/v0 ecf has new UUID.
2015-07-03 20:02:13 +02:00