diff options
author | Christian Pointner <equinox@anylike.org> | 2009-12-27 21:46:25 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anylike.org> | 2009-12-27 21:46:25 +0000 |
commit | 621058d87632928e54295596ebe13a2e6df4fe71 (patch) | |
tree | 8ff26973a324331962d138224061f8fa987f5c00 /src | |
parent | added signal handler and initial main loop (diff) |
added second echo server
Diffstat (limited to 'src')
-rw-r--r-- | src/echo_server.lua | 3 | ||||
-rw-r--r-- | src/main_loop.lua | 15 |
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 |