From: Stephen D. <sd...@us...> - 2005-04-12 06:21:31
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22726/include Modified Files: ns.h Log Message: * include/ns.h: * nsd/nsd.h: * nsd/info.c: * nsd/proc.c: * nsd/return.c: * nsd/server.c: * nsd/fastpath.c: * nsd/pathname.c: New concept: server root. Callback can be registered to create the server root, defaults to statically assigned 'serverroot' from config, or host-based if enabled. Many virtual hosting options added. (RFE #1159471) * nsd/conn.c: Add callback to generate current location. If none registered, uses host-header and falls back to driver's location. Add new Ns_ConnAppendLocation() as preferred method of access, depreciated Ns_ConnLocation(). * nsd/tclcmds.c: Add vhost related Tcl commands: ns_serverpath ns_pagepath ns_hashpath ns_serverrootproc ns_locationproc. * ns_pagepath.test: * ns_conn_host.test: * ns_serverpath.test: * ns_hashpath.test: * tests/test.nscfg: Add tests for vhost related commands. More location tests needed... Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ns.h 26 Mar 2005 17:42:26 -0000 1.13 --- ns.h 12 Apr 2005 06:21:22 -0000 1.14 *************** *** 483,487 **** typedef int (Ns_FilterProc) (void *arg, Ns_Conn *conn, int why); typedef int (Ns_UrlToFileProc) (Ns_DString *dsPtr, char *server, char *url); ! typedef char *(Ns_LocationProc) (Ns_Conn *conn); /* --- 483,489 ---- typedef int (Ns_FilterProc) (void *arg, Ns_Conn *conn, int why); typedef int (Ns_UrlToFileProc) (Ns_DString *dsPtr, char *server, char *url); ! typedef char *(Ns_ServerRootProc) (Ns_DString *dest, char *host, void *arg); ! typedef char *(Ns_ConnLocationProc) (Ns_Conn *conn, Ns_DString *dest, void *arg); ! typedef char *(Ns_LocationProc) (Ns_Conn *conn); /* depreciated */ /* *************** *** 516,521 **** NS_EXTERN void Ns_SetRequestAuthorizeProc(char *server, Ns_RequestAuthorizeProc *procPtr); - NS_EXTERN void Ns_SetLocationProc(char *server, Ns_LocationProc *procPtr); - NS_EXTERN void Ns_SetConnLocationProc(Ns_LocationProc *procPtr); NS_EXTERN void Ns_SetUserAuthorizeProc(Ns_UserAuthorizeProc *procPtr); NS_EXTERN int Ns_AuthorizeUser(char *user, char *passwd); --- 518,521 ---- *************** *** 647,650 **** --- 647,651 ---- NS_EXTERN int Ns_ConnPeerPort(Ns_Conn *conn); NS_EXTERN char *Ns_ConnLocation(Ns_Conn *conn); + NS_EXTERN char *Ns_ConnLocationAppend(Ns_Conn *conn, Ns_DString *dest); NS_EXTERN char *Ns_ConnHost(Ns_Conn *conn); NS_EXTERN int Ns_ConnPort(Ns_Conn *conn); *************** *** 655,658 **** --- 656,661 ---- NS_EXTERN void Ns_ConnSetWriteEncodedFlag(Ns_Conn *conn, int flag); NS_EXTERN void Ns_ConnSetUrlEncoding(Ns_Conn *conn, Tcl_Encoding encoding); + NS_EXTERN int Ns_SetConnLocationProc(Ns_ConnLocationProc *proc, void *arg); + NS_EXTERN void Ns_SetLocationProc(char *server, Ns_LocationProc *proc); /* depreciated */ /* *************** *** 968,974 **** --- 971,981 ---- NS_EXTERN char *Ns_NormalizePath(Ns_DString *dsPtr, char *path); NS_EXTERN char *Ns_MakePath(Ns_DString *dsPtr, ...); + NS_EXTERN char *Ns_HashPath(Ns_DString *dsPtr, char *string, int levels); NS_EXTERN char *Ns_LibPath(Ns_DString *dsPtr, ...); NS_EXTERN char *Ns_HomePath(Ns_DString *dsPtr, ...); NS_EXTERN char *Ns_ModulePath(Ns_DString *dsPtr, char *server, char *module, ...); + NS_EXTERN char *Ns_ServerPath(Ns_DString *dest, char *server, ...); + NS_EXTERN char *Ns_PagePath(Ns_DString *dest, char *server, ...); + NS_EXTERN int Ns_SetServerRootProc(Ns_ServerRootProc *proc, void *arg); /* |