Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CloseEx()

void ICloseEx. System.Net.FtpDataStream.CloseEx ( CloseExState closeState)
inlineprivate

Implements System.Net.ICloseEx.

Definition at line 107 of file FtpDataStream.cs.

108 {
109 if (System.Net.NetEventSource.Log.IsEnabled())
110 {
111 System.Net.NetEventSource.Info(this, $"state = {closeState}", "CloseEx");
112 }
113 lock (this)
114 {
115 if (_closing)
116 {
117 return;
118 }
119 _closing = true;
120 _writeable = false;
121 _readable = false;
122 }
123 try
124 {
125 try
126 {
127 if ((closeState & CloseExState.Abort) == 0)
128 {
130 }
131 else
132 {
134 }
135 }
136 finally
137 {
138 _request.DataStreamClosed(closeState);
139 }
140 }
141 catch (Exception ex)
142 {
143 bool flag = true;
144 if (ex is WebException { Response: FtpWebResponse response } && !_isFullyRead && response.StatusCode == FtpStatusCode.ConnectionClosed)
145 {
146 flag = false;
147 }
148 if (flag && (closeState & CloseExState.Silent) == 0)
149 {
150 throw;
151 }
152 }
153 }
readonly FtpWebRequest _request
readonly NetworkStream _networkStream
void DataStreamClosed(CloseExState closeState)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)

References System.Net.FtpDataStream._closing, System.Net.FtpDataStream._isFullyRead, System.Net.FtpDataStream._networkStream, System.Net.FtpDataStream._readable, System.Net.FtpDataStream._request, System.Net.FtpDataStream._writeable, System.Net.Sockets.NetworkStream.Close(), System.Net.FtpWebRequest.DataStreamClosed(), System.Net.NetEventSource.Info(), and System.Net.NetEventSource.Log.