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);
|