diff --git a/ChangeLog b/ChangeLog index 65fd89058..976dc118d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2003-03-15 Alexey Shchepin + + * src/xml_stream.erl: Removed "link" which cause not improper + closing of xml connections + +2003-03-14 Alexey Shchepin + + * src/jlib.hrl: Added "invalid-namespace" error + * src/ejabberd_c2s.erl: Likewise + 2003-03-12 Alexey Shchepin * src/ejabberd_s2s_out.erl: Fixed ports leak diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 27395bae6..b023fbaa6 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -47,7 +47,7 @@ pres_timestamp, pres_invis = false}). -%-define(DBGFSM, true). +-define(DBGFSM, true). -ifdef(DBGFSM). -define(FSMOPTS, [{debug, [trace]}]). @@ -64,7 +64,8 @@ -define(STREAM_TRAILER, ""). --define(INVALID_NS_ERR, "Invalid Namespace"). +-define(INVALID_NS_ERR, + xml:element_to_string(?SERR_INVALID_NAMESPACE)). %-define(INVALID_XML_ERR, % "Invalid XML"). -define(INVALID_XML_ERR, @@ -144,7 +145,7 @@ wait_for_stream({xmlstreamstart, Name, Attrs}, StateData) -> ?STREAM_HEADER, [StateData#state.streamid, ?MYNAME, ""]), send_text(StateData#state.socket, - Header ++ ?INVALID_NS_ERR ?STREAM_TRAILER), + Header ++ ?INVALID_NS_ERR ++ ?STREAM_TRAILER), {stop, normal, StateData} end; diff --git a/src/jlib.hrl b/src/jlib.hrl index e34432104..ace624c76 100644 --- a/src/jlib.hrl +++ b/src/jlib.hrl @@ -82,6 +82,8 @@ ?STREAM_ERROR("address", "host-unknown")). -define(SERR_INTERNAL_SERVER_ERROR, ?STREAM_ERROR("server", "internal-server-error")). +-define(SERR_INVALID_NAMESPACE, + ?STREAM_ERROR("format", "invalid-namespace")). -define(SERR_RESOURSE_CONSTRAINT, ?STREAM_ERROR("server", "resource-constraint")). % TODO: include hostname or IP diff --git a/src/xml_stream.erl b/src/xml_stream.erl index 583fc7cf0..bb3776157 100644 --- a/src/xml_stream.erl +++ b/src/xml_stream.erl @@ -16,7 +16,6 @@ start(CallbackPid) -> spawn(?MODULE, init, [CallbackPid]). init(CallbackPid) -> - link(CallbackPid), Port = open_port({spawn, expat_erl}, [binary]), loop(CallbackPid, Port, []).