Custom subserver map function allows any you to implement any hashing scheme you desire by linking in a DSO (dynamic shared object) containing a user-written C function which performs the mapping. Subserver module - custom mapping
Software Virtual Servers within a Server
The DSO which contains the mapping function should be placed at $ZEUSHOME/web/bin/subserver_map.so and needs to contain a custom_subserver_map symbol defined as:
void custom_subserver_map( const char *host, const char *docroot, char *buffer, int buffsz; SubserverCallTable *ct );
host The host header line with the port stripped off, and lower cased. docroot docroot is passed for reference, so that you can do stats if you wish buffer You should fill buffer with the docroot RELATIVE TO THE VIRTUAL SERVER DOCROOT. e.g. if your 'parent' virtual server has a docroot of /disk2/ and you want a docroot of /disk2/myisp.net/f/o/o/foo, then you should put "myisp.net/f/o/o/foo". You should not put more than buffsz (currently 1024) bytes in the buffer. ct ct points to a vector table which is defined as: typedef struct { int (*cstat)( const char *file, int flen, struct statinfo * ); } SubserverCallTable; This enables you to call our cached stat routine should you wish to do so. The semantics are the same as UNIX stat, except the result is cached (and hence could be out of date), and that we use a smaller stat structure. A struct statinfo is defined as:struct statinfo { int mtime, ctime; // modify, creation int size; // file size int mode; // flags int uid, gid; };