Software /
code /
prosody-modules
Comparison
mod_tcpproxy/mod_tcpproxy.lua @ 153:31e24026e4fd
mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 19 May 2010 14:02:19 +0100 |
parent | 147:4db80a46b064 |
child | 277:07c1c3eaf0c4 |
comparison
equal
deleted
inserted
replaced
152:4ca382e8a4c5 | 153:31e24026e4fd |
---|---|
82 conn = server.wrapclient(conn, to_host, to_port, listener, "*a" ); | 82 conn = server.wrapclient(conn, to_host, to_port, listener, "*a" ); |
83 new_session(jid, sid, conn); | 83 new_session(jid, sid, conn); |
84 elseif ibb_tag.name == "data" then | 84 elseif ibb_tag.name == "data" then |
85 local conn = open_connections[stanza.attr.from][ibb_tag.attr.sid]; | 85 local conn = open_connections[stanza.attr.from][ibb_tag.attr.sid]; |
86 if conn then | 86 if conn then |
87 conn:write(unb64(ibb_tag:get_text())); | 87 local data = unb64(ibb_tag:get_text()); |
88 if data then | |
89 conn:write(data); | |
90 else | |
91 return origin.send( | |
92 st.error_reply(stanza, "modify", "bad-request", "Invalid data (base64?)") | |
93 ); | |
94 end | |
88 else | 95 else |
89 return origin.send(st.error_reply(stanza, "cancel", "item-not-found")); | 96 return origin.send(st.error_reply(stanza, "cancel", "item-not-found")); |
90 end | 97 end |
91 elseif ibb_tag.name == "close" then | 98 elseif ibb_tag.name == "close" then |
92 if close_session(stanza.attr.from, ibb_tag.attr.sid) then | 99 if close_session(stanza.attr.from, ibb_tag.attr.sid) then |