private static void ReceiveCallback(IAsyncResult ar) { LocalStorageFileState asyncState = (LocalStorageFileState)ar.AsyncState; try { LocalStorageAPI.s_log.LogDebug("ReceiveCallback called for State={0}", new object[] { asyncState }); int num = asyncState.Socket.EndReceive(ar); if (num <= 0) { LocalStorageAPI.CompleteDownload(asyncState); } else { int num1 = (asyncState.FileData != null ? (int)asyncState.FileData.Length : 0) + num; MemoryStream memoryStream = new MemoryStream(new byte[num1], 0, num1, true, true); if (asyncState.FileData != null) { memoryStream.Write(asyncState.FileData, 0, (int)asyncState.FileData.Length); } memoryStream.Write(asyncState.ReceiveBuffer, 0, num); asyncState.FileData = memoryStream.GetBuffer(); asyncState.Socket.BeginReceive(asyncState.ReceiveBuffer, 0, LocalStorageAPI.m_bufferSize, SocketFlags.None, new AsyncCallback(LocalStorageAPI.ReceiveCallback), asyncState); } } catch (Exception exception1) { Exception exception = exception1; LocalStorageAPI.s_log.LogWarning("EXCEPTION: {0}", new object[] { exception.Message }); asyncState.FailureMessage = exception.Message; LocalStorageAPI.ExecuteFailedDownload(asyncState); } }
private static void ReceiveCallback(IAsyncResult ar) { LocalStorageFileState localStorageFileState = (LocalStorageFileState)ar.get_AsyncState(); try { LocalStorageAPI.s_log.LogDebug("ReceiveCallback called for State={0}", new object[] { localStorageFileState }); int num = localStorageFileState.Socket.EndReceive(ar); if (num > 0) { int num2 = (localStorageFileState.FileData != null) ? localStorageFileState.FileData.Length : 0; int num3 = num2 + num; MemoryStream memoryStream = new MemoryStream(new byte[num3], 0, num3, true, true); if (localStorageFileState.FileData != null) { memoryStream.Write(localStorageFileState.FileData, 0, localStorageFileState.FileData.Length); } memoryStream.Write(localStorageFileState.ReceiveBuffer, 0, num); localStorageFileState.FileData = memoryStream.GetBuffer(); localStorageFileState.Socket.BeginReceive(localStorageFileState.ReceiveBuffer, 0, LocalStorageAPI.m_bufferSize, 0, new AsyncCallback(LocalStorageAPI.ReceiveCallback), localStorageFileState); } else { LocalStorageAPI.CompleteDownload(localStorageFileState); } } catch (Exception ex) { LocalStorageAPI.s_log.LogWarning("EXCEPTION: {0}", new object[] { ex.get_Message() }); localStorageFileState.FailureMessage = ex.get_Message(); LocalStorageAPI.ExecuteFailedDownload(localStorageFileState); } }