~yadi/squid/connection-manager

« back to all changes in this revision

Viewing changes to src/ftp.cc

  • Committer: Amos Jeffries
  • Date: 2014-01-19 05:45:51 UTC
  • mfrom: (13045.1.209 trunk)
  • Revision ID: squid3@treenet.co.nz-20140119054551-3u1so2dy5vda7kfw
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
3051
3051
    debugs(9, 3, HERE);
3052
3052
 
3053
3053
    if (code == 125 || (code == 150 && Comm::IsConnOpen(data.conn))) {
 
3054
        if (!originalRequest()->body_pipe) {
 
3055
            debugs(9, 3, "zero-size STOR?");
 
3056
            state = WRITING_DATA; // make ftpWriteTransferDone() responsible
 
3057
            dataComplete(); // XXX: keep in sync with doneSendingRequestBody()
 
3058
            return;
 
3059
        }
 
3060
 
3054
3061
        if (!startRequestBodyFlow()) { // register to receive body data
3055
3062
            ftpFail(this);
3056
3063
            return;
3256
3263
FtpStateData::completedListing()
3257
3264
{
3258
3265
    assert(entry);
3259
 
    entry->lock();
 
3266
    entry->lock("FtpStateData");
3260
3267
    ErrorState ferr(ERR_DIR_LISTING, Http::scOkay, request);
3261
3268
    ferr.ftp.listing = &listing;
3262
3269
    ferr.ftp.cwd_msg = xstrdup(cwd_message.size()? cwd_message.termedBuf() : "");
3265
3272
    entry->replaceHttpReply( ferr.BuildHttpReply() );
3266
3273
    EBIT_CLR(entry->flags, ENTRY_FWD_HDR_WAIT);
3267
3274
    entry->flush();
3268
 
    entry->unlock();
 
3275
    entry->unlock("FtpStateData");
3269
3276
}
3270
3277
 
3271
3278
/// \ingroup ServerProtocolFTPInternal
3683
3690
         * Authenticated requests can't be cached.
3684
3691
         */
3685
3692
        e->release();
3686
 
    } else if (EBIT_TEST(e->flags, ENTRY_CACHABLE) && !getCurrentOffset()) {
 
3693
    } else if (!EBIT_TEST(e->flags, RELEASE_REQUEST) && !getCurrentOffset()) {
3687
3694
        e->setPublicKey();
3688
3695
    } else {
3689
3696
        e->release();