diff options
author | Evgeniy Khramtsov <xramtsov@gmail.com> | 2010-02-02 12:20:19 +0000 |
---|---|---|
committer | Evgeniy Khramtsov <xramtsov@gmail.com> | 2010-02-02 12:20:19 +0000 |
commit | d9e345a4d85b7e3b17a476d1b00b56ed3c8ddfde (patch) | |
tree | 9400dc7cdc6453d02941e0b3914421db1b5f958c /src | |
parent | changed Reason to shutdown when stopping destroyed MUC room (diff) |
iq_query_info/1 now returns 'invalid' if XMLNS is invalid
SVN Revision: 2953
Diffstat (limited to 'src')
-rw-r--r-- | src/jlib.erl | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/jlib.erl b/src/jlib.erl index f0dffe08a..5df54d6dd 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -382,7 +382,7 @@ iq_info_internal({xmlelement, Name, Attrs, Els}, Filter) when Name == "iq" -> "result" -> {result, reply}; "error" -> {error, reply}; _ -> {invalid, invalid} - end, + end, if Type1 == invalid -> invalid; @@ -404,22 +404,26 @@ iq_info_internal({xmlelement, Name, Attrs, Els}, Filter) when Name == "iq" -> <- FilteredEls, SubName /= "error"], {case NonErrorEls of - [NonErrorEl] -> xml:get_tag_attr_s("xmlns", NonErrorEl); - _ -> invalid + [NonErrorEl] -> + xml:get_tag_attr_s("xmlns", NonErrorEl); + _ -> + invalid end, FilteredEls}; _ -> - {invalid, invalid} + {invalid, []} end, if XMLNS == "", Class == request -> invalid; + XMLNS == invalid -> + invalid; true -> - #iq{id = ID, - type = Type1, - xmlns = XMLNS, - lang = Lang, + #iq{id = ID, + type = Type1, + xmlns = XMLNS, + lang = Lang, sub_el = SubEl} - end; + end; Class == reply, Filter /= any -> reply end; |