Software / code / prosody
Comparison
plugins/mod_register.lua @ 7815:f8d25a2e80ea
mod_register: Verify that fields are known to prevent traceback
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 06 Jan 2017 13:09:09 +0100 |
| parent | 7814:2120d71b0d56 |
| child | 7816:2624f4ee34a2 |
comparison
equal
deleted
inserted
replaced
| 7814:2120d71b0d56 | 7815:f8d25a2e80ea |
|---|---|
| 61 | 61 |
| 62 for _, field in ipairs(additional_fields) do | 62 for _, field in ipairs(additional_fields) do |
| 63 if type(field) == "table" then | 63 if type(field) == "table" then |
| 64 registration_form[#registration_form + 1] = field; | 64 registration_form[#registration_form + 1] = field; |
| 65 else | 65 else |
| 66 elseif field_map[field] or field_map[field:sub(1, -2) then | |
| 66 if field:match("%+$") then | 67 if field:match("%+$") then |
| 67 field = field:sub(1, -2); | 68 field = field:sub(1, -2); |
| 68 field_map[field].required = true; | 69 field_map[field].required = true; |
| 69 end | 70 end |
| 70 | 71 |
| 71 registration_form[#registration_form + 1] = field_map[field]; | 72 registration_form[#registration_form + 1] = field_map[field]; |
| 72 registration_query:tag(field):up(); | 73 registration_query:tag(field):up(); |
| 74 else | |
| 75 module:log("error", "Unknown field %q", field); | |
| 73 end | 76 end |
| 74 end | 77 end |
| 75 registration_query:add_child(registration_form:form()); | 78 registration_query:add_child(registration_form:form()); |
| 76 | 79 |
| 77 module:add_feature("jabber:iq:register"); | 80 module:add_feature("jabber:iq:register"); |