DSAPI filter for Domino
- DSAPI Filter Web Site Configuration
To make use of the DSAPI Filter, the SEOUrlHandler.dll file must be copied into the IBM Lotus Domino server program directory (where the nserver.exe file is located). The Web Server configuration must also be updated to include the filter in the list of DSAPI Filters to be loaded when the http task is started (found in the Domino Administrator client, Configuration > Web > Internet Sites): DSAPI Filters DSAPI filter file names: urlhandler
The Filter will pick up configuration settings from a database called "urlhand.nsf" - this database should be located in the Domino server data directory (where names.nsf is located). If the database is not found, the filter will use default settings and no customized options or exceptions will be loaded. The database does not need to be accessible by general users, and the ACL should be set to allow only Administrators access.
- Release Build (64 bit)
First version 2011-09-11 New version 2011-09-15 Version from 2011-10-05
- DSAPI Filter Restrictions
The filter has been compiled with the following restrictions: The configuration database must have the filename "urlhand.nsf" and be located in the Domino data directory. The maximum supported number of exceptions is 512. The maximum URL length is 4096 bytes, matching the default Domino setting. If any of these items need to be changed then the filter will need to be rebuilt - for details see the document titled "How to build from source".
- How to build from source
The supplied dll was built using Microsoft Visual Studio 2010 Professional.
External requirements: The IBM Lotus C API 8.5.2 is required in order to build the filter from source. This is available as a download from IBM. For the included build this was located in the directory "C:\Data\Lotus\Lotus C API 8.5.2".
Compiler command line used for the build:
/I"C:\Data\Lotus\Lotus C API 8.5.2\notesapi\include" /Zi /nologo /W3 /WX- /O2 /Oi /GL /D "NT" /D "W32" /D "W64" /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_USRDLL" /D "_CRT_SECURE_NO_WARNINGS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Gm- /EHsc /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fp"x64\Release\SEOUrlHandler.pch" /Fa"x64\Release" /Fo"x64\Release" /Fd"x64\Release\vc100.pdb" /Gd /TC /errorReport:queue
New code from 2011-09-13, fixing the missing DLL: /I"C:\Data\Lotus\Lotus C API 8.5.2\notesapi\include" /Zi /nologo /W3 /WX- /O2 /Oi /GL /D "NT" /D "W32" /D "W64" /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_USRDLL" /D "_CRT_SECURE_NO_WARNINGS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fp"x64\Release\SEOUrlHandler.pch" /Fa"x64\Release" /Fo"x64\Release" /Fd"x64\Release\vc100.pdb" /Gd /TC /errorReport:queue
Linker command line used for the build:
/OUT:"C:\Users\Dmytro\Documents\Visual Studio 2010\Projects\SEOUrlHandler\x64\Release\SEOUrlHandler.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Data\Lotus\Lotus C API 8.5.2\notesapi\lib\mswin64" /DLL "notes.lib" /MANIFEST /ManifestFile:"x64\Release\SEOUrlHandler.dll.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Dmytro\Documents\Visual Studio 2010\Projects\SEOUrlHandler\x64\Release\SEOUrlHandler.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /PGD:"C:\Users\Dmytro\Documents\Visual Studio 2010\Projects\SEOUrlHandler\x64\Release\SEOUrlHandler.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:QUEUE
- License
The source code is released under the GPL-3.0 license.
For Linux compile & linking code
compile
echo "- creating dsapistub1.o"; gcc dsapistub1.c -I/opt/lotus/notesapi/include -c -O -w -m64 -DGCC3 -DGCC4 -fno-strict-aliasing -DGCC_LBLB_NOT_SUPPORTED -Wformat -Wall -Wcast-align -Wconversion -DUNIX -DLINUX -DLINUX86 -DND64 -DW32 -DLINUX64 -DW -DLINUX86_64 -DDTRACE -DPTHREAD_KERNEL -D_REENTRANT -DUSE_THREADSAFE_INTERFACES -D_POSIX_THREAD_SAFE_FUNCTIONS -DHANDLE_IS_32BITS -DHAS_IOCP -DHAS_BOOL -DHAS_DLOPEN -DUSE_PTHREAD_INTERFACES -DLARGE64_FILES -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDUNIX64 -DLONGIS64BIT -DPRODUCTION_VERSION -DOVERRIDEDEBUG -fPIC echo "- done";
link
echo "creating so"; gcc -m64 -DGCC3 -DGCC4 "/opt/lotus/notes/latest/linux/libnotes.so" -fno-strict-aliasing -DGCC_LBLB_NOT_SUPPORTED -Wformat -Wall -Wcast-align -Wconversion -shared -fPIC -Wl,-Bsymbolic,--whole-archive,-znodefs,-ztext -Wl,--no-whole-archive -L/opt/lotus/notesapi/lib/linux64 -L/lib64 -ldl -lrt -lm -lstdc++ -L/lib64 -lpthread -lc -lresolv -lc dsapistub1.o -o libdsapistub1.so echo "done";