Mercurial > prosody-hg
diff core/sessionmanager.lua @ 305:4ccffcd6e720
Merge from waqas
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 15 Nov 2008 22:29:24 +0000 |
| parents | 7b28fa8bbfe5 |
| children | d9c8825b7332 |
line wrap: on
line diff
--- a/core/sessionmanager.lua Sat Nov 15 22:07:31 2008 +0000 +++ b/core/sessionmanager.lua Sat Nov 15 22:29:24 2008 +0000 @@ -68,9 +68,13 @@ return true; end +-- returns true, nil on success +-- returns nil, err_type, err, err_message on failure function bind_resource(session, resource) - if not session.username then return false, "auth"; end - if session.resource then return false, "constraint"; end -- We don't support binding multiple resources + if not session.username then return nil, "auth", "not-authorized", "Cannot bind resource before authentication"; end + if session.resource then return nil, "cancel", "already-bound", "Cannot bind multiple resources on a single connection"; end + -- We don't support binding multiple resources + resource = resource or uuid_generate(); --FIXME: Randomly-generated resources must be unique per-user, and never conflict with existing @@ -79,7 +83,7 @@ else if hosts[session.host].sessions[session.username].sessions[resource] then -- Resource conflict - return false, "conflict"; -- TODO kick old resource + return nil, "cancel", "conflict", "Resource already exists"; -- TODO kick old resource end end
