Updated libfcgi source code for Windows AND Linux.

Cleaning some code and feature clauses.
This commit is contained in:
Jocelyn Fiat
2011-11-14 15:44:10 +01:00
parent 13b09adc8c
commit 8c02b0d546
3 changed files with 57 additions and 28 deletions

View File

@@ -64,6 +64,18 @@ feature -- Input
]"
end
feature {FCGI_IMP} -- Internal
feof (v: POINTER): INTEGER
-- FCGI_feof()
external
"C inline use %"fcgi_stdio.h%""
alias
"FCGI_feof"
end
feature {NONE} -- Input
gets (s: POINTER): POINTER
-- gets() reads a line from stdin into the buffer pointed to
-- by s until either a terminating newline or EOF, which it
@@ -84,6 +96,24 @@ feature -- Output
"FCGI_fwrite($v, 1, $n, FCGI_stdout);"
end
feature -- Access
stdout: POINTER
-- FCGI_stdout() return pointer on output FCGI_FILE
external
"C inline use %"fcgi_stdio.h%""
alias
"FCGI_stdout"
end
stdin: POINTER
-- FCGI_stdin() return pointer on input FCGI_FILE
external
"C inline use %"fcgi_stdio.h%""
alias
"FCGI_stdin"
end
note
copyright: "Copyright (c) 1984-2011, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"

View File

@@ -30,6 +30,11 @@ feature -- Access
Result := fcgi.environ
end
fcgi_end_of_input: BOOLEAN
do
Result := fcgi.feof (fcgi.stdin) = 0
end
feature -- FCGI Connection
fcgi_listen: INTEGER
@@ -72,15 +77,6 @@ feature -- FCGI output
{FCGI_C_API}.put_string (l_c_str.item, l_c_str.count)
end
-- fcgi_printf (fmt: STRING; args: FINITE[ANY])
-- -- Put args, formatted per 'fmt' on the FastCGI stdout.
-- local
-- l_c_str: C_STRING
-- do
-- create l_c_str.make (apf.aprintf (fmt, args))
-- {FCGI_C_API}.put_string (l_c_str.item, l_c_str.count)
-- end
feature -- FCGI Input
copy_from_stdin (n: INTEGER; tf: FILE)
@@ -90,15 +86,12 @@ feature -- FCGI Input
num, readsize, writecount: INTEGER
done: BOOLEAN
do
--put_trace ("copy_from_stdin, n=" +n.out)
readsize := n.min (K_input_bufsize)
--put_trace ("copy_from_stdin, readsize=" +readsize.out)
l_c_str := c_buffer
from
until done or writecount >= n
loop
num := {FCGI_C_API}.read_content_into (l_c_str.item, readsize)
--put_trace ("copy_from_stdin, num=" +num.out)
if num = 0 then
-- EOF
done := True