{"push_id":810659068,"size":21,"distinct_size":3,"ref":"refs/heads/develop-future","head":"c0d635dc53fcfc93eb37b63b9be6db33b067db81","before":"8f0b57ad76f06cc71713ad85dcc505442fa7913a","commits":[{"sha":"dface955041aa8a76d338d33ab95ef596703f6cb","author":{"email":"21a3323380a1d09ddbe6662940fadb573484973c@twitter.com","name":"Kirk Beitz"},"message":"silence upgrade check warnings in .pbxproj/.xcscheme files","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/dface955041aa8a76d338d33ab95ef596703f6cb"},{"sha":"11db51449d649e4c6d03a77381fd562da9fe692f","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #124 from johnkdoe/develop\n\nsilence upgrade check warnings in .pbxproj/.xcscheme files","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/11db51449d649e4c6d03a77381fd562da9fe692f"},{"sha":"eeab3b58817031a564e01f2868ce06a0397a7434","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Fix rxBytes and rxBodyBytes in metadata.\n\nData frames were incorrectly reporting their size in the metadata\nfields rxBytes and rxBodyBytes. If a data frame got broken up into\nmultiple TCP segments, those would each be reported to the SPDYSession\nas a \"data frame\", with the encodedLength set to the overall frame\nsize (for the first segment) or the remaining segment sizes.\n\nIt was, essentially, indeterminately wrong from the POV of the app.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/eeab3b58817031a564e01f2868ce06a0397a7434"},{"sha":"97650865318612809512339c3a90a2600d453705","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #125 from kgoodier/feature/fix-metadata-rxbytes\n\nFix rxBytes and rxBodyBytes in metadata.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/97650865318612809512339c3a90a2600d453705"},{"sha":"cc1c1fb27edb02da19acb0452d5fac36af28f0e7","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Improve session manager failure handling.\n\nWhen a \"fast fail\" is detected, which is defined as a socket failing\nto initialize or connect when there are no other successfully connected\nsockets, we will now throttle the creation of additional sockets by\nwaiting a small amount of time before the next attempt. Previously,\neach HTTP request would  force a new socket creation and connection\nattempt. This was potentially dozens of creations, or more, per second.\n\nThe delay will only apply to requests queued after a socket fails to\nconnect. The root error will already have been returned to the app,\nduring the previous failure. This delay should not be noticeable -- even\nif the next socket succeeds, it will be right after a catastrophic\nnetwork failure, and the delay will just be lost in the noise.\n\nThere was a major bug in _fillSessionPool. If the pool size was > 1, and\nif the first SPDYSession (socket) was successfully created but\nsubsequent ones failed, it would enter an infinite loop until they were\neventually successfully created. This is an unlikely, if not nearly\nimpossible, scenario in the real world, as I cannot find a way to make\nthe SPDYSocket fail to initialize the socket except by artificial means.\nAll failures, even \"airplane mode\", come asynchronously during a stream\ncallback.\n\nAlso improve socket error messages in SPDYSocket to have unique\nmessages, and fix case where a stream error could return nil.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/cc1c1fb27edb02da19acb0452d5fac36af28f0e7"},{"sha":"3ff8fe274cb1faf188b066581a758a8fbd9b3e7c","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Defensive code for SPDYSocket crash.\n\nInside CFStreamCreatePairWithSocketToHost, generally inside either the\nconstructor or destructor for HostBase, we sometimes see a crash.\nSometimes it is trying to access address 0x0, sometimes free() detects\ncorruption.\n\nLet's have no references to self during that call, and let's ensure\nthe hostname is sufficiently retained.\n\nAlso, because it's somewhat related, removing an unnecessary extra\nreference to the current endpoint. It's available from the endpoint\nmanager.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/3ff8fe274cb1faf188b066581a758a8fbd9b3e7c"},{"sha":"e63aee30c53f9e85e8ddf8520f4f71e3dbcbedf2","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #126 from kgoodier/fix/socket-crash-fixes\n\nAttempt to fix socket crashes and improve fast fail behavior","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/e63aee30c53f9e85e8ddf8520f4f71e3dbcbedf2"},{"sha":"c7fdd652b1b85d6306438914bf21d6e388ed11a3","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Migrate unit tests from OCUnit to XCTest.\n\nUsed XCode's refactor option.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/c7fdd652b1b85d6306438914bf21d6e388ed11a3"},{"sha":"b174b97f0feefd8cfb8b438db9c41d9b72d2be40","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #127 from kgoodier/feature/migrate-xctest\n\nMigrate unit tests from OCUnit to XCTest.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/b174b97f0feefd8cfb8b438db9c41d9b72d2be40"},{"sha":"b2d632aae82e4444c41cb4e03376180fcd870c99","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Finalize move from OCTest to XCTest.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/b2d632aae82e4444c41cb4e03376180fcd870c99"},{"sha":"0e77411beee02eda4a86d6beeec661230b197ba6","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Fix SPDYFrameEncoder analyer warning.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/0e77411beee02eda4a86d6beeec661230b197ba6"},{"sha":"6e2ac72b97f72655b9e97dbd125ff99f8a30eee0","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #128 from kgoodier/fix/build-warnings\n\nFix analyzer and build warnings","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/6e2ac72b97f72655b9e97dbd125ff99f8a30eee0"},{"sha":"31c15de14409bc7c29e3a60562e5e39993aca091","author":{"email":"21a3323380a1d09ddbe6662940fadb573484973c@twitter.com","name":"Kirk Beitz"},"message":"nil-check s for [s caseInsensitiveCompare:a]==NSOrderedSame\n\nif s is nil, then [s caseInsensitiveComapre:a] will return 0, and 0 is\nthe same as NSOrderedSame, so this equality check incorrectly results in\nYES (!!)","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/31c15de14409bc7c29e3a60562e5e39993aca091"},{"sha":"dae67771572f59f9ccbf2b5e7cfb924662a73ffe","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #129 from johnkdoe/develop\n\nnil-check s for [s caseInsensitiveCompare:a]==NSOrderedSame","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/dae67771572f59f9ccbf2b5e7cfb924662a73ffe"},{"sha":"9878fe2aae88f729c1f4e2c56f93e22a04b3ddc2","author":{"email":"21a3323380a1d09ddbe6662940fadb573484973c@twitter.com","name":"Kirk Beitz"},"message":"perform the upgrade changes recommended by Xcode 7\n\n1) the .xcscheme files have been updated to LastUpgradeVersions = 0700,\n   which should be fine for Xcode 6.4 (and earlier)\n2) the .xcscheme files have been \"alphabetized\" as Xcode 7 prefers when\n   writing out the file (should have no effect on use by earlier\n   versions of Xcode)\n3) the project.pbxproj has been updated to LastUpgradeCheck = 0700 and\n   also changed according to the recommended upgrades by Xcode 7, as\n   listed below:\n\n- Target 'SPDYUnitTests' - Adopt \"Product Bundle Identifier\" build\n  setting\n\n  Target 'SPDYUnitTests' will have its Info.plist's CFBundleIdentifier\n  key set to \"$(PRODUCT_BUNDLE_IDENTIFIER)\", and the\n  \"PRODUCT_BUNDLE_IDENTIFIER\" build setting will be set to\n  \"com.twitter.${PRODUCT_NAME:rfc1034identifier}\"\n\n- Target 'SPDY.iphoneos' - Automatically Select Architectures\n\n  Target 'SPDY.iphoneos' overrides the Architectures setting.  This will\n  remove the setting and allow Xcode to automatically select\n  Architectures based on hardware available for the active platform and\n  deployment target.\n\n- Target 'SPDY.macosx' - Automatically Select Architectures\n\n  Target 'SPDY.macosx' overrides the Architectures setting.  This will\n  remove the setting and allow Xcode to automatically select\n  Architectures based on hardware available for the active platform and\n  deployment target.\n\n- Target 'SPDY' - Automatically Select Architectures\n\n  Target 'SPDY' overrides the Architectures setting.  This will remove\n  the setting and allow Xcode to automatically select Architectures\n  based on hardware available for the active platform and deployment\n  target.\n\n- Target 'SPDY' - Adopt \"Product Bundle Identifier\" build setting\n\n  Target 'SPDY' will have its Info.plist's CFBundleIdentifier key set to\n  \"$(PRODUCT_BUNDLE_IDENTIFIER)\", and the \"PRODUCT_BUNDLE_IDENTIFIER\"\n  build setting will be set to\n  \"com.twitter.${PRODUCT_NAME:rfc1034identifier}\"\n\n- Project 'SPDY' - Automatically Select Architectures\n\n  Project 'SPDY' overrides the Architectures setting.  This will remove\n  the setting and allow Xcode to automatically select Architectures\n  based on hardware available for the active platform and deployment\n  target.\n\n- Project 'SPDY' - Turn on \"Enable Testability\" When Debugging\n\n  This will turn on \"Enable Testability\" for the \"Debug\" configuration","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/9878fe2aae88f729c1f4e2c56f93e22a04b3ddc2"},{"sha":"6257755fc2cbbfad756d0f019d026526631e6113","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #130 from johnkdoe/develop\n\nperform the upgrade changes recommended by Xcode 7","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/6257755fc2cbbfad756d0f019d026526631e6113"},{"sha":"b6c06c9c6a011e2be354ee34c5d1a41b7dee1021","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Use NSURLComponents for percent-encoding URLs.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/b6c06c9c6a011e2be354ee34c5d1a41b7dee1021"},{"sha":"b6c9aaaf2a38de25183ea01e0cce0026da5e175d","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@users.noreply.github.com","name":"Kevin Goodier"},"message":"Merge pull request #131 from kgoodier/fix/urlencode-path\n\nUse NSURLComponents for percent-encoding URLs.","distinct":false,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/b6c9aaaf2a38de25183ea01e0cce0026da5e175d"},{"sha":"e070a39fbad577ad078c304fc3f1a5549ec784fe","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Style cleanup.\n\nSPDYConfiguration properties:\n1. make nonatomic\n2. copy strings & dictionaries\n\nGlobal:\n3. \"- (id)init...\" pattern should be \"- (instancetype)init...\".","distinct":true,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/e070a39fbad577ad078c304fc3f1a5549ec784fe"},{"sha":"c180646cf3dfeb2e1e53834381516c897da41b7a","author":{"email":"18f9eeae11eca2e38e6a9fac0a0b6b8374405078@twitter.com","name":"Kevin Goodier"},"message":"Fix non-null warning in SPDYOriginEndpointManager.\n\nThe dummy call to init CFNetwork seems to be unnecessary. I can't find\nany information or examples to support keeping it for iOS.","distinct":true,"url":"https://api.github.com/repos/kgoodier/CocoaSPDY/commits/c180646cf3dfeb2e1e53834381516c897da41b7a"}]}