From: Vlad S. <ser...@us...> - 2005-06-10 16:57:03
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27866/nsd Modified Files: tclcmds.c tclresp.c Log Message: removed ns_returnbinary. added -binary flag to ns_return Index: tclcmds.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclcmds.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tclcmds.c 8 Jun 2005 20:13:12 -0000 1.11 --- tclcmds.c 10 Jun 2005 16:56:49 -0000 1.12 *************** *** 142,146 **** NsTclReturnNoticeObjCmd, NsTclReturnObjCmd, - NsTclReturnBinaryObjCmd, NsTclReturnRedirectObjCmd, NsTclReturnUnauthorizedObjCmd, --- 142,145 ---- *************** *** 481,485 **** {"ns_returnunauthorized", NULL, NsTclReturnUnauthorizedObjCmd}, {"ns_returnnotfound", NULL, NsTclReturnNotFoundObjCmd}, - {"ns_returnbinary", NULL, NsTclReturnBinaryObjCmd}, /* --- 480,483 ---- Index: tclresp.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclresp.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tclresp.c 8 Jun 2005 20:27:12 -0000 1.5 --- tclresp.c 10 Jun 2005 16:56:49 -0000 1.6 *************** *** 170,229 **** { Ns_Conn *conn; ! int status, result; ! if (objc != 4) { ! Tcl_WrongNumArgs(interp, 1, objv, "status type string"); return TCL_ERROR; } ! if (GetConn(arg, interp, &conn) != TCL_OK) { ! return TCL_ERROR; } ! if (Tcl_GetIntFromObj(interp, objv[1], &status) != TCL_OK) { return TCL_ERROR; } ! result = Ns_ConnReturnCharData(conn, status, Tcl_GetString(objv[3]), -1, ! Tcl_GetString(objv[2])); ! ! return Result(interp, result); ! } ! ! ! /* ! *---------------------------------------------------------------------- ! * ! * NsTclReturnBinaryObjCmd -- ! * ! * Implements ns_returnbinary. Send complete response to client with ! * given string as body. ! * ! * Results: ! * Tcl result. ! * ! * Side effects: ! * Connection will be closed. ! * ! *---------------------------------------------------------------------- ! */ ! ! int ! NsTclReturnBinaryObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) ! { ! Ns_Conn *conn; ! unsigned char *data; ! int len, status, result; ! ! if (objc != 4) { ! Tcl_WrongNumArgs(interp, 1, objv, "status type data"); ! return TCL_ERROR; } if (GetConn(arg, interp, &conn) != TCL_OK) { return TCL_ERROR; } ! if (Tcl_GetIntFromObj(interp, objv[1], &status) != TCL_OK) { ! return TCL_ERROR; } - data = Tcl_GetByteArrayFromObj(objv[3], &len); - result = Ns_ConnReturnData(conn, status, data, len, Tcl_GetString(objv[2])); - return Result(interp, result); } --- 170,205 ---- { Ns_Conn *conn; ! unsigned char *data = 0, *type = 0; ! int result, param = 1, status = 0, len = 0, binary = 0; ! if (objc != 4 && objc != 5) { ! Tcl_WrongNumArgs(interp, 1, objv, "?-binary? status type string"); return TCL_ERROR; } ! if (objc == 5) { ! if(strcmp(Tcl_GetString(objv[param]),"-binary")) { ! Tcl_WrongNumArgs(interp, 1, objv, "?-binary? status type string"); ! return TCL_ERROR; ! } ! binary = 1; ! param++; } ! if (Tcl_GetIntFromObj(interp, objv[param], &status) != TCL_OK) { return TCL_ERROR; } ! type = Tcl_GetString(objv[param+1]); ! if (binary != 0) { ! data = Tcl_GetByteArrayFromObj(objv[param+2], &len); ! } else { ! data = Tcl_GetStringFromObj(objv[param+2], &len); } if (GetConn(arg, interp, &conn) != TCL_OK) { return TCL_ERROR; } ! if(binary != 0) { ! result = Ns_ConnReturnData(conn, status, data, len, type); ! } else { ! result = Ns_ConnReturnCharData(conn, status, data, len, type); } return Result(interp, result); } |