int cmd_ap_get_client_block()

in tcl_cmds.c [1983:2009]


int cmd_ap_get_client_block(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
{
	int bufsiz;
	char *buffer;
	
	if (objc != 2) {
		Tcl_WrongNumArgs(interp, 1, objv, "bufsiz");
		
		return TCL_ERROR;
	}
	
	Tcl_GetIntFromObj(interp, objv[1], &bufsiz);
	
	buffer = malloc(bufsiz);
	
	bufsiz = ap_get_client_block(_r, buffer, bufsiz);
	
	Tcl_SetObjResult(interp, Tcl_NewIntObj(bufsiz));
	
	if (bufsiz > 0) {
		Tcl_SetVar2Ex(interp, "R", NULL, Tcl_NewByteArrayObj(buffer, bufsiz), TCL_LEAVE_ERR_MSG);
	}
	
	free(buffer);
	
	return TCL_OK;
}