aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2007-09-04 18:20:01 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2007-09-04 18:20:01 -0500
commitb37239c2f9b627457b6a2147faa0821b20380e96 (patch)
treef3752fbd32c60063adefc19c96f58dbf3ff6ec3c
parent34b1f0bfd0acb2dd82238f2395121d32912ca444 (diff)
downloadluairc-b37239c2f9b627457b6a2147faa0821b20380e96.tar.gz
luairc-b37239c2f9b627457b6a2147faa0821b20380e96.zip
sock:bind() failure invalidates the socket's file descriptor
-rw-r--r--src/irc/dcc.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/irc/dcc.lua b/src/irc/dcc.lua
index 5b9f8a1..5567695 100644
--- a/src/irc/dcc.lua
+++ b/src/irc/dcc.lua
@@ -151,8 +151,9 @@ end
-- above)
function send(nick, filename, port)
port = port or FIRST_PORT
- local sock = base.assert(socket.tcp())
+ local sock
repeat
+ sock = base.assert(socket.tcp())
err, msg = sock:bind('*', port)
port = port + 1
until msg ~= "address already in use" and port <= LAST_PORT + 1