Mercurial > prosody-modules
comparison mod_smacks/mod_smacks.lua @ 623:c1f3958695ea
mod_smacks: If a resumed session still has a connection open, close that connection before resuming
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 17 Mar 2012 15:53:45 +0000 |
| parents | ce39df945de1 |
| children | 55a9d3c2f73b |
comparison
equal
deleted
inserted
replaced
| 622:ce39df945de1 | 623:c1f3958695ea |
|---|---|
| 250 ); | 250 ); |
| 251 elseif session.username == original_session.username | 251 elseif session.username == original_session.username |
| 252 and session.host == original_session.host then | 252 and session.host == original_session.host then |
| 253 session.log("debug", "mod_smacks resuming existing session..."); | 253 session.log("debug", "mod_smacks resuming existing session..."); |
| 254 -- TODO: All this should move to sessionmanager (e.g. session:replace(new_session)) | 254 -- TODO: All this should move to sessionmanager (e.g. session:replace(new_session)) |
| 255 if original_session.conn then | |
| 256 session.log("debug", "mod_smacks closing an old connection for this session"); | |
| 257 local conn = original_session.conn; | |
| 258 require "net.connlisteners".get("xmppclient").associate_session(conn, nil); | |
| 259 conn:close(); | |
| 260 end | |
| 255 original_session.ip = session.ip; | 261 original_session.ip = session.ip; |
| 256 original_session.conn = session.conn; | 262 original_session.conn = session.conn; |
| 257 original_session.send = session.send; | 263 original_session.send = session.send; |
| 258 original_session.stream = session.stream; | 264 original_session.stream = session.stream; |
| 259 original_session.secure = session.secure; | 265 original_session.secure = session.secure; |
