# HG changeset patch # User Matthew Wild # Date 1527713709 -3600 # Node ID 7ec098b68042f60687f1002e788b34b06048945d # Parent 463505cc75d584c5a0b0a735a36d60ec4b18a437# Parent c6b45cac942333b616157095d457cebe61bd8c34 Merge 0.9->0.10 diff -r 463505cc75d5 -r 7ec098b68042 .hgtags --- a/.hgtags Wed May 30 21:33:53 2018 +0100 +++ b/.hgtags Wed May 30 21:55:09 2018 +0100 @@ -63,3 +63,4 @@ 39966cbc29f46d7ae9660edca8683d5121c82edf 0.10.0 082d127286451eb55420c36424dd321e8d9bceee 0.9.13 4ae8dd415e9431924ad4aa0b57bcee8a4a9272f8 0.10.1 +29c6d2681bad9f67d8bd548bb3a7973473bae91e 0.9.14 diff -r 463505cc75d5 -r 7ec098b68042 plugins/mod_c2s.lua --- a/plugins/mod_c2s.lua Wed May 30 21:33:53 2018 +0100 +++ b/plugins/mod_c2s.lua Wed May 30 21:55:09 2018 +0100 @@ -49,12 +49,19 @@ function stream_callbacks.streamopened(session, attr) local send = session.send; - session.host = nameprep(attr.to); - if not session.host then + local host = nameprep(attr.to); + if not host then session:close{ condition = "improper-addressing", text = "A valid 'to' attribute is required on stream headers" }; return; end + if not session.host then + session.host = host; + elseif session.host ~= host then + session:close{ condition = "not-authorized", + text = "The 'to' attribute must remain the same across stream restarts" }; + return; + end session.version = tonumber(attr.version) or 0; session.streamid = uuid_generate(); (session.log or session)("debug", "Client sent opening to %s", session.host);