System.Net.FtpControlStream.AcceptCallback C# (CSharp) Method

AcceptCallback() private static method

Provides a wrapper for the async accept operations

private static AcceptCallback ( IAsyncResult asyncResult ) : void
asyncResult IAsyncResult
return void
        private static void AcceptCallback(IAsyncResult asyncResult)
        {
            FtpControlStream connection = (FtpControlStream)asyncResult.AsyncState;
            Socket listenSocket = connection._dataSocket;
            try
            {
                connection._dataSocket = listenSocket.EndAccept(asyncResult);
                if (!connection.ServerAddress.Equals(((IPEndPoint)connection._dataSocket.RemoteEndPoint).Address))
                {
                    connection._dataSocket.Close();
                    throw new WebException(SR.net_ftp_active_address_different, WebExceptionStatus.ProtocolError);
                }
                connection.ContinueCommandPipeline();
            }
            catch (Exception e)
            {
                connection.CloseSocket();
                connection.InvokeRequestCallback(e);
            }
            finally
            {
                listenSocket.Close();
            }
        }