Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

CocoaSPDY v1.2

Latest
Compare
Choose a tag to compare
@kgoodier kgoodier released this 19 May 19:32

Improved metadata and critical session bug fixes

This release fixes 2 critical bugs in SPDYSessionManager that were released in v1.1. They fix a potential infinite loop of creating connections when starting the app on cellular, and another when an already-established connection terminates.

In addition to several minor internal fixes, there are two that impact the public API:

SPDYMetadata has been substantially expanded to include detailed stream timings. It is also now exposed via a concrete class implementation rather than a dictionary with documented keys. The dictionary-based version has been removed and is a breaking change for any consumers.

If the app is using NSURLSession instead of NSURLConnection, then it should implement the new SPDYURLSessionDelegate in order to better integrate with the configuration and queues provided by NSURLSession. This is especially true if custom cookie behavior is desired. In addition, by implementing this delegate, access to SPDYContext is provided, which provides a more definitive means of retrieving the metadata.

Changes included in v1.1:

Bugfix and feature release. Roll-up of all changes since last release.

New features:

  • richer request metadata
  • metadata for failed requests
  • new request dispatch mechanism
  • support for NSAsserts and better app control
  • origin aliasing
  • logging with runtime levels
  • HTTP proxy support

Bug fixes and improvements:

  • fix memory access crash by retaining buffers
  • fix deadlock when reachability changes
  • fix redirect behavior for WebViews
  • fix header encoding buffer overrun
  • timer hardening
  • dispatch queue improvements
  • request canonicalization
  • add default headers to match NSURL
  • improved build targets
  • refactor stream/session management
  • more unit tests, increasing code coverage above 70%
  • general code and test cleanup/refactor
  • other minor bug fixes and enhancements