[JDEV] jsm mod_example entry point question

Thomas Charron tcharron at ductape.net
Thu Aug 2 10:15:05 CDT 2001


Quoting "Alexander N. Spitzer" <aspitzer at 3plex.com>:
> void mod_transcript(jsmi si)
> {
>   printf("----> TEST: in mod_transcript\n");
>   js_mapi_register(si,e_SERVER,mod_transcript_server,NULL);
> }
> QUESTION:
> How do I get it so that mod_transcript is instantiated upon all
> message
> arrivals... I thought (and CLEARLY I AM WRONG) that all messages pass
> through all the jsm modules, and each module decides whether or not to
> act
> on it... This does not appear to be the case, because I never see
> "----> TEST: in mod_transcript_server" in any transactions...
> What do I have to do to register mod_transcript with all traffic (or
> at
> least "chat" traffic?)

  Registering with e_SERVER will mean you will only get messages specifically 
targeted AT the server, aka, jabber.org/something, or just plain jabber.org.  
To test it, go ahead and send a message to yourserver/something, and sure 
enough, you'll see it.  I belive, IIRC, that two others are needed to do what 
you need to do:

    js_mapi_register(si,e_DELIVER, mod_filter_handler, NULL);

  Will be called before message delivery (Incoming)

    js_mapi_register(si,e_OFFLINE, mod_filter_handler, NULL);

  Will be called when user is offline.  Offline equiv to e_DELIVER (Incoming)

    js_mapi_register(si,e_SESSION, mod_filter_session, NULL);

  Will be called when logical sessions are created.  In this case, mod_filter 
session then does this:

    js_mapi_session(es_OUT,m->s,mod_filter_out,NULL);

  This will then call the mod_filter_out function when that session sends an 
outgoing message.

  These examples are taken from mod_filter, simply becouse its the first one I 
saw that I knew related to your question.


--- 
Thomas Charron
<< Wanted: One decent sig >>
<< Preferably litle used  >>



More information about the JDev mailing list