mod_rest: stanzas are not being intercepted until user becomes online

Hi all,

I have a stanzas logger (via mod_service_log) and i`ve found that messages sent via mod_rest "come into effect" only when destination user come online.
I can see these sent messages in real-time in ejabberd.log but not in the stream from mod_service_log (until user come online, sorry for multiple repeating that). Meanwhile everything is fine with ordinary offline messages (type='chat').

=INFO REPORT==== 2011-07-01 17:44:49 ===                                                                                                                                            
I(<0.27704.0>:mod_rest:73) : Got valid request from system                                                                                                                          
with IP {{172,20,2,75},51593}                                                                                                                                                       
to 2002@vps172202135.mtu.immo:                                                                                                                                                      
{xmlelement,"message",                                                                                                                                                              
            [{"to","2002@vps172202135.mtu.immo"},                                                                                                                                   
             {"from","system"},                                                                                                                                                     
             {"type","wall"},                                                                                                                                                       
             {"xmlns","http://jabber.org/protocol/httpbind"}],                                                                                                                      
            [{xmlelement,"body",[],                                                                                                                                                 
                         [{xmlcdata,<<"{\"uid\":\"b00932db4042267ac86f8ab63d09bd05\",\"text\":\"\\u041e\\u0441\\u0442\\u0430\\u0432\\u0438\\u043b \\u043a\\u043e\\u043c\\u043c\\u043
5\\u043d\\u0442\\u0430\\u0440\\u0438\\u0439 \\u043d\\u0430 \\u0441\\u0432\\u043e\\u0435\\u0439 ">>},                                                                                
                          {xmlcdata,<<"<">>},                                                                                                                                       
                          {xmlcdata,<<"a href='4001\\/wall'">>},                                                                                                                    
                          {xmlcdata,<<">">>},                                                                                                                                       
                          {xmlcdata,<<"\\u0441\\u0442\\u0435\\u043d\\u0435">>},                                                                                                     
                          {xmlcdata,<<"<">>},                                                                                                                                       
                          {xmlcdata,<<"\\/a">>},                                                                                                                                    
                          {xmlcdata,<<">">>},                                                                                                                                       
                          {xmlcdata,<<"\",\"created_timestamp\":1309527889,\"user_id\":\"4001\"}">>}]}]}

Ejabberd is storing rosters and vcard in Postgres.
I have turned mod_offline off because messages need to be logged at the moment they are sent.

{modules,
 [
  {mod_adhoc,    []},
  {mod_admin_extra, []},
  {mod_announce, [{access, announce}]},
  {mod_caps,     []},
  {mod_configure,[]},
  {mod_http_bind, []},
  {mod_http_fileserver, [
                         {docroot, "/var/www/html"},
                         {content_types, [{".xml", "text/xml"}]},
                         {directory_indices, ["index.html"]},
                         {accesslog, "/var/log/ejabberd/http-access.log"}
                 ]},
    {mod_ping,     []},
    {mod_rest,    [
                  {allowed_ips, [{127,0,0,1}, {1,2,3,4}]}
                  ]},
  {mod_roster_odbc,   []},
  {mod_statsdx,  [{hooks,true}]},
  {mod_time,     []},
  {mod_service_log,[{loggers, ["logger.server.tld"]}]},
  {mod_vcard_odbc,    []},
  {mod_version,  []}
 ]}.

Are there any ways to solve that behaviour?

Syndicate content