Prepared httpd_stream to be useable for client too.
Fixed obsolete tests/dev compilation (mainly to avoid wrong failure reports). added package.iron files.
This commit is contained in:
@@ -92,10 +92,10 @@ feature -- Access: SSL
|
||||
is_secure: BOOLEAN
|
||||
-- Is SSL/TLS session?.
|
||||
|
||||
ca_crt: STRING
|
||||
ca_crt: IMMUTABLE_STRING_8
|
||||
-- the signed certificate.
|
||||
|
||||
ca_key: STRING
|
||||
ca_key: IMMUTABLE_STRING_8
|
||||
-- private key to the certificate.
|
||||
|
||||
ssl_protocol: NATURAL
|
||||
@@ -218,20 +218,16 @@ feature -- Element change
|
||||
|
||||
feature -- Element change
|
||||
|
||||
set_ca_crt (a_value: STRING)
|
||||
-- Set `ca_crt' with `a_value'
|
||||
set_ca_crt (a_value: separate READABLE_STRING_8)
|
||||
-- Set `ca_crt' from `a_value'.
|
||||
do
|
||||
ca_crt := a_value
|
||||
ensure
|
||||
ca_crt_set: ca_crt = a_value
|
||||
create ca_crt.make_from_separate (a_value)
|
||||
end
|
||||
|
||||
set_ca_key (a_value: STRING)
|
||||
-- Set `ca_key' with `a_value'
|
||||
-- Set `ca_key' with `a_value'.
|
||||
do
|
||||
ca_key := a_value
|
||||
ensure
|
||||
ca_key_set: ca_key = a_value
|
||||
create ca_key.make_from_separate (a_value)
|
||||
end
|
||||
|
||||
set_ssl_protocol (a_version: NATURAL)
|
||||
|
||||
@@ -12,6 +12,8 @@ class
|
||||
create
|
||||
make_server_by_address_and_port,
|
||||
make_server_by_port,
|
||||
make_client_by_address_and_port,
|
||||
make_client_by_port,
|
||||
make_from_separate,
|
||||
make_empty
|
||||
|
||||
@@ -30,6 +32,16 @@ feature {NONE} -- Initialization
|
||||
create {TCP_STREAM_SOCKET} socket.make_server_by_port (a_port)
|
||||
end
|
||||
|
||||
make_client_by_address_and_port (an_address: INET_ADDRESS; a_port: INTEGER)
|
||||
do
|
||||
create {TCP_STREAM_SOCKET} socket.make_client_by_address_and_port (an_address, a_port)
|
||||
end
|
||||
|
||||
make_client_by_port (a_peer_port: INTEGER; a_peer_host: STRING)
|
||||
do
|
||||
create {TCP_STREAM_SOCKET} socket.make_client_by_port (a_peer_port, a_peer_host)
|
||||
end
|
||||
|
||||
make_from_separate (s: separate HTTPD_STREAM_SOCKET)
|
||||
require
|
||||
descriptor_available: s.descriptor_available
|
||||
@@ -164,6 +176,11 @@ feature -- Status Report
|
||||
end
|
||||
end
|
||||
|
||||
exists: BOOLEAN
|
||||
do
|
||||
Result := socket.exists
|
||||
end
|
||||
|
||||
is_blocking: BOOLEAN
|
||||
do
|
||||
Result := socket.is_blocking
|
||||
@@ -176,6 +193,13 @@ feature -- Status Report
|
||||
end
|
||||
end
|
||||
|
||||
is_connected: BOOLEAN
|
||||
do
|
||||
if attached {TCP_STREAM_SOCKET} socket as l_socket then
|
||||
Result := l_socket.is_connected
|
||||
end
|
||||
end
|
||||
|
||||
is_created: BOOLEAN
|
||||
do
|
||||
if attached {NETWORK_SOCKET} socket as l_socket then
|
||||
@@ -220,6 +244,16 @@ feature -- Status Report
|
||||
end
|
||||
end
|
||||
|
||||
connect
|
||||
do
|
||||
socket.connect
|
||||
end
|
||||
|
||||
close
|
||||
do
|
||||
socket.close
|
||||
end
|
||||
|
||||
listen (a_queue: INTEGER)
|
||||
do
|
||||
socket.listen (a_queue)
|
||||
|
||||
@@ -15,6 +15,8 @@ inherit
|
||||
create
|
||||
make_server_by_address_and_port,
|
||||
make_server_by_port,
|
||||
make_client_by_address_and_port,
|
||||
make_client_by_port,
|
||||
make_from_separate,
|
||||
make_empty
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package httpd
|
||||
|
||||
project
|
||||
httpd = "httpd-safe.ecf"
|
||||
httpd = "httpd.ecf"
|
||||
|
||||
note
|
||||
title: HTTP server
|
||||
description: "[
|
||||
Simple HTTP listener and handler, that can be extended easily.
|
||||
]"
|
||||
tags: http,httpd,server,web
|
||||
collection: EWF
|
||||
copyright: 2011-2016, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Colin Adams, Eiffel Software and others
|
||||
license: Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)
|
||||
link[license]: http://www.eiffel.com/licensing/forum.txt
|
||||
link[source]: "Github" https://github.com/EiffelWebFramework/EWF/library/server/httpd
|
||||
link[doc]: "Documentation" http://eiffelwebframework.github.io/EWF/
|
||||
|
||||
end
|
||||
@@ -22,7 +22,9 @@ inherit
|
||||
|
||||
create
|
||||
make_ssl_server_by_address_and_port, make_ssl_server_by_port,
|
||||
make_server_by_address_and_port, make_server_by_port
|
||||
make_server_by_address_and_port, make_server_by_port,
|
||||
make_ssl_client_by_address_and_port, make_ssl_client_by_port,
|
||||
make_client_by_address_and_port, make_client_by_port
|
||||
|
||||
create {HTTPD_STREAM_SOCKET}
|
||||
make
|
||||
@@ -49,6 +51,26 @@ feature {NONE} -- Initialization
|
||||
set_certificates (a_crt, a_key)
|
||||
end
|
||||
|
||||
make_ssl_client_by_address_and_port (an_address: INET_ADDRESS; a_port: INTEGER; a_ssl_protocol: NATURAL; a_crt: STRING; a_key: STRING)
|
||||
local
|
||||
l_socket: SSL_TCP_STREAM_SOCKET
|
||||
do
|
||||
create l_socket.make_client_by_address_and_port (an_address, a_port)
|
||||
l_socket.set_tls_protocol (a_ssl_protocol)
|
||||
socket := l_socket
|
||||
set_certificates (a_crt, a_key)
|
||||
end
|
||||
|
||||
make_ssl_client_by_port (a_peer_port: INTEGER; a_peer_host: STRING; a_ssl_protocol: NATURAL; a_crt: STRING; a_key: STRING)
|
||||
local
|
||||
l_socket: SSL_TCP_STREAM_SOCKET
|
||||
do
|
||||
create l_socket.make_client_by_port (a_peer_port, a_peer_host)
|
||||
l_socket.set_tls_protocol (a_ssl_protocol)
|
||||
socket := l_socket
|
||||
set_certificates (a_crt, a_key)
|
||||
end
|
||||
|
||||
feature -- Output
|
||||
|
||||
put_readable_string_8 (s: READABLE_STRING_8)
|
||||
|
||||
@@ -12,6 +12,7 @@ inherit
|
||||
|
||||
create
|
||||
make_server_by_address_and_port, make_server_by_port,
|
||||
make_client_by_address_and_port, make_client_by_port,
|
||||
make_empty
|
||||
|
||||
create {SSL_NETWORK_STREAM_SOCKET}
|
||||
|
||||
Reference in New Issue
Block a user