Updated or added timestamp to obsolete and fixme messages.
Fixed ecf file exclusion for .svn and .git . Cosmetic changed.
This commit is contained in:
@@ -3,11 +3,11 @@
|
||||
<target name="http_client">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option debug="false" warning="true">
|
||||
<option warning="true">
|
||||
</option>
|
||||
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/>
|
||||
<library name="curl" location="$ISE_LIBRARY\library\cURL\cURL.ecf">
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="libcurl_http_client">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="net_http_client">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
|
||||
@@ -13,7 +13,7 @@ note
|
||||
Note that any value set in this context class overrides conflicting value eventually
|
||||
set in associated HTTP_CLIENT_SESSION.
|
||||
|
||||
Warning: for now [2012-May], you can have only one of the following data
|
||||
Warning: for now [2012-05-31], you can have only one of the following data
|
||||
- form_parameters
|
||||
- or upload_data
|
||||
- or upload_filename
|
||||
|
||||
@@ -9,7 +9,7 @@ class
|
||||
LIBCURL_UPLOAD_FILE_READ_FUNCTION
|
||||
|
||||
obsolete
|
||||
"Use LIBCURL_CUSTOM_FUNCTION [2013-apr-04]"
|
||||
"Use LIBCURL_CUSTOM_FUNCTION [2017-05-31]"
|
||||
|
||||
inherit
|
||||
LIBCURL_DEFAULT_FUNCTION
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
<target name="test_http_client">
|
||||
<root class="TEST" feature="make"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
|
||||
</option>
|
||||
<capability>
|
||||
<concurrency support="none"/>
|
||||
<concurrency support="thread"/>
|
||||
</capability>
|
||||
<variable name="netssl_http_client_enabled" value="false"/>
|
||||
<variable name="net_http_client_disabled" value="false"/>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="http_network">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="conneg">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="test" uuid="7860561C-779A-4E45-A7B9-06A1E0E984E8">
|
||||
<target name="test">
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="test_conneg" uuid="7860561C-779A-4E45-A7B9-06A1E0E984E8">
|
||||
<target name="test_conneg">
|
||||
<root class="APPLICATION" feature="make"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="http">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
|
||||
@@ -114,14 +114,14 @@ feature -- Obsolete query
|
||||
|
||||
include_max_age: BOOLEAN
|
||||
obsolete
|
||||
"Use `max_age > 0' [April-2016]"
|
||||
"Use `max_age > 0' [2017-05-31]"
|
||||
do
|
||||
Result := max_age > 0
|
||||
end
|
||||
|
||||
include_expires: BOOLEAN
|
||||
obsolete
|
||||
"Use `expires /= Void' [April-2016]"
|
||||
"Use `expires /= Void' [2017-05-31]"
|
||||
do
|
||||
Result := expiration /= Void
|
||||
end
|
||||
@@ -133,7 +133,7 @@ feature -- Obsolete element change
|
||||
-- Set `expires to void'
|
||||
-- Set-Cookie will include only Max-Age attribute and not Expires.
|
||||
obsolete
|
||||
"Uset `set_max_age' and `unset_*' features to add or remove the attributes from the response header [April-2016]"
|
||||
"Uset `set_max_age' and `unset_*' features to add or remove the attributes from the response header [2017-05-31]"
|
||||
do
|
||||
max_age := 1
|
||||
expiration := Void
|
||||
@@ -147,7 +147,7 @@ feature -- Obsolete element change
|
||||
-- Set `expiration to a default date'
|
||||
-- Set-Cookie will include only Expires attribute and not Max_Age.
|
||||
obsolete
|
||||
"Use `set_expiration' and `unset_*' features to add or remove the attribute from the response header [April-2016]"
|
||||
"Use `set_expiration' and `unset_*' features to add or remove the attribute from the response header [2017-05-31]"
|
||||
do
|
||||
max_age := -1
|
||||
set_expiration_date (create {DATE_TIME}.make_now_utc)
|
||||
@@ -343,7 +343,7 @@ feature {NONE} -- Constants
|
||||
end
|
||||
|
||||
note
|
||||
copyright: "2011-2016, Jocelyn Fiat, Eiffel Software and others"
|
||||
copyright: "2011-2017, Jocelyn Fiat, Eiffel Software and others"
|
||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||
source: "[
|
||||
Eiffel Software
|
||||
|
||||
@@ -118,7 +118,7 @@ feature -- Access
|
||||
header_named_value (a_name: READABLE_STRING_8): like item
|
||||
-- First header item found for `a_name' if any
|
||||
obsolete
|
||||
"Use `item' [2014-03]"
|
||||
"Use `item' [2017-05-31]"
|
||||
do
|
||||
Result := item (a_name)
|
||||
end
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="tests" uuid="0582ACC2-11D8-4FE5-888D-61837BA8F43E">
|
||||
<target name="tests">
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="http_tests" uuid="0582ACC2-11D8-4FE5-888D-61837BA8F43E">
|
||||
<target name="http_tests">
|
||||
<root class="AUTOTEST" feature="make"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
<option warning="true">
|
||||
<assertions precondition="true" postcondition="true" check="true"/>
|
||||
</option>
|
||||
<capability>
|
||||
<concurrency support="none" use="none"/>
|
||||
</capability>
|
||||
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/>
|
||||
<library name="http" location="..\http.ecf" readonly="false">
|
||||
<option>
|
||||
|
||||
6
library/network/protocol/http/tests/tests.rc
Normal file
6
library/network/protocol/http/tests/tests.rc
Normal file
@@ -0,0 +1,6 @@
|
||||
#include <windows.h>
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
1 "This Program was made using EiffelStudio using Visual Studio C++"
|
||||
END
|
||||
@@ -2,8 +2,8 @@
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="ws_client" uuid="AF6EDC56-D7B4-4E1F-A62B-40EBED3D93DF">
|
||||
<target name="common">
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <windows.h>
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
1 "This Program was made using EiffelStudio using Visual Studio C++"
|
||||
END
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="web_socket_client">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-16-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-16-0 http://www.eiffel.com/developers/xml/configuration-1-16-0.xsd" name="echo_websocket_server" uuid="C9B3DA5F-DF0D-4C0F-924A-130B5C1E6604">
|
||||
<target name="common">
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
@@ -30,7 +30,7 @@
|
||||
<target name="echo_websocket_server_mt" extends="common">
|
||||
<root class="APPLICATION" feature="make_and_launch"/>
|
||||
<capability>
|
||||
<concurrency use="thread"/>
|
||||
<concurrency support="thread" use="thread"/>
|
||||
</capability>
|
||||
</target>
|
||||
<target name="echo_websocket_server_mt_ssl" extends="echo_websocket_server_mt">
|
||||
|
||||
60
library/network/websocket/server/server.py
Normal file
60
library/network/websocket/server/server.py
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import socket, threading, time, re, hashlib, base64
|
||||
|
||||
magicguid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
|
||||
port = 9999
|
||||
|
||||
|
||||
def printHeaders(headers):
|
||||
print "Headers received from WebSocket client"
|
||||
for key in headers.keys():
|
||||
print key, headers[key]
|
||||
print
|
||||
|
||||
|
||||
def doHandShake(conn, dataheaders):
|
||||
headers = dict(re.findall(r"(?P<name>.*?): (?P<value>.*?)\r\n", dataheaders))
|
||||
printHeaders(headers)
|
||||
key = headers['Sec-WebSocket-Key']
|
||||
print "key", key
|
||||
key += magicguid
|
||||
hashkey = hashlib.sha1()
|
||||
hashkey.update(key)
|
||||
key = base64.b64encode(hashkey.digest())
|
||||
handshake = "HTTP/1.1 101 Switching Protocols\r\n"
|
||||
handshake += "Upgrade: websocket\r\n"
|
||||
handshake += "Connection: Upgrade\r\n"
|
||||
handshake += "Sec-WebSocket-Accept: " + key + "\r\n"
|
||||
# end of header empty line
|
||||
handshake += "\r\n"
|
||||
print
|
||||
print handshake
|
||||
conn.send(handshake)
|
||||
|
||||
|
||||
def handle(conn):
|
||||
time.sleep(1)
|
||||
conn.send('\x81\x0BHello World')
|
||||
time.sleep(1)
|
||||
conn.send('\x81\x12How are you there?')
|
||||
time.sleep(1)
|
||||
conn.close()
|
||||
|
||||
|
||||
s = socket.socket()
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind(('127.0.0.1', port))
|
||||
print "Server listening on port", port
|
||||
s.listen(1)
|
||||
while 1:
|
||||
try:
|
||||
conn, address = s.accept()
|
||||
dataheaders = conn.recv(4096)
|
||||
doHandShake(conn, dataheaders)
|
||||
print "WebSocket open"
|
||||
threading.Thread(target=handle, args=(conn,)).start()
|
||||
except KeyboardInterrupt:
|
||||
print
|
||||
print "Closing now"
|
||||
exit(0)
|
||||
@@ -3,8 +3,8 @@
|
||||
<target name="websocket_server">
|
||||
<root all_classes="true"/>
|
||||
<file_rule>
|
||||
<exclude>/.git$</exclude>
|
||||
<exclude>/.svn$</exclude>
|
||||
<exclude>/\.git$</exclude>
|
||||
<exclude>/\.svn$</exclude>
|
||||
<exclude>/CVS$</exclude>
|
||||
<exclude>/EIFGENs$</exclude>
|
||||
</file_rule>
|
||||
|
||||
Reference in New Issue
Block a user