From: Stephen D. <sd...@us...> - 2005-07-12 11:19:36
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6793/nsd Modified Files: adprequest.c nsd.h proc.c server.c tclrequest.c Log Message: * nsd/nsd.h: * nsd/proc.c: * nsd/server.c: * nsd/adprequest.c: * nsd/tclrequest.c: Fix the confusion around the default adp request handler and ns_register_adp and add the missing proc callback info. ns_info requestprocs now gets things right. ns_register_adp will also now register the default adp request handler if you don't specify an optional file to map. Index: nsd.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nsd.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** nsd.h 12 Jul 2005 07:31:39 -0000 1.22 --- nsd.h 12 Jul 2005 11:19:21 -0000 1.23 *************** *** 867,873 **** NS_GNUC_NONNULL(1); - extern Ns_OpProc NsFastGet; - extern Ns_OpProc NsAdpProc; - extern Ns_Cache *NsFastpathCache(char *server, int size); --- 867,870 ---- *************** *** 894,900 **** extern Ns_ThreadProc NsConnThread; extern Ns_ArgProc NsConnArgProc; ! extern Ns_FilterProc NsTclFilter; ! extern Ns_OpProc NsTclRequest; ! extern Ns_OpProc NsAdpRequest; extern Ns_ArgProc NsTclRequestArgProc; extern Ns_TclTraceProc NsTclTraceProc; --- 891,899 ---- extern Ns_ThreadProc NsConnThread; extern Ns_ArgProc NsConnArgProc; ! extern Ns_FilterProc NsTclFilterProc; ! extern Ns_OpProc NsFastGet; ! extern Ns_OpProc NsTclRequestProc; ! extern Ns_OpProc NsAdpRequestProc; ! extern Ns_OpProc NsAdpMapProc; extern Ns_ArgProc NsTclRequestArgProc; extern Ns_TclTraceProc NsTclTraceProc; Index: tclrequest.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclrequest.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tclrequest.c 10 Jun 2005 17:58:40 -0000 1.4 --- tclrequest.c 12 Jul 2005 11:19:22 -0000 1.5 *************** *** 57,61 **** * Ns_TclRequest -- * ! * Dummy up a direct call to NsTclRequest for a connection. * * Results: --- 57,61 ---- * Ns_TclRequest -- * ! * Dummy up a direct call to NsTclRequestProc for a connection. * * Results: *************** *** 73,82 **** Ns_TclCallback cb; ! cb.cbProc = &NsTclRequest; cb.server = Ns_ConnServer(conn); cb.script = name; cb.scriptarg = NULL; ! return NsTclRequest(&cb, conn); } --- 73,82 ---- Ns_TclCallback cb; ! cb.cbProc = &NsTclRequestProc; cb.server = Ns_ConnServer(conn); cb.script = name; cb.scriptarg = NULL; ! return NsTclRequestProc(&cb, conn); } *************** *** 123,129 **** } ! cbPtr = Ns_TclNewCallback(interp, NsTclRequest, script, scriptarg); Ns_RegisterRequest(itPtr->servPtr->server, method, url, ! NsTclRequest, Ns_TclFreeCallback, cbPtr, flags); return TCL_OK; --- 123,129 ---- } ! cbPtr = Ns_TclNewCallback(interp, NsTclRequestProc, script, scriptarg); Ns_RegisterRequest(itPtr->servPtr->server, method, url, ! NsTclRequestProc, Ns_TclFreeCallback, cbPtr, flags); return TCL_OK; *************** *** 151,155 **** { NsInterp *itPtr = arg; ! char *method, *url, *file; int flags = 0; --- 151,155 ---- { NsInterp *itPtr = arg; ! char *method, *url, *file = NULL; int flags = 0; *************** *** 162,166 **** {"method", Ns_ObjvString, &method, NULL}, {"url", Ns_ObjvString, &url, NULL}, ! {"file", Ns_ObjvString, &file, NULL}, {NULL, NULL, NULL, NULL} }; --- 162,166 ---- {"method", Ns_ObjvString, &method, NULL}, {"url", Ns_ObjvString, &url, NULL}, ! {"?file", Ns_ObjvString, &file, NULL}, {NULL, NULL, NULL, NULL} }; *************** *** 169,174 **** } ! Ns_RegisterRequest(itPtr->servPtr->server, method, url, ! NsAdpRequest, ns_free, ns_strdup(file), flags); return TCL_OK; --- 169,179 ---- } ! if (file != NULL) { ! Ns_RegisterRequest(itPtr->servPtr->server, method, url, ! NsAdpMapProc, ns_free, ns_strdup(file), flags); ! } else { ! Ns_RegisterRequest(itPtr->servPtr->server, method, url, ! NsAdpRequestProc, NULL, itPtr->servPtr, flags); ! } return TCL_OK; *************** *** 255,261 **** } ! cbPtr = Ns_TclNewCallback(interp, NsTclFilter, script, scriptarg); Ns_RegisterFilter(itPtr->servPtr->server, method, urlPattern, ! NsTclFilter, when, cbPtr); return TCL_OK; --- 260,266 ---- } ! cbPtr = Ns_TclNewCallback(interp, NsTclFilterProc, script, scriptarg); Ns_RegisterFilter(itPtr->servPtr->server, method, urlPattern, ! NsTclFilterProc, when, cbPtr); return TCL_OK; *************** *** 297,303 **** } ! cbPtr = Ns_TclNewCallback(interp, NsTclFilter, script, scriptarg); Ns_RegisterFilter(itPtr->servPtr->server, method, urlPattern, ! NsTclFilter, NS_FILTER_VOID_TRACE, cbPtr); return TCL_OK; --- 302,308 ---- } ! cbPtr = Ns_TclNewCallback(interp, NsTclFilterProc, script, scriptarg); Ns_RegisterFilter(itPtr->servPtr->server, method, urlPattern, ! NsTclFilterProc, NS_FILTER_VOID_TRACE, cbPtr); return TCL_OK; *************** *** 308,314 **** *---------------------------------------------------------------------- * ! * NsAdpRequest -- * ! * Ns_OpProc for registered ADP's. * * Results: --- 313,319 ---- *---------------------------------------------------------------------- * ! * NsAdpMapProc -- * ! * Ns_OpProc which evaluates a specifically registered adp file. * * Results: *************** *** 322,328 **** int ! NsAdpRequest(void *arg, Ns_Conn *conn) { ! return Ns_AdpRequest(conn, (char *) arg); } --- 327,335 ---- int ! NsAdpMapProc(void *arg, Ns_Conn *conn) { ! char *adpFile = arg; ! ! return Ns_AdpRequest(conn, adpFile); } *************** *** 331,335 **** *---------------------------------------------------------------------- * ! * NsTclRequst -- * * Ns_OpProc for Tcl operations. --- 338,342 ---- *---------------------------------------------------------------------- * ! * NsTclRequstProc -- * * Ns_OpProc for Tcl operations. *************** *** 345,349 **** int ! NsTclRequest(void *arg, Ns_Conn *conn) { Ns_TclCallback *cbPtr = arg; --- 352,356 ---- int ! NsTclRequestProc(void *arg, Ns_Conn *conn) { Ns_TclCallback *cbPtr = arg; *************** *** 363,367 **** *---------------------------------------------------------------------- * ! * NsTclFilter -- * * The callback for Tcl filters. Run the script. --- 370,374 ---- *---------------------------------------------------------------------- * ! * NsTclFilterProc -- * * The callback for Tcl filters. Run the script. *************** *** 377,381 **** int ! NsTclFilter(void *arg, Ns_Conn *conn, int why) { Ns_TclCallback *cbPtr = arg; --- 384,388 ---- int ! NsTclFilterProc(void *arg, Ns_Conn *conn, int why) { Ns_TclCallback *cbPtr = arg; Index: server.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/server.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** server.c 6 Jul 2005 07:12:18 -0000 1.9 --- server.c 12 Jul 2005 11:19:22 -0000 1.10 *************** *** 525,531 **** if (!strcasecmp(key, "map")) { map = Ns_SetValue(set, i); ! Ns_RegisterRequest(server, "GET", map,NsAdpProc, NULL, servPtr, 0); ! Ns_RegisterRequest(server, "HEAD", map,NsAdpProc, NULL, servPtr, 0); ! Ns_RegisterRequest(server, "POST", map,NsAdpProc, NULL, servPtr, 0); Ns_Log(Notice, "adp[%s]: mapped %s", server, map); } --- 525,531 ---- if (!strcasecmp(key, "map")) { map = Ns_SetValue(set, i); ! Ns_RegisterRequest(server, "GET", map, NsAdpRequestProc, NULL, servPtr, 0); ! Ns_RegisterRequest(server, "HEAD", map, NsAdpRequestProc, NULL, servPtr, 0); ! Ns_RegisterRequest(server, "POST", map, NsAdpRequestProc, NULL, servPtr, 0); Ns_Log(Notice, "adp[%s]: mapped %s", server, map); } Index: adprequest.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/adprequest.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** adprequest.c 12 Jul 2005 07:31:39 -0000 1.3 --- adprequest.c 12 Jul 2005 11:19:21 -0000 1.4 *************** *** 44,56 **** *---------------------------------------------------------------------- * ! * NsAdpProc -- * ! * Check for a normal file and call Ns_AdpRequest. * * Results: ! * A standard AOLserver request result. * * Side effects: ! * Depends on code embedded within page. * *---------------------------------------------------------------------- --- 44,56 ---- *---------------------------------------------------------------------- * ! * NsAdpRequestProc -- * ! * Map the URL to an ADP file and run it. * * Results: ! * A standard request result. * * Side effects: ! * Depends on code embedded within page. * *---------------------------------------------------------------------- *************** *** 58,62 **** int ! NsAdpProc(void *arg, Ns_Conn *conn) { Ns_DString file; --- 58,62 ---- int ! NsAdpRequestProc(void *arg, Ns_Conn *conn) { Ns_DString file; *************** *** 67,70 **** --- 67,71 ---- status = Ns_AdpRequest(conn, file.string); Ns_DStringFree(&file); + return status; } Index: proc.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/proc.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** proc.c 12 Jul 2005 07:31:39 -0000 1.7 --- proc.c 12 Jul 2005 11:19:22 -0000 1.8 *************** *** 76,82 **** {(void *) NsCachePurge, "ns:cachepurge", NsCacheArgProc}, {(void *) NsConnThread, "ns:connthread", NsConnArgProc}, ! {(void *) NsTclFilter, "ns:tclfilter", Ns_TclCallbackArgProc}, ! {(void *) NsTclRequest, "ns:tclrequest", Ns_TclCallbackArgProc}, ! {(void *) NsAdpRequest, "ns:adprequest", Ns_StringArgProc}, {(void *) NsFastGet, "ns:fastget", ServerArgProc}, {(void *) NsTclTraceProc, "ns:tcltrace", Ns_TclCallbackArgProc}, --- 76,83 ---- {(void *) NsCachePurge, "ns:cachepurge", NsCacheArgProc}, {(void *) NsConnThread, "ns:connthread", NsConnArgProc}, ! {(void *) NsTclFilterProc, "ns:tclfilter", Ns_TclCallbackArgProc}, ! {(void *) NsTclRequestProc, "ns:tclrequest", Ns_TclCallbackArgProc}, ! {(void *) NsAdpRequestProc, "ns:adprequest", ServerArgProc}, ! {(void *) NsAdpMapProc, "ns:adpmap", Ns_StringArgProc}, {(void *) NsFastGet, "ns:fastget", ServerArgProc}, {(void *) NsTclTraceProc, "ns:tcltrace", Ns_TclCallbackArgProc}, |