Software /
code /
prosody
Comparison
util/sasl.lua @ 3427:046a8cf304dd
util.sasl: Removed method:forbidden() and its side effects.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Mon, 02 Aug 2010 18:47:33 +0500 |
parent | 3373:cd6836586a6a |
child | 3441:d4f89802cf1e |
comparison
equal
deleted
inserted
replaced
3426:37b9b8e171b9 | 3427:046a8cf304dd |
---|---|
59 t_insert(backend_mechanism[backend_name], name); | 59 t_insert(backend_mechanism[backend_name], name); |
60 end | 60 end |
61 end | 61 end |
62 | 62 |
63 -- create a new SASL object which can be used to authenticate clients | 63 -- create a new SASL object which can be used to authenticate clients |
64 function new(realm, profile, forbidden) | 64 function new(realm, profile) |
65 local sasl_i = {profile = profile}; | 65 local sasl_i = {profile = profile}; |
66 sasl_i.realm = realm; | 66 sasl_i.realm = realm; |
67 local s = setmetatable(sasl_i, method); | 67 return setmetatable(sasl_i, method); |
68 if forbidden == nil then forbidden = {} end | |
69 s:forbidden(forbidden) | |
70 return s; | |
71 end | 68 end |
72 | 69 |
73 -- get a fresh clone with the same realm, profiles and forbidden mechanisms | 70 -- get a fresh clone with the same realm and profile |
74 function method:clean_clone() | 71 function method:clean_clone() |
75 return new(self.realm, self.profile, self:forbidden()) | 72 return new(self.realm, self.profile) |
76 end | |
77 | |
78 -- set the forbidden mechanisms | |
79 function method:forbidden( restrict ) | |
80 if restrict then | |
81 -- set forbidden | |
82 self.restrict = set.new(restrict); | |
83 else | |
84 -- get forbidden | |
85 return array.collect(self.restrict:items()); | |
86 end | |
87 end | 73 end |
88 | 74 |
89 -- get a list of possible SASL mechanims to use | 75 -- get a list of possible SASL mechanims to use |
90 function method:mechanisms() | 76 function method:mechanisms() |
91 local mechanisms = self.mechs; | 77 local mechanisms = self.mechs; |
92 if not mechanisms then | 78 if not mechanisms then |
93 mechanisms = {} | 79 mechanisms = {} |
94 for backend, f in pairs(self.profile) do | 80 for backend, f in pairs(self.profile) do |
95 if backend_mechanism[backend] then | 81 if backend_mechanism[backend] then |
96 for _, mechanism in ipairs(backend_mechanism[backend]) do | 82 for _, mechanism in ipairs(backend_mechanism[backend]) do |
97 if not self.restrict:contains(mechanism) then | 83 mechanisms[mechanism] = true; |
98 mechanisms[mechanism] = true; | |
99 end | |
100 end | 84 end |
101 end | 85 end |
102 end | 86 end |
103 self.mechs = mechanisms; | 87 self.mechs = mechanisms; |
104 end | 88 end |