aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2003-03-28 21:24:30 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2003-03-28 21:24:30 +0000
commitd0560e0b4419cc6812f83b88b1cb9009481eab1f (patch)
treeab166219108807a501746d05e43abff64c3d1bbe
parentf18d1b7cd0ec4708518ab5e18ea33b6eadca0301 (diff)
downloadluasocket-d0560e0b4419cc6812f83b88b1cb9009481eab1f.tar.gz
luasocket-d0560e0b4419cc6812f83b88b1cb9009481eab1f.tar.bz2
luasocket-d0560e0b4419cc6812f83b88b1cb9009481eab1f.zip
Local index in for loop was getting changed...
-rw-r--r--samples/tinyirc.lua28
1 files changed, 14 insertions, 14 deletions
diff --git a/samples/tinyirc.lua b/samples/tinyirc.lua
index b0c4168..d3e56e7 100644
--- a/samples/tinyirc.lua
+++ b/samples/tinyirc.lua
@@ -1,11 +1,11 @@
1function set_add(set, sock) 1function set_add(set, sock)
2 tinsert(set, sock) 2 table.insert(set, sock)
3end 3end
4 4
5function set_remove(set, sock) 5function set_remove(set, sock)
6 for i = 1, getn(set) do 6 for i = 1, table.getn(set) do
7 if set[i] == sock then 7 if set[i] == sock then
8 tremove(set, i) 8 table.remove(set, i)
9 break 9 break
10 end 10 end
11 end 11 end
@@ -20,10 +20,10 @@ if arg then
20 port2 = arg[3] or port2 20 port2 = arg[3] or port2
21end 21end
22 22
23server1, error = bind(host, port1) 23server1, error = socket.bind(host, port1)
24if not server1 then print(error) exit() end 24if not server1 then print(error) exit() end
25server1:timeout(1) 25server1:timeout(1)
26server2, error = bind(host, port2) 26server2, error = socket.bind(host, port2)
27if not server2 then print(error) exit() end 27if not server2 then print(error) exit() end
28server2:timeout(1) 28server2:timeout(1)
29 29
@@ -35,7 +35,7 @@ sock_id[server2] = 2
35next_id = 3 35next_id = 3
36 36
37while 1 do 37while 1 do
38 local readable, _, error = select(sock_set, nil) 38 local readable, _, error = socket.select(sock_set, nil)
39 for _, sock in readable do 39 for _, sock in readable do
40 -- is it a server socket 40 -- is it a server socket
41 if sock_id[sock] < 3 then 41 if sock_id[sock] < 3 then
@@ -44,8 +44,8 @@ while 1 do
44 incomming:timeout(1) 44 incomming:timeout(1)
45 sock_id[incomming] = next_id 45 sock_id[incomming] = next_id
46 set_add(sock_set, incomming) 46 set_add(sock_set, incomming)
47 write("Added client id ", next_id, ". ", 47 io.write("Added client id ", next_id, ". ",
48 getn(sock_set)-2, " total.\n") 48 table.getn(sock_set)-2, " total.\n")
49 next_id = next_id + 1 49 next_id = next_id + 1
50 end 50 end
51 -- it is a client socket 51 -- it is a client socket
@@ -55,17 +55,17 @@ while 1 do
55 if error then 55 if error then
56 sock:close() 56 sock:close()
57 set_remove(sock_set, sock) 57 set_remove(sock_set, sock)
58 write("Removed client number ", id, ". ", 58 io.write("Removed client number ", id, ". ",
59 getn(sock_set)-2, " total.\n") 59 getn(sock_set)-2, " total.\n")
60 else 60 else
61 write("Broadcasting line '", id, "> ", line, "'.\n") 61 io.write("Broadcasting line '", id, "> ", line, "'.\n")
62 _, writable, error = select(nil, sock_set, 1) 62 __, writable, error = socket.select(nil, sock_set, 1)
63 if not error then 63 if not error then
64 for _, outgoing in writable do 64 for ___, outgoing in writable do
65 write("Sending to client ", sock_id[outgoing], "\n") 65 io.write("Sending to client ", sock_id[outgoing], "\n")
66 outgoing:send(id, "> ", line, "\r\n") 66 outgoing:send(id, "> ", line, "\r\n")
67 end 67 end
68 else write("No one ready to listen!!!\n") end 68 else io.write("No one ready to listen!!!\n") end
69 end 69 end
70 end 70 end
71 end 71 end