mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 22:56:12 -04:00
Add more logs
PiperOrigin-RevId: 755592022
This commit is contained in:
committed by
Copybara-Service
parent
067450c9ef
commit
b57c23bcc1
@@ -73,6 +73,9 @@ NSDictionary<NSString *, NSString *> *GNCTXTRecordForBrowseResult(nw_browse_resu
|
||||
// service type. We maintain ownership of the browser's lifetime, so we can maintain a strong
|
||||
// reference.
|
||||
NSMutableDictionary<NSString *, nw_browser_t> *_serviceBrowsers;
|
||||
|
||||
// The dispatch queue used for all callbacks.
|
||||
dispatch_queue_t _dispatchQueue;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
@@ -80,6 +83,7 @@ NSDictionary<NSString *, NSString *> *GNCTXTRecordForBrowseResult(nw_browse_resu
|
||||
_includePeerToPeer = NO;
|
||||
_serverSockets = [NSMapTable strongToWeakObjectsMapTable];
|
||||
_serviceBrowsers = [[NSMutableDictionary alloc] init];
|
||||
_dispatchQueue = dispatch_queue_create("GNCNWFramework", DISPATCH_QUEUE_SERIAL);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -99,17 +103,19 @@ static GNCNWFramework *gInstance = nil;
|
||||
return gInstance;
|
||||
}
|
||||
|
||||
- (BOOL) isListeningForAnyService {
|
||||
- (BOOL)isListeningForAnyService {
|
||||
return _serverSockets.count > 0;
|
||||
}
|
||||
|
||||
- (BOOL) isDiscoveringAnyService {
|
||||
- (BOOL)isDiscoveringAnyService {
|
||||
return _serviceBrowsers.count > 0;
|
||||
}
|
||||
|
||||
- (GNCNWFrameworkServerSocket *)listenForServiceOnPort:(NSInteger)port
|
||||
includePeerToPeer:(BOOL)includePeerToPeer
|
||||
error:(NSError **)error {
|
||||
GTMLoggerInfo(@"[GNCNWFramework] Listen on port: %ld with includePeerToPeer: %@.", (long)port,
|
||||
(includePeerToPeer ? @"true" : @"false"));
|
||||
GNCNWFrameworkServerSocket *serverSocket = [[GNCNWFrameworkServerSocket alloc] initWithPort:port];
|
||||
_includePeerToPeer = includePeerToPeer;
|
||||
BOOL success = [serverSocket startListeningWithError:error includePeerToPeer:_includePeerToPeer];
|
||||
@@ -162,7 +168,7 @@ static GNCNWFramework *gInstance = nil;
|
||||
nw_browse_descriptor_set_include_txt_record(descriptor, YES);
|
||||
nw_browser_t browser = nw_browser_create(descriptor, parameters);
|
||||
|
||||
nw_browser_set_queue(browser, dispatch_get_main_queue());
|
||||
nw_browser_set_queue(browser, _dispatchQueue);
|
||||
|
||||
nw_browser_set_browse_results_changed_handler(browser, ^(nw_browse_result_t old_result,
|
||||
nw_browse_result_t new_result,
|
||||
@@ -284,6 +290,9 @@ static GNCNWFramework *gInstance = nil;
|
||||
- (GNCNWFrameworkSocket *)connectToServiceName:(NSString *)serviceName
|
||||
serviceType:(NSString *)serviceType
|
||||
error:(NSError **)error {
|
||||
GTMLoggerInfo(@"[GNCNWFramework] Connect to service {serviceName:%@, serviceType:%@, "
|
||||
@"includePeerToPeer:%@}.",
|
||||
serviceName, serviceType, (_includePeerToPeer ? @"true" : @"false"));
|
||||
nw_endpoint_t endpoint = nw_endpoint_create_bonjour_service([serviceName UTF8String],
|
||||
[serviceType UTF8String], "local");
|
||||
return [self connectToEndpoint:endpoint includePeerToPeer:_includePeerToPeer error:error];
|
||||
@@ -293,6 +302,8 @@ static GNCNWFramework *gInstance = nil;
|
||||
port:(NSInteger)port
|
||||
includePeerToPeer:(BOOL)includePeerToPeer
|
||||
error:(NSError **)error {
|
||||
GTMLoggerInfo(@"[GNCNWFramework] Connect to host {host:%s, port:%ld}.",
|
||||
host.dottedRepresentation.UTF8String, (long)port);
|
||||
nw_endpoint_t endpoint =
|
||||
nw_endpoint_create_host(host.dottedRepresentation.UTF8String, @(port).stringValue.UTF8String);
|
||||
return [self connectToEndpoint:endpoint includePeerToPeer:(BOOL)includePeerToPeer error:error];
|
||||
@@ -348,6 +359,7 @@ static GNCNWFramework *gInstance = nil;
|
||||
*error = blockError;
|
||||
}
|
||||
|
||||
GTMLoggerInfo(@"[GNCNWFramework] Connect to endpoint result %@", @(blockResult));
|
||||
switch (blockResult) {
|
||||
case nw_connection_state_invalid:
|
||||
case nw_connection_state_waiting:
|
||||
|
||||
+13
-2
@@ -40,6 +40,7 @@
|
||||
nw_listener_t _listener;
|
||||
nw_listener_state_t _listenerState;
|
||||
NSError *_listenerError;
|
||||
dispatch_queue_t _dispatchQueue;
|
||||
}
|
||||
|
||||
- (instancetype)initWithPort:(NSInteger)port {
|
||||
@@ -48,6 +49,7 @@
|
||||
_port = port;
|
||||
_condition = [[NSCondition alloc] init];
|
||||
_listenerState = nw_listener_state_invalid;
|
||||
_dispatchQueue = dispatch_queue_create("GNCNWFrameworkServerSocket", DISPATCH_QUEUE_SERIAL);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -128,14 +130,14 @@
|
||||
}
|
||||
|
||||
// Register to listen for incoming connections.
|
||||
nw_listener_set_queue(_listener, dispatch_get_main_queue());
|
||||
nw_listener_set_queue(_listener, _dispatchQueue);
|
||||
nw_listener_set_new_connection_handler(_listener, ^(nw_connection_t connection) {
|
||||
// Keep track of any incoming connections. We must keep a reference otherwise the connection
|
||||
// will be dropped.
|
||||
[self.pendingConnections addObject:connection];
|
||||
// Register for state changes so we can clean up any failed/canceled connections and inform
|
||||
// Nearby of any ready connections when asked.
|
||||
nw_connection_set_queue(connection, dispatch_get_main_queue());
|
||||
nw_connection_set_queue(connection, _dispatchQueue);
|
||||
nw_connection_set_state_changed_handler(connection,
|
||||
^(nw_connection_state_t state, nw_error_t error) {
|
||||
[_condition lock];
|
||||
@@ -203,10 +205,12 @@
|
||||
case nw_listener_state_waiting:
|
||||
case nw_listener_state_failed:
|
||||
case nw_listener_state_cancelled:
|
||||
GTMLoggerError(@"[GNCNWFrameworkServerSocket] Listen state: %u", _listenerState);
|
||||
[self close];
|
||||
return NO;
|
||||
case nw_listener_state_ready:
|
||||
_port = nw_listener_get_port(_listener);
|
||||
GTMLoggerInfo(@"[GNCNWFrameworkServerSocket] Listen on port: %ld", (long)_port);
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
@@ -214,6 +218,10 @@
|
||||
- (void)startAdvertisingServiceName:(NSString *)serviceName
|
||||
serviceType:(NSString *)serviceType
|
||||
txtRecords:(NSDictionary<NSString *, NSString *> *)txtRecords {
|
||||
GTMLoggerInfo(@"[GNCNWFrameworkServerSocket] Start advertising {serviceName:%@, "
|
||||
@"serviceType: %@}",
|
||||
serviceName, serviceType);
|
||||
|
||||
nw_advertise_descriptor_t advertiseDescriptor = nw_advertise_descriptor_create_bonjour_service(
|
||||
[serviceName UTF8String], [serviceType UTF8String], /*domain=*/nil);
|
||||
nw_txt_record_t txtRecord = nw_txt_record_create_dictionary();
|
||||
@@ -221,6 +229,9 @@
|
||||
NSString *recordValue = [txtRecords objectForKey:key];
|
||||
nw_txt_record_set_key(txtRecord, [key UTF8String], [recordValue UTF8String],
|
||||
[recordValue length]);
|
||||
GTMLoggerDebug(@"[GNCNWFrameworkServerSocket] Text record {key: "
|
||||
@"%@, value: %@}",
|
||||
key, recordValue);
|
||||
}
|
||||
nw_advertise_descriptor_set_txt_record_object(advertiseDescriptor, txtRecord);
|
||||
nw_listener_set_advertise_descriptor(_listener, advertiseDescriptor);
|
||||
|
||||
@@ -128,10 +128,15 @@ bool GattClient::SetCharacteristicSubscription(
|
||||
}
|
||||
|
||||
void GattClient::Disconnect() {
|
||||
// There seems to be an issue between some iOS<>Android device pairs where the Android device will
|
||||
// not connect to the iOS device if the iOS device disconnects and then attempts to reconnect.
|
||||
// Because of this, we no-op here instead of calling `[gatt_client_ disconnect]`.
|
||||
// See: b/375176623
|
||||
// There seems to be an issue between some iOS<>Android device pairs where the Android device will
|
||||
// not connect to the iOS device if the iOS device disconnects and then attempts to reconnect.
|
||||
// Because of this, we no-op here instead of calling `[gatt_client_ disconnect]`.
|
||||
// See: b/375176623
|
||||
#if defined(NC_IOS_SDK)
|
||||
// Avoid to impact GTV functionality, put the disconnect for NC iOS SDK only, so thatGATT client
|
||||
// can reconnect to the GATT server.
|
||||
[gatt_client_ disconnect];
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace apple
|
||||
|
||||
Reference in New Issue
Block a user