Browse Source

Merge pull request #447 from efryntov/master

Added -(void)onActiveAuthorizationIDs:(NSArray*)authorizations
Rod Hynes 8 years ago
parent
commit
0779c5550b

+ 7 - 0
MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel/PsiphonTunnel.h

@@ -299,6 +299,13 @@ Swift: @code func onInternetReachabilityChanged(_ currentReachability: Reachabil
  */
 - (void)onServerTimestamp:(NSString * _Nonnull)timestamp;
 
+/*!
+ Called when tunnel-core receives an array of active authorization IDs in the handshake
+ @param authorizations  A string array containing active authorization IDs.
+ Swift: @code func onActiveAuthorizationIDs(_ authorizations: [Any]) @endcode
+ */
+- (void)onActiveAuthorizationIDs:(NSArray * _Nonnull)authorizations;
+
 @end
 
 /*!

+ 14 - 0
MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel/PsiphonTunnel.m

@@ -846,6 +846,20 @@
             });
         }
     }
+    else if ([noticeType isEqualToString:@"ActiveAuthorizationIDs"]) {
+        id authorizations = [notice valueForKeyPath:@"data.IDs"];
+        if (![authorizations isKindOfClass:[NSArray class]]) {
+            [self logMessage:[NSString stringWithFormat: @"ActiveAuthorizationIDs notice missing data.IDs: %@", noticeJSON]];
+            return;
+        }
+
+        if ([self.tunneledAppDelegate respondsToSelector:@selector(onActiveAuthorizationIDs:)]) {
+            dispatch_sync(self->callbackQueue, ^{
+                [self.tunneledAppDelegate onActiveAuthorizationIDs:authorizations];
+            });
+        }
+    }
+
     else if ([noticeType isEqualToString:@"InternalError"]) {
         internalError = TRUE;
     }