[JDEV] mod_mymod.c
    Rodolphe Duge de Bernonville 
    rod at idealx.com
       
    Fri Dec  8 07:50:23 CST 2000
    
    
  
> 
> Hi again,
> 
> Got that bit working, really cool effects going on now, just one more question
> 
> If my instance receives a message and it would like to store the message in
> the offline storage (ie only notify the user of the message but not send the
> message itself) - how would that go?
> 
> Encapsulate the message into jabber:x:offline ?
> 
well, i dont really see what you mean  ... 
but you can send directly your message to the offline storage ...
register your function with register_phandler 
to be in jabberd's instance list 
your_function_in_your_instance_whatever_you_want_to_do_but_i_dont_really_understand(instance
id, dpacket dp, void *arg))
{
    ssi si = (ssi) arg;
    xmlnode msg;
   
    /*  xmlnode sent to your instance is in dp->x  */
    ... stuff with your xmlnode ....
    xdb_set(si->xc, server_of_your_user, jid_of_your_user, NS_OFFLINE,
msg);
    /*  returns 1 if ok ... 0 for bad args 
        NS_OFFLINE is in jabber.h
    */    
    xmlnode_free(msg);
}
this would put the msg xmlnode you ve built  to your database.
If you want to notify user for it you may try 
to send him a message (no idea if it will work ...)
your_function_in_your_instance__whatever_you_want_to_do_but_maybe_it_is_what_you_need(instance
id, dpacket dp, void *arg))
{
    xmlnode msg;
    xmlnode notify;
   
    /*  xmlnode sent to your instance is in dp->x  */
    ... stuff with your xmlnode ....
    xdb_set(si->xc, server_of_your_user, jid_of_your_user, NS_OFFLINE,
msg);
    /*  returns 1 if ok ... 0 for bad args  */    
    notify = xmlnode_new_tag("message");
    xmlnode_put_attrib(notify, "to", jid_of_your_user);
    
    ... insert stuff in your message ...
    
    deliver (dpacket_new(notify), si->i); 
    xmlnode_free(msg);
    return M_PASS / M_HANDLED;
}
    
    
More information about the JDev
mailing list