Commit Graph

540 Commits

Author SHA1 Message Date
Jocelyn Fiat
92d3f642ac Provided a way to report cURL error code back to http_client, via HTTP_CLIENT_RESPONSE 2013-02-27 21:49:03 +01:00
Jocelyn Fiat
598f6df366 Provided `url_encoded_name' on the WSF_VALUE interface 2013-02-27 21:48:33 +01:00
Jocelyn Fiat
9c0a2bd6a1 prefer 2 append call, rather than create a temp intermediary string object with + 2013-02-26 15:33:00 +01:00
Olivier Ligot
12404a2d5c CORS: respect specification regarding Access-Control-Allow-Headers
According to the specification, the value of the response header
Access-Control-Allow-Headers must contain at least all the values of the
request header Access-Control-Request-Headers to be considered a valid request.
Before this commit, only the Authorization value was present, which is enough
for Firefox but not for Chrome.
This should now work as expected.
2013-02-22 15:58:09 +01:00
Jocelyn Fiat
84df92de10 added EIS note documentation link for URI_TEMPLATE 2013-02-14 13:09:32 +01:00
Jocelyn Fiat
7028ce07f4 remove unwanted console output 2013-02-05 13:19:59 +01:00
Jocelyn Fiat
dc6255d410 Fixed implementation of `string_array_item' 2013-02-04 15:32:46 +01:00
Jocelyn Fiat
a5c9329ada Fixing global EWF compilation 2013-01-31 16:20:38 +01:00
Jocelyn Fiat
40ea982293 Added ANSI C date time string format support in HTTP_DATE. 2013-01-31 15:30:39 +01:00
Jocelyn Fiat
d172dedf31 Fixed HTTP_DATE for GMT+ offset (integer value) 2013-01-31 13:54:10 +01:00
Jocelyn Fiat
20d5798444 Added HTTP_DATE to ease http date manipulation and optimize code rather than using EiffelTime's code facilities.
Added autotests to `http' lib.
2013-01-31 11:23:11 +01:00
Jocelyn Fiat
4369637140 using ARRAYED_LIST rather than LINKED_LIST 2013-01-30 22:40:29 +01:00
Jocelyn Fiat
8f232bd627 Added `append_string_to' to HTTP_HEADER 2013-01-23 16:23:10 +01:00
Jocelyn Fiat
acd942b720 Minor optimization in HTTP_HEADER 2013-01-22 21:13:40 +01:00
Olivier Ligot
c89a3f007f Added {HTTP_HEADER}.put_header_key_values
This is mainly a refactoring that is useful for an upcoming PR
regarding CORS (smaller patches are better...)

Note that this also fixes a small typo where an extra space was
added when calling {HTTP_HEADER}.put_allow
2013-01-22 17:09:23 +01:00
Olivier Ligot
ff57d0ecd4 Cross-Origin Resource Sharing initial support
Initial support for the Cross-Origin Resource Sharing specification.
This allows JavaScript to make requests across domain boundaries.

Also reviewed the filter example to get rid of the context and
the generic classes (we can actually use {WSF_REQUEST}.execution_variable
and {WSF_REQUEST}.set_execution_variable).

Links:
* How to enable server-side: http://enable-cors.org/server.html
* Specification: http://www.w3.org/TR/cors/
* Github: http://developer.github.com/v3/#cross-origin-resource-sharing
2013-01-09 17:34:50 +01:00
Olivier Ligot
aadfdec1ae Fix a small typo: you are instead of your are 2013-01-07 11:11:42 +01:00
Jocelyn Fiat
4ff7b33471 using socket_ok does not sounds ok on linux 2012-12-21 07:19:13 +01:00
Jocelyn Fiat
a7e6651806 Use WSF_REQUEST.read_input_data_into (buf) 2012-12-20 22:57:38 +01:00
Jocelyn Fiat
facdfd0b4a added WSF_SUPPORT.environment_item 2012-12-20 18:37:13 +01:00
Jocelyn Fiat
e4270b6297 Added is_available on HTTP_CLIENT_SESSION mainly to check if libcurl is available. 2012-12-20 18:36:58 +01:00
Jocelyn Fiat
a362e7d9c6 Avoid calling ANY.print, prefer io.error.put_string
Fixed obsolete calls.
2012-12-20 18:32:56 +01:00
Jocelyn Fiat
394ca05579 Added support for server_name in nino, and openshift 2012-12-20 15:41:18 +01:00
Jocelyn Fiat
c058012313 updated conneg .ecf 2012-12-20 10:18:50 +01:00
Jocelyn Fiat
1e6d273254 Added openshift connector classes (for experimentation) 2012-12-20 10:09:49 +01:00
Jocelyn Fiat
27d2308d6f Added comment to self documentation features 2012-12-20 10:09:26 +01:00
Jocelyn Fiat
3d8e277003 Fixed WSF_TRACE_RESPONSE which was overwritting previously prepared content. 2012-12-19 16:43:07 +01:00
Jocelyn Fiat
aa65c16957 Breaking changes:
added `a_request_methods' argument to WSF_ROUTER_SELF_DOCUMENTATION_HANDLER.mapping_documentation
 added similar argument to WSF_ROUTER_SELF_DOCUMENTATION_ROUTER_MAPPING.documentation
Renamed WSF_ROUTER_METHODS as WSF_REQUEST_METHODS
Enhanced WSF_REQUEST_METHODS with new has_... function
Added WSF_ROUTER_VISITOR and WSF_ROUTER_ITERATOR that may be useful to iterate inside the router.
   we may improve the implementation of the router using those visitors in the future.
Improved the WSF_DEFAULT_RESPONSE to embedded suggested items (typically based on pseudo self documented router)
2012-12-19 16:42:26 +01:00
Jocelyn Fiat
021f0eeaec Updated documentation output 2012-12-19 14:35:47 +01:00
Jocelyn Fiat
7193ce93f4 Fixed issue in WSF_REQUEST.read_input_data_into when the content is zero
Cleaned the WGI_CHUNKED_INPUT_STREAM and provides access to last extension, last trailer, ...
Improved WSF_TRACE_RESPONSE to support tracing chunked input back to the client.
2012-12-19 12:47:35 +01:00
Jocelyn Fiat
59f19dc52f Fixed WSF_RESPONSE chunk transfer implementation
and also the optional extension `a_ext' should now include the ';'
Now HTTP_HEADER is an ITERABLE [READABLE_STRING_8]
2012-12-19 11:45:59 +01:00
Jocelyn Fiat
17f16c35ad Fixed various assertions.
Improved autotests
Added target 'server' to be able to run the server outside the test process.
2012-12-19 00:10:31 +01:00
Jocelyn Fiat
ffe87ccbe9 Fixed reading chunked input data
When retrieving data block by block, use 8_192 instead of 1_024 (since 1_024 is too small most of the time)
2012-12-18 23:40:26 +01:00
Jocelyn Fiat
0d87c7939a Fixed sending of chunk, especially the ending where there is an optional Trailer, and a mandatory final CRLF
Now put_chunk does not support anymore empty chunk, and thus does not call put_chunk_end if ever it is called with empty chunk content.
Fixed the `transfered_content_length' when dealing with chunk transfert encoding
2012-12-18 23:34:55 +01:00
Jocelyn Fiat
de93ce32ff Added logger response wrapper, this is mainly to be able to save any response message to a file.
(debugging purpose)
2012-12-18 23:28:04 +01:00
Jocelyn Fiat
71b1bad53d Added basic support for "Expect" http header
i.e:   WSF_REQUEST.http_expect: detachable READABLE_STRING_8

Added WSF_REQUEST.request_time_stamp: INTEGER_64
2012-12-18 23:25:54 +01:00
Jocelyn Fiat
82c779fd60 fixed autotests compilation 2012-12-17 17:53:06 +01:00
Jocelyn Fiat
68ec6fb29c Made WSF_REQUEST.is_content_type_accepted safer. 2012-12-14 15:52:54 +01:00
Jocelyn Fiat
cc570f5abf Added WSF_DEFAULT_*_RESPONSE
Fixed the method not allowed by setting the Allow: header
2012-12-14 15:52:35 +01:00
Jocelyn Fiat
8e31950285 Improved HTTP_AUTHORIZATION 2012-12-14 15:51:34 +01:00
Jocelyn Fiat
4612fdb5de Added Authorization and Allow
Added is_empty and count
2012-12-14 15:51:12 +01:00
Jocelyn Fiat
6eb0ebd873 Merge pull request #16 from colin-adams/master
Implementation for automatic HEAD and first pass at HTTP 1.1 conformance contracts
2012-12-13 13:58:42 -08:00
Jocelyn Fiat
4a65015988 removed unused local variables 2012-12-13 18:43:15 +01:00
Jocelyn Fiat
e7f458fd50 added code that may be used to avoid breaking compatibility with new Eiffel Studio 7.2
This is experimental for now.
2012-12-13 18:16:01 +01:00
Jocelyn Fiat
b7505e67b8 Added to WSF_REQUEST
- raw_header_data: like meta_string_variable
  - read_input_data_into (buf: STRING)
  - is_content_type_accepted (a_content_type: READABLE_STRING_GENERAL): BOOLEAN
Changed raw_input_data to return IMMUTABLE_STRING_8
Added WSF_METHOD_NOT_ALLOWED_RESPONSE
Added WSF_TRACE_RESPONSE to respond TRACE request
Now Not_found response return html content if the client accepts, other text/plain
Implemented TRACE response, and Method not allowed as implementation of WSF_ROUTED_SERVICE.execute_default
2012-12-13 17:29:46 +01:00
Jocelyn Fiat
ff7d963d55 Fixed WGI_INPUT_STREAM read_to_string and append_to_string 2012-12-13 17:24:55 +01:00
Jocelyn Fiat
cb034fc94e Added missing "context" classes for uri and starts_with mapping+handler (and helper classes).
So that it is address more needs.
Factorized code between "context" and non context classes.
2012-12-13 12:01:24 +01:00
Olivier Ligot
ed325f81e1 use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so
This was already fixed in libfcgi.ecf
(commit 65a998cec3)
This fixes the libfcgi-safe.ecf file
2012-12-12 13:34:50 +01:00
Colin Adams
eafb04719d Actioned Jocelyns comments re. a_req and a_res 2012-12-11 19:26:06 +00:00
Jocelyn Fiat
df0d3e584c Fixed issue related to vars that are already converted to WSF_TABLE 2012-12-10 11:00:06 +01:00