v2.6.1
2.6.1
- Fix terrible bug where cancelling all request operations for any
TNLRequestOperationQueue
will cancel all request operations for all queues!
2.6.0
- Move away from mach time for metrics to
NSDate
instances- This better mirrors what Apple does
- Avoids the pitfall of using mach times as more than just measurements of durations and using them as reference timestamps (which is frought)
- Using
NSDate
now does have the problem of clock changes impacting timings, but this is so infrequent it practically won't ever affect metrics from TNL
- Add
sessionId
toTNLAttemptMetaData
- Helps keep track of what
NSURLSession
was used
- Helps keep track of what
- Add
taskResumePriority
toTNLAttemptMetaData
- Helps keep track of what QOS was used when
resume
was called for the underlyingNSURLSessionTask
- Helps keep track of what QOS was used when
- Add
taskResumeLatency
toTNLAttemptMetaData
- Helps diagnose if there is some unforseen stall between calling
resume
for the task and the fetching actuallying starting
- Helps diagnose if there is some unforseen stall between calling
- Add
taskMetricsAfterCompletionLatency
andtaskWithoutMetricsCompletionLatency
toTNLAttemptMetaData
- Helps track when radar
#27098270
occurs
- Helps track when radar
2.5.0
- Add
[TNLGlobalConfiguration URLSessionPruneOptions]
- These options offer ways for TNL to prune inactive internal
NSURLSession
instances more aggressively than the 12 session limit does - Options can be a combination of: on memory warning, on app background and/or after every network task
- Callers can also provide a special option to prune now
- These options offer ways for TNL to prune inactive internal
- Add
[TNLGlobalConfiguration URLSessionInactivityThreshold]
- Works with
URLSessionPruneOptions
by limiting whatNSURLSession
intances are inactive by requiring a duration to elapse since the last network task ran
- Works with
- Add
[TNLGlobalConfiguration pruneURLSessionMatchingRequestConfiguration:operationQueueId:]
- Offers a way to explicitely purge a specific underlying
NSURLSession
based on a givenTNLRequestConfiguration
and aTNLRequestOperationQueue
instance'sidentifier
- Offers a way to explicitely purge a specific underlying
2.4.1
Author: Laurentiu Dascalu
- Expose method on
TNLLogger
to redact desired header fields from being logged - Good for redacting things you don't want to log like
Authorization
header field
2.4.0
- Add captive portal detection to
TNLCommunicationAgent
- detects when a known HTTP (non-HTTPS) endpoint is intercepted via a captive portal
- this mechanism is a solid tradeoff in coverage vs complexity
- there are many ways captive portals can manifest beyond what TNL detects
- a 100% coverage is extremely complicated and 100% accuracy is not feasible
- supporting the simplest mechanism for detection is sufficient for most detection use cases