summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anylike.org>2009-12-27 21:46:25 +0000
committerChristian Pointner <equinox@anylike.org>2009-12-27 21:46:25 +0000
commit621058d87632928e54295596ebe13a2e6df4fe71 (patch)
tree8ff26973a324331962d138224061f8fa987f5c00 /src
parentadded signal handler and initial main loop (diff)
added second echo server
Diffstat (limited to 'src')
-rw-r--r--src/echo_server.lua3
-rw-r--r--src/main_loop.lua15
2 files changed, 10 insertions, 8 deletions
diff --git a/src/echo_server.lua b/src/echo_server.lua
index 2a40754..3c35337 100644
--- a/src/echo_server.lua
+++ b/src/echo_server.lua
@@ -25,8 +25,7 @@
socket = require("socket")
-function echo_server_init()
- local host, port = "localhost", 4500
+function echo_server_init(host, port)
local ip, err = socket.dns.toip(host)
if(ip == nil) then
log.printf("ERROR", "can't resolve %s: %s", host, err)
diff --git a/src/main_loop.lua b/src/main_loop.lua
index 9f32d0b..8f69f47 100644
--- a/src/main_loop.lua
+++ b/src/main_loop.lua
@@ -29,19 +29,22 @@ function main_loop(opt)
log.printf("NOTICE", "main_loop started")
local sig = signal.init()
- local sock = echo_server_init()
- if(sock == nil) then return -1 end
+ local sock = {}
+ sock[1] = echo_server_init("localhost", 4500)
+ if(sock[1] == nil) then return -1 end
+
+ sock[2] = echo_server_init("localhost", 10000)
+ if(sock[2] == nil) then return -1 end
local ret = 0
while ret == 0 do
- local readable, _, err = socket.select({ sig , sock }, nil)
+ local readable, _, err = socket.select({ sig , sock[1], sock[2] }, nil)
for _, input in ipairs(readable) do
if(input == sig) then
ret = signal.handle()
+ if(ret == 1) then break end
else
- if(input == sock) then
- ret = echo_server_recv(sock)
- end
+ ret = echo_server_recv(input)
end
end
end