reuse implementation from WSF_REQUEST to get input data for MIME handlers.
This commit is contained in:
@@ -52,7 +52,7 @@ feature {NONE} -- Implementation: Form analyzer
|
|||||||
require
|
require
|
||||||
a_content_type_valid: a_content_type /= Void and not a_content_type.has_error
|
a_content_type_valid: a_content_type /= Void and not a_content_type.has_error
|
||||||
s_attached: s /= Void
|
s_attached: s /= Void
|
||||||
same_content_length: req.content_length_value > 0 implies req.content_length_value.as_integer_32 = s.count
|
same_content_length: req.content_length_value > 0 implies req.content_length_value.as_integer_32 <= s.count
|
||||||
vars_attached: vars /= Void
|
vars_attached: vars /= Void
|
||||||
local
|
local
|
||||||
p,i,next_b: INTEGER
|
p,i,next_b: INTEGER
|
||||||
|
|||||||
@@ -9,42 +9,10 @@ deferred class
|
|||||||
|
|
||||||
feature {NONE} -- Implementation
|
feature {NONE} -- Implementation
|
||||||
|
|
||||||
full_input_data (req: WSF_REQUEST): READABLE_STRING_8
|
full_input_data (req: WSF_REQUEST): STRING_8
|
||||||
do
|
do
|
||||||
Result := read_input_data (req.input, req.content_length_value)
|
create Result.make (0)
|
||||||
end
|
req.read_input_data_into (Result)
|
||||||
|
|
||||||
read_input_data (a_input: WGI_INPUT_STREAM; a_content_length: NATURAL_64): STRING_8
|
|
||||||
-- All data from input form
|
|
||||||
local
|
|
||||||
n: INTEGER
|
|
||||||
t: STRING
|
|
||||||
do
|
|
||||||
if a_content_length > 0 then
|
|
||||||
create Result.make (a_content_length.as_integer_32)
|
|
||||||
n := a_input.read_to_string (Result, 1, Result.capacity)
|
|
||||||
check n = a_content_length end
|
|
||||||
else
|
|
||||||
from
|
|
||||||
n := 8_192
|
|
||||||
create Result.make (n)
|
|
||||||
until
|
|
||||||
n = 0
|
|
||||||
loop
|
|
||||||
a_input.read_string (n)
|
|
||||||
t := a_input.last_string
|
|
||||||
if t.count = 0 then
|
|
||||||
n := 0
|
|
||||||
else
|
|
||||||
if t.count < n then
|
|
||||||
n := 0
|
|
||||||
end
|
|
||||||
Result.append_string (t)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
ensure
|
|
||||||
same_content_length: a_content_length > 0 implies Result.count = a_content_length.as_integer_32
|
|
||||||
end
|
end
|
||||||
|
|
||||||
add_string_value_to_table (a_name: READABLE_STRING_8; a_value: READABLE_STRING_8; a_table: HASH_TABLE [WSF_VALUE, READABLE_STRING_GENERAL])
|
add_string_value_to_table (a_name: READABLE_STRING_8; a_value: READABLE_STRING_8; a_table: HASH_TABLE [WSF_VALUE, READABLE_STRING_GENERAL])
|
||||||
|
|||||||
@@ -211,22 +211,16 @@ feature -- Access: Input
|
|||||||
until
|
until
|
||||||
n = 0
|
n = 0
|
||||||
loop
|
loop
|
||||||
l_input.read_string (n)
|
l_input.append_to_string (buf, n)
|
||||||
s := l_input.last_string
|
if l_input.last_appended_count < n then
|
||||||
if s.count = 0 then
|
|
||||||
n := 0
|
n := 0
|
||||||
else
|
|
||||||
if s.count < n then
|
|
||||||
n := 0
|
|
||||||
end
|
|
||||||
buf.append (s)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
n := content_length_value.as_integer_32
|
n := content_length_value.as_integer_32
|
||||||
if n > 0 then
|
if n > 0 then
|
||||||
buf.resize (buf.count + n)
|
l_input.append_to_string (buf, n)
|
||||||
n := l_input.read_to_string (buf, buf.count + 1, n)
|
n := l_input.last_appended_count
|
||||||
check n = content_length_value.as_integer_32 end
|
check n = content_length_value.as_integer_32 end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user