As I have spent too much time to get Bandersnatch Jabber recorder to work with Wildfire, I have decided to write a simple plugin that will record packets to the database. Here’‘s my question: in the plugin I’‘m implementing PacketInterceptor interface’'s interceptPacket() method:
void interceptPacket(Packet packet,
Session session,
boolean incoming,
boolean processed)
throws PacketRejectedException
I have problems with understanding what exactly ‘‘incoming’’ and ‘‘processed’’ flags mean. Right now I don’'t check them at all and far too many packets are being saved.
What is the best way to make sure that the plugin will receive only/b what is being sent to and receive from the clients?
thanks,
Hey coquelicot,
The server receives packets from clients and after processing the packet a new packet is going to be sent to the initial sender or any other XMPP entity. After having said that, the incoming[/i] parameter will be true when the server is receiving a packet and false when it is sending a packet to an XMPP entity. On the other hand, the processed[/i] parameter will be false when the server has not yet processed the packet and will be true after it processed the packet.
Since you are not interested in rejecting packets I would recommend using a filter where your interceptor will only process already processed packets (i.e. processed = true). Filtering by the incoming parameter really depends on your needs.
Regards,
– Gato