--- tcl_commands.c Fri Jun 29 12:38:00 2001 +++ tcl_commands.c Tue Aug 7 22:55:11 2001 @@ -676,7 +676,14 @@ { + union { + ClientData handle; + int fd; + } handle; + FILE *f; Tcl_Channel chan; char *method = Tcl_GetString(objv[3]); + f = ApacheUpload_FILE(upload); + handle.fd = f ? fileno(f) : -1; if (!strcmp(method, "channel")) { - if (ApacheUpload_FILE(upload) != NULL) + if (handle.fd != -1) { @@ -684,4 +690,3 @@ char *channelname = NULL; - chan = Tcl_MakeFileChannel((ClientData)fileno( - ApacheUpload_FILE(upload)), TCL_READABLE); + chan = Tcl_MakeFileChannel(handle.handle, TCL_READABLE); Tcl_RegisterChannel(interp, chan); @@ -709,4 +714,3 @@ - chan = Tcl_MakeFileChannel((ClientData)fileno( - ApacheUpload_FILE(upload)), TCL_READABLE); + chan = Tcl_MakeFileChannel(handle.handle, TCL_READABLE); Tcl_SetChannelOption(interp, chan, "-translation", "binary"); @@ -736,4 +740,3 @@ bytes = Tcl_Alloc(ApacheUpload_size(upload)); - chan = Tcl_MakeFileChannel((ClientData)fileno( - ApacheUpload_FILE(upload)), TCL_READABLE); + chan = Tcl_MakeFileChannel(handle.handle, TCL_READABLE); Tcl_SetChannelOption(interp, chan, "-translation", "binary");