|
From: <do...@us...> - 2008-01-24 13:31:46
|
Update of /cvsroot/aolserver/aolserver/nscgi In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv11793 Modified Files: Tag: aolserver_v40_bp nscgi.c Log Message: Backported nscgi.c rev 1.33 change to aolserver_v40_bp branch. Index: nscgi.c =================================================================== RCS file: /cvsroot/aolserver/aolserver/nscgi/nscgi.c,v retrieving revision 1.23.2.3 retrieving revision 1.23.2.4 diff -C2 -d -r1.23.2.3 -r1.23.2.4 *** nscgi.c 24 Jan 2008 13:28:25 -0000 1.23.2.3 --- nscgi.c 24 Jan 2008 13:31:47 -0000 1.23.2.4 *************** *** 121,124 **** --- 121,126 ---- static int devNull; + static Tcl_ObjCmdProc CgiTclRegisterCgiObjCmd; + static int AddCmds(Tcl_Interp *interp, void *arg); static Ns_OpProc CgiRequest; static void CgiRegister(Mod *modPtr, char *map); *************** *** 136,139 **** --- 138,145 ---- static void SetUpdate(Ns_Set *set, char *key, char *value); + /* + * For AOLserver + */ + int Ns_ModuleVersion = 1; *************** *** 256,259 **** --- 262,267 ---- Ns_DStringFree(&ds); + Ns_TclInitInterps(server, AddCmds, modPtr); + return NS_OK; } *************** *** 263,266 **** --- 271,328 ---- *---------------------------------------------------------------------- * + * AddCmds -- + * + * Add Tcl commands for nscgi + * + * Results: + * NS_OK + * + * Side effects: + * Adds Tcl commands + * + *---------------------------------------------------------------------- + */ + + static int + AddCmds(Tcl_Interp *interp, void *arg) + { + Tcl_CreateObjCommand(interp, "ns_register_cgi", CgiTclRegisterCgiObjCmd, arg, NULL); + return NS_OK; + } + + + /* + *---------------------------------------------------------------------- + * + * CgiTclRegisterCgiObjCmd -- + * + * Implements ns_register_cgi as obj command. + * + * Results: + * Tcl result. + * + * Side effects: + * See docs. + * + *---------------------------------------------------------------------- + */ + + int + CgiTclRegisterCgiObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) + { + Mod *modPtr = (Mod *) arg; + + if (objc != 2) { + Tcl_WrongNumArgs(interp, 1, objv, "map"); + return TCL_ERROR; + } + CgiRegister(modPtr, Tcl_GetString(objv[1])); + return TCL_OK; + } + + + /* + *---------------------------------------------------------------------- + * * CgiRequest - * *************** *** 770,773 **** --- 832,842 ---- */ + Ns_DStringAppend(dsPtr, conn->request->url); + if (conn->request->query != NULL) { + Ns_DStringVarAppend(dsPtr, "?", conn->request->query, NULL); + } + SetUpdate(cgiPtr->env, "REQUEST_URI", dsPtr->string); + Ns_DStringTrunc(dsPtr, 0); + SetUpdate(cgiPtr->env, "SCRIPT_NAME", cgiPtr->name); SetUpdate(cgiPtr->env, "SCRIPT_FILENAME", cgiPtr->path); |