NS_STATIC_CAST(nsFtpControlConnection*, aContext)->mSuspendedWrite = 1;
NS_STATIC_CAST(nsFtpControlConnection*, (nsIStreamListener*)aContext)->mSuspendedWrite = 1;
    NS_IMETHODIMP OnDataWritable(nsIRequest *aRequest, nsISupports *aContext,                                 nsIOutputStream *aOutStream,                                 PRUint32 aOffset, PRUint32 aCount)    {         NS_ASSERTION(mInStream, "not initialized");        nsresult rv;        PRUint32 avail;        // Write whatever is available in the pipe. If the pipe is empty, then        // return NS_BASE_STREAM_WOULD_BLOCK; we will resume the write when there        // is more data.        rv = mInStream->Available(&avail);        if (NS_FAILED(rv)) return rv;        if (avail == 0) {            NS_STATIC_CAST(nsFtpControlConnection*, aContext)->mSuspendedWrite = 1;            return NS_BASE_STREAM_WOULD_BLOCK;        }        PRUint32 bytesWritten;        return aOutStream->WriteFrom(mInStream, PR_MIN(avail, aCount), &bytesWritten);    }