Merge remote branch 'jacop/ssl'

Conflicts:
	asyncoperations.lua
This commit is contained in:
Joshua Simmons 2010-07-19 11:18:07 +10:00
commit 01ffa79347
2 changed files with 359 additions and 362 deletions

View File

@ -7,11 +7,7 @@ local meta = _META
function meta:send(fmt, ...) function meta:send(fmt, ...)
local bytes, err = self.socket:send(fmt:format(...) .. "\r\n") local bytes, err = self.socket:send(fmt:format(...) .. "\r\n")
if bytes then if not bytes and err ~= "timeout" and err ~= "wantwrite" then
return
end
if err ~= "timeout" and err ~= "wantwrite" then
self:invoke("OnDisconnect", err, true) self:invoke("OnDisconnect", err, true)
self:shutdown() self:shutdown()
error(err, errlevel) error(err, errlevel)
@ -73,12 +69,12 @@ function meta:setMode(t)
assert(add or rem, "table contains neither 'add' nor 'remove'") assert(add or rem, "table contains neither 'add' nor 'remove'")
if add then if add then
mode = table.concat{"+", add} mode = table.concat{"+", verify(add, 3)}
end end
if rem then if rem then
mode = table.concat{mode, "-", rem} mode = table.concat{mode, "-", verify(rem, 3)}
end end
self:send("MODE %s %s", verify(target, 3), verify(mode, 3)) self:send("MODE %s %s", verify(target, 3), mode)
end end

View File

@ -109,7 +109,7 @@ function meta_preconnect:connect(_host, _port)
s = ssl.wrap(s, params) s = ssl.wrap(s, params)
success, errmsg = s:dohandshake() success, errmsg = s:dohandshake()
if not success then if not success then
error(("could not make secure connection %s"):format(errmsg), 2) error(("could not make secure connection: %s"):format(errmsg), 2)
end end
end end
@ -133,7 +133,7 @@ function meta_preconnect:connect(_host, _port)
end end
function meta:disconnect(message) function meta:disconnect(message)
local message = message or "Bye!" message = message or "Bye!"
self:invoke("OnDisconnect", message, false) self:invoke("OnDisconnect", message, false)
self:send("QUIT :%s", message) self:send("QUIT :%s", message)
@ -352,3 +352,4 @@ end
function meta:topic(channel) function meta:topic(channel)
self:send("TOPIC %s", channel) self:send("TOPIC %s", channel)
end end