Mercurial > prosody-modules
comparison mod_privacy/mod_privacy.lua @ 18:2df11ec081fe
mod_privacy: make finding the right session working
author | Thilo Cestonaro <thilo@cestona.ro> |
---|---|
date | Mon, 28 Sep 2009 22:36:01 +0200 |
parents | ccb07c0efc7e |
children | e400ee8471b0 |
comparison
equal
deleted
inserted
replaced
17:ccb07c0efc7e | 18:2df11ec081fe |
---|---|
387 return; | 387 return; |
388 end | 388 end |
389 if resource == nil then | 389 if resource == nil then |
390 local prio = 0; | 390 local prio = 0; |
391 local session_; | 391 local session_; |
392 for _,session_ in ipairs(bare_sessions[node.."@"..host].sessions) do | 392 if bare_sessions[node.."@"..host] ~= nil then |
393 if session_.priority > prio then | 393 for resource, session_ in pairs(bare_sessions[node.."@"..host].sessions) do |
394 session = session_; | 394 if session_.priority > prio then |
395 prio = session_.priority; | 395 session = session_; |
396 prio = session_.priority; | |
397 end | |
396 end | 398 end |
397 end | 399 end |
398 else | 400 else |
399 session = full_sessions[node.."@"..host.."/"..resource]; | 401 session = full_sessions[node.."@"..host.."/"..resource]; |
400 end | 402 end |
401 return checkIfNeedToBeBlocked(e, session); | 403 if session ~= nil then |
404 return checkIfNeedToBeBlocked(e, session); | |
405 else | |
406 module:log("debug", "preCheckIncoming: Couldn't get session for jid: %s@%s/%s", node or "nil", host or "nil", resource or "nil") | |
407 end | |
402 end | 408 end |
403 return; | 409 return; |
404 end | 410 end |
405 | 411 |
406 function preCheckOutgoing(e) | 412 function preCheckOutgoing(e) |
411 return; | 417 return; |
412 end | 418 end |
413 if resource == nil then | 419 if resource == nil then |
414 local prio = 0; | 420 local prio = 0; |
415 local session_; | 421 local session_; |
416 for _,session_ in ipairs(bare_sessions[node.."@"..host].sessions) do | 422 if bare_sessions[node.."@"..host] ~= nil then |
417 if session_.priority > prio then | 423 for resource, session_ in pairs(bare_sessions[node.."@"..host].sessions) do |
418 session = session_; | 424 if session_.priority > prio then |
419 prio = session_.priority; | 425 session = session_; |
426 prio = session_.priority; | |
427 end | |
420 end | 428 end |
421 end | 429 end |
422 else | 430 else |
423 session = full_sessions[node.."@"..host.."/"..resource]; | 431 session = full_sessions[node.."@"..host.."/"..resource]; |
424 end | 432 end |
425 return checkIfNeedToBeBlocked(e, session); | 433 if session ~= nil then |
434 return checkIfNeedToBeBlocked(e, session); | |
435 else | |
436 module:log("debug", "preCheckOutgoing: Couldn't get session for jid: %s@%s/%s", node or "nil", host or "nil", resource or "nil") | |
437 end | |
426 end | 438 end |
427 return; | 439 return; |
428 end | 440 end |
429 | 441 |
430 | 442 |