int TclWeb_UploadChannel()

in src/mod_rivet_ng/TclWebapache.c [819:843]


int TclWeb_UploadChannel(char *varname, TclWebRequest *req)
{
    Tcl_Channel chan;

    chan = Tcl_OpenFileChannel(req->interp, req->upload->tempname, "r", 0);
    if (chan == NULL) {
	    return TCL_ERROR;
    } else {
        Tcl_Obj* result;

        if (Tcl_SetChannelOption(req->interp,chan,"-translation","binary") == TCL_ERROR) {
            return TCL_ERROR;
        }
        if (Tcl_SetChannelOption(req->interp,chan,"-encoding","binary") == TCL_ERROR) {
            return TCL_ERROR;
        }
        Tcl_RegisterChannel(req->interp,chan);

        result = Tcl_NewObj();
        Tcl_SetStringObj(result, Tcl_GetChannelName(chan), -1);
        Tcl_SetObjResult(req->interp, result);

        return TCL_OK;
    }
}