From 8c5b4fb2980e8ea4427a6b0238e552c0539be0a6 Mon Sep 17 00:00:00 2001 From: Thong Nguyen Date: Wed, 12 Feb 2014 19:53:21 +0000 Subject: [PATCH] Fixed openForSeek on STKHTTPDataSource potentially handling old URLs if URL provider is async --- StreamingKit/StreamingKit/STKHTTPDataSource.m | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/StreamingKit/StreamingKit/STKHTTPDataSource.m b/StreamingKit/StreamingKit/STKHTTPDataSource.m index 2c9d97b..862ab64 100644 --- a/StreamingKit/StreamingKit/STKHTTPDataSource.m +++ b/StreamingKit/StreamingKit/STKHTTPDataSource.m @@ -42,6 +42,8 @@ long long relativePosition; long long fileLength; int discontinuous; + int requestSerialNumber; + NSURL* currentUrl; STKAsyncURLProvider asyncUrlProvider; NSDictionary* httpHeaders; @@ -262,8 +264,18 @@ -(void) openForSeek:(BOOL)forSeek { + int localRequestSerialNumber; + + requestSerialNumber++; + localRequestSerialNumber = requestSerialNumber; + asyncUrlProvider(self, forSeek, ^(NSURL* url) { + if (localRequestSerialNumber != self->requestSerialNumber) + { + return; + } + self->currentUrl = url; if (url == nil)