You can usually make a very simple C shim that you can use to load the .so in your nsd.tcl file, in the modules section, that is:
ns_section "ns/server/${sname}/modules" ns_param pdflib pdflib.so (to continue with Jeremy's example, that is) In general, to make an aolserver module out of a normal tcl module, you just need to provide a Ns_ModuleInit() function which calls the interp init function for the tcl module you're trying to load. An example for pdflib: int Ns_ModuleInit(char *server, char *module) { extern int Pdflib_Init(); return Ns_TclInitInterps(server, Pdflib_Init, NULL); } I'm sure there is something similar for the other module you spoke of, you just need to provide the proper Init function. Most C-based tcl modules have one that can be accessed like this. I hope this helps, Rusty Jeremy Collins wrote: > > Here is how I solved the problem of loading a plain Tcl module into > AOLserver. I'd be interested in hearing other approaches. > > 1. Create AOLserver Tcl Library directory. > > mkdir servers/server1/modules/tcl/pdflib > cp pdflib_tcl.so.1.1.1 servers/server1/modules/tcl/pdflib > > 2. Add init.tcl file in directory above with the following line. > > load [ns_info tcllib]/pdflib/pdflib_tcl.so.1.1.1 > > 3. Add Tcl Library to AOLserver config. > > ns_section "ns/server/${servername}/modules" > ns_param pdflib Tcl > > Basically something like the above. Of course this does not address any > threading issues. And I *believe* this will cause the module to only > get loaded on thread creation, instead of every hit. > > Jeremy