aboutsummaryrefslogtreecommitdiff
path: root/elymas/lib/net/alg/server.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-09-04 01:55:51 +0200
committerDrahflow <drahflow@gmx.de>2013-09-04 01:55:51 +0200
commit3fb7dd375ada97b9413abfecccd8a889c53dc93a (patch)
tree583915d9624b8892519334023282ab99b2ead632 /elymas/lib/net/alg/server.ey
parent20efe1efeb3c62b884ccc16fd77e3b4c430c3ed9 (diff)
Minimal HTTP server
Diffstat (limited to 'elymas/lib/net/alg/server.ey')
-rw-r--r--elymas/lib/net/alg/server.ey6
1 files changed, 4 insertions, 2 deletions
diff --git a/elymas/lib/net/alg/server.ey b/elymas/lib/net/alg/server.ey
index 9935016..73ab10c 100644
--- a/elymas/lib/net/alg/server.ey
+++ b/elymas/lib/net/alg/server.ey
@@ -94,13 +94,14 @@
sys .linux .epoll "++" via
- { ":" via "" ==inBuffer "" ==outBuffer
+ { ":" via "" ==inBuffer "" ==outBuffer 0 ==finished
<
{
outBuffer -01 cat =outBuffer
++EPOLLOUT ++EPOLLIN ++EPOLLERR bor bor :ctl
} =*write
{ :close } =*close
+ { 1 =finished } =*finish
> ::accept ":::" via <
{
4096 :read _ len
@@ -111,7 +112,8 @@
{
outBuffer _ :write -01 str .postfix
_ =outBuffer
- len { ++EPOLLOUT } { 0 } ? * ++EPOLLIN ++EPOLLERR bor bor :ctl
+ len _ { ++EPOLLOUT } { 0 } ? * ++EPOLLIN ++EPOLLERR bor bor :ctl
+ not finished and { :close } rep
} =*out
{ :::err } =*err
>