Ejabberd c2s modification

I am trying to modify ejabberd for a particular requirement, where I want to skip sending stream start element. I seem to have started off well with modifying ejabberd_c2s.erl

Once I began testing I observed that my state functions are being called with
{xmlstreamstart, Name, Attrs}, StateData
or
xmlstreamend, Name (once I found a work around for above)

Which module is formatting the xml received by ejabberd_receiver.erl to the above format.
I am new to erlang and ejabberd code structure and I could not for the life of me figure out the data path.

Could anyone please explain the data path from ejabberd_receiver.erl to ejabberd_c2s.erl and in which file is the raw string is being parsed to xml and how is it being sent to ejabberd_c2s.erl

Thanks in advance,
Naveen

Syndicate content