1220 {
1222 {
1224 }
1226 {
1227 stage = RequestStage.ReleaseConnection;
1228 }
1229 RequestStage requestStage;
1230 LazyAsyncResult writeAsyncResult;
1231 LazyAsyncResult readAsyncResult;
1232 FtpControlStream connection;
1234 {
1236 if (stage == RequestStage.CheckForError)
1237 {
1238 return requestStage;
1239 }
1240 if (requestStage == RequestStage.ReleaseConnection && stage == RequestStage.ReleaseConnection)
1241 {
1242 return RequestStage.ReleaseConnection;
1243 }
1244 if (stage > requestStage)
1245 {
1247 }
1248 if (stage <= RequestStage.RequestStarted)
1249 {
1250 return requestStage;
1251 }
1255 if (stage == RequestStage.ReleaseConnection)
1256 {
1258 {
1259 return requestStage;
1260 }
1262 }
1263 }
1264 try
1265 {
1266 if ((stage == RequestStage.ReleaseConnection || requestStage == RequestStage.ReleaseConnection) && connection != null)
1267 {
1268 try
1269 {
1271 {
1273 }
1274 }
1275 finally
1276 {
1278 {
1280 }
1281 connection.CloseSocket();
1283 {
1285 }
1286 }
1287 }
1288 return requestStage;
1289 }
1290 finally
1291 {
1292 try
1293 {
1294 if (stage >= RequestStage.WriteReady)
1295 {
1297 {
1299 {
1301 }
1302 }
1303 else if (writeAsyncResult != null && !writeAsyncResult.InternalPeekCompleted)
1304 {
1305 writeAsyncResult.InvokeCallback();
1306 }
1307 }
1308 }
1309 finally
1310 {
1311 if (stage >= RequestStage.ReadReady && readAsyncResult != null && !readAsyncResult.InternalPeekCompleted)
1312 {
1313 readAsyncResult.InvokeCallback();
1314 }
1315 }
1316 }
1317 }
virtual void Abort(Exception e)
bool _getRequestStreamStarted
LazyAsyncResult _readAsyncResult
FtpControlStream _connection
FtpWebResponse _ftpWebResponse
RequestStage _requestStage
ContextAwareResult _writeAsyncResult
FtpMethodInfo _methodInfo
LazyAsyncResult _requestCompleteAsyncResult
void InvokeCallback(object result)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)