diff --git a/library/server/ewsgi/connectors/cgi/src/wgi_cgi_connector.e b/library/server/ewsgi/connectors/cgi/src/wgi_cgi_connector.e index 38574cf2..f8fadccc 100644 --- a/library/server/ewsgi/connectors/cgi/src/wgi_cgi_connector.e +++ b/library/server/ewsgi/connectors/cgi/src/wgi_cgi_connector.e @@ -51,7 +51,7 @@ feature -- Execution res.set_status_code ({HTTP_STATUS_CODE}.internal_server_error) end if res.message_writable then - res.write_string ("
" + l_trace + "
") + res.put_string ("
" + l_trace + "
") end end end diff --git a/library/server/ewsgi/connectors/libfcgi/src/wgi_libfcgi_connector.e b/library/server/ewsgi/connectors/libfcgi/src/wgi_libfcgi_connector.e index d28480ae..c8b94dfb 100644 --- a/library/server/ewsgi/connectors/libfcgi/src/wgi_libfcgi_connector.e +++ b/library/server/ewsgi/connectors/libfcgi/src/wgi_libfcgi_connector.e @@ -72,7 +72,7 @@ feature -- Execution res.set_status_code ({HTTP_STATUS_CODE}.internal_server_error) end if res.message_writable then - res.write_string ("
" + l_trace + "
") + res.put_string ("
" + l_trace + "
") end end end diff --git a/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e b/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e index 4de5fb99..dc111270 100644 --- a/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e +++ b/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e @@ -132,7 +132,7 @@ feature -- Server res.set_status_code ({HTTP_STATUS_CODE}.internal_server_error) end if res.message_writable then - res.write_string ("
" + l_trace + "
") + res.put_string ("
" + l_trace + "
") end end end diff --git a/library/server/ewsgi/specification/response/wgi_response.e b/library/server/ewsgi/specification/response/wgi_response.e index 672e6f1f..5ef7611d 100644 --- a/library/server/ewsgi/specification/response/wgi_response.e +++ b/library/server/ewsgi/specification/response/wgi_response.e @@ -68,10 +68,10 @@ feature -- Status setting feature -- Header output operation - write_header_text (a_text: READABLE_STRING_8) + put_header_text (a_text: READABLE_STRING_8) -- Write http header string `a_text' -- It should not contain the ending CR LF CR LF - -- since it is the duty of `write_header_text' to write it. + -- since it is the duty of `put_header_text' to write it. require a_text_does_not_has_ending_crlf_crlf: a_text.count > 4 implies not a_text.substring (a_text.count - 4, a_text.count).same_string ("%R%N%R%N") status_set: status_is_set @@ -83,7 +83,7 @@ feature -- Header output operation message_writable: message_writable end - write_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) + put_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) require status_set: status_is_set header_not_committed: not header_committed @@ -96,14 +96,14 @@ feature -- Header output operation feature -- Output operation - write_string (s: READABLE_STRING_8) + put_string (s: READABLE_STRING_8) -- Send the string `s' require message_writable: message_writable deferred end - write_substring (s: READABLE_STRING_8; a_begin_index, a_end_index: INTEGER) + put_substring (s: READABLE_STRING_8; a_begin_index, a_end_index: INTEGER) -- Send the substring `s[a_begin_index:a_end_index]' require message_writable: message_writable diff --git a/library/server/ewsgi/src/helper/wgi_response_stream.e b/library/server/ewsgi/src/helper/wgi_response_stream.e index f6137fc3..43f9bd10 100644 --- a/library/server/ewsgi/src/helper/wgi_response_stream.e +++ b/library/server/ewsgi/src/helper/wgi_response_stream.e @@ -75,14 +75,14 @@ feature -- Status setting feature -- Header output operation - write_header_text (a_text: READABLE_STRING_8) + put_header_text (a_text: READABLE_STRING_8) do write (a_text) write (crlf) header_committed := True end - write_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) + put_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) local h: STRING_8 do @@ -97,18 +97,18 @@ feature -- Header output operation h.append_character ('%R') h.append_character ('%N') end - write_header_text (h) + put_header_text (h) end feature -- Output operation - write_string (s: READABLE_STRING_8) + put_string (s: READABLE_STRING_8) -- Send the string `s' do write (s) end - write_substring (s: READABLE_STRING_8; start_index, end_index: INTEGER) + put_substring (s: READABLE_STRING_8; start_index, end_index: INTEGER) -- Send the substring `start_index:end_index]' --| Could be optimized according to the target output do diff --git a/library/server/wsf/src/wsf_response.e b/library/server/wsf/src/wsf_response.e index a714890f..59985706 100644 --- a/library/server/wsf/src/wsf_response.e +++ b/library/server/wsf/src/wsf_response.e @@ -71,30 +71,21 @@ feature -- Status setting Result := wgi_response.status_code end ---feature {WGI_RESPONSE} -- Core output operation --- --- write (s: READABLE_STRING_8) --- -- Send the string `s' --- -- this can be used for header and body --- do --- wgi_response.write (s) --- end - feature -- Header output operation - write_header_text (a_headers: READABLE_STRING_8) + put_header_text (a_headers: READABLE_STRING_8) require status_set: status_is_set header_not_committed: not header_committed do - wgi_response.write_header_text (a_headers) + wgi_response.put_header_text (a_headers) ensure status_set: status_is_set header_committed: header_committed message_writable: message_writable end - write_header (a_status_code: INTEGER; a_headers: detachable ARRAY [TUPLE [key: READABLE_STRING_8; value: READABLE_STRING_8]]) + put_header (a_status_code: INTEGER; a_headers: detachable ARRAY [TUPLE [key: READABLE_STRING_8; value: READABLE_STRING_8]]) -- Send headers with status `a_status', and headers from `a_headers' require status_not_set: not status_is_set @@ -116,65 +107,104 @@ feature -- Header output operation i := i + 1 end end - wgi_response.write_header_text (h.string) + wgi_response.put_header_text (h.string) ensure header_committed: header_committed status_set: status_is_set message_writable: message_writable end - write_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) + put_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) do - wgi_response.write_header_lines (a_lines) + wgi_response.put_header_lines (a_lines) + end + +feature -- Obsolete: Header output operation + + write_header_text (a_headers: READABLE_STRING_8) + obsolete "[2011-dec-15] use put_header_text" + do + put_header_text (a_headers) + end + + write_header (a_status_code: INTEGER; a_headers: detachable ARRAY [TUPLE [key: READABLE_STRING_8; value: READABLE_STRING_8]]) + obsolete "[2011-dec-15] use put_header" + do + put_header (a_status_code, a_headers) + end + + write_header_lines (a_lines: ITERABLE [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]) + obsolete "[2011-dec-15] use put_header_lines" + do + put_header_lines (a_lines) end feature -- Output operation write_string (s: READABLE_STRING_8) + obsolete "[2011-dec-15] use put_string" + do + put_string (s) + end + + write_substring (s: READABLE_STRING_8; a_begin_index, a_end_index: INTEGER) + obsolete "[2011-dec-15] use put_substring" + do + put_substring (s, a_begin_index, a_end_index) + end + + put_string (s: READABLE_STRING_8) -- Send the string `s' require message_writable: message_writable do - wgi_response.write_string (s) + wgi_response.put_string (s) end - write_substring (s: READABLE_STRING_8; a_begin_index, a_end_index: INTEGER) + put_substring (s: READABLE_STRING_8; a_begin_index, a_end_index: INTEGER) -- Send the substring `s[a_begin_index:a_end_index]' require message_writable: message_writable do - wgi_response.write_substring (s, a_begin_index, a_end_index) + wgi_response.put_substring (s, a_begin_index, a_end_index) end - write_chunk (s: detachable READABLE_STRING_8) + put_chunk (s: detachable READABLE_STRING_8; a_extension: detachable READABLE_STRING_8) -- Write chunk `s' -- If s is Void, this means this was the final chunk -- Note: that you should have header -- "Transfer-Encoding: chunked" require message_writable: message_writable + valid_chunk_extension: a_extension /= Void implies not a_extension.has ('%N') and not not a_extension.has ('%R') local - hex: STRING + l_chunk_size_line: STRING_8 i: INTEGER do if s /= Void then --| Remove all left '0' - hex := s.count.to_hex_string + l_chunk_size_line := s.count.to_hex_string from i := 1 until - hex[i] /= '0' + l_chunk_size_line[i] /= '0' loop i := i + 1 end if i > 1 then - hex := hex.substring (i, hex.count) + l_chunk_size_line := l_chunk_size_line.substring (i, l_chunk_size_line.count) end - write_string (hex + {HTTP_CONSTANTS}.crlf) - write_string (s) - write_string ({HTTP_CONSTANTS}.crlf) + + if a_extension /= Void then + l_chunk_size_line.append_character (';') + l_chunk_size_line.append (a_extension) + end + l_chunk_size_line.append ({HTTP_CONSTANTS}.crlf) + put_string (l_chunk_size_line) + put_string (s) + put_string ({HTTP_CONSTANTS}.crlf) else - write_string ("0" + {HTTP_CONSTANTS}.crlf) + put_string ("0" + {HTTP_CONSTANTS}.crlf) end flush end @@ -208,12 +238,12 @@ feature -- Redirect do if header_committed then -- This might be a trouble about content-length - write_string ("Headers already sent.%NCannot redirect, for now please follow this link instead%N") + put_string ("Headers already sent.%NCannot redirect, for now please follow this link instead%N") else create h.make_with_count (1) h.put_location (a_url) set_status_code (a_status_code) - write_header_text (h.string) + put_header_text (h.string) end end @@ -232,15 +262,15 @@ feature -- Redirect do if header_committed then -- This might be a trouble about content-length - write_string ("Headers already sent.%NCannot redirect, for now please follow this link instead%N") + put_string ("Headers already sent.%NCannot redirect, for now please follow this link instead%N") else create h.make_with_count (1) h.put_location (a_url) h.put_content_length (a_content.count) h.put_content_type (a_content_type) set_status_code ({HTTP_STATUS_CODE}.moved_permanently) - write_header_text (h.string) - write_string (a_content) + put_header_text (h.string) + put_string (a_content) end end