@@ -4270,7 +4270,7 @@ + (void)removeStreamListener:(GCDAsyncUdpSocket *)asyncUdpSocket
4270
4270
static void CFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo)
4271
4271
{
4272
4272
@autoreleasepool {
4273
- GCDAsyncUdpSocket *asyncUdpSocket = [( GCDAsyncUdpSocket *)pInfo retain ] ;
4273
+ GCDAsyncUdpSocket *asyncUdpSocket = (__bridge GCDAsyncUdpSocket *)pInfo;
4274
4274
4275
4275
switch (type)
4276
4276
{
@@ -4287,10 +4287,10 @@ static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type,
4287
4287
case kCFStreamEventErrorOccurred :
4288
4288
case kCFStreamEventEndEncountered :
4289
4289
{
4290
- NSError *error = NSMakeCollectable ( CFReadStreamCopyError (stream) );
4290
+ NSError *error = (__bridge_transfer NSError *) CFReadStreamCopyError (stream);
4291
4291
if (error == nil && type == kCFStreamEventEndEncountered )
4292
4292
{
4293
- error = [[ asyncUdpSocket socketClosedError ] retain ];
4293
+ error = [asyncUdpSocket socketClosedError ];
4294
4294
}
4295
4295
4296
4296
dispatch_async (asyncUdpSocket->socketQueue , ^{ @autoreleasepool {
@@ -4309,23 +4309,20 @@ static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type,
4309
4309
4310
4310
}});
4311
4311
4312
- [error release ];
4313
4312
break ;
4314
4313
}
4315
4314
default :
4316
4315
{
4317
4316
LogCError (@" CFReadStreamCallback - UnknownType: %i " , (int )type);
4318
4317
}
4319
4318
}
4320
-
4321
- [asyncUdpSocket release ];
4322
4319
}
4323
4320
}
4324
4321
4325
4322
static void CFWriteStreamCallback (CFWriteStreamRef stream, CFStreamEventType type, void *pInfo)
4326
4323
{
4327
4324
@autoreleasepool {
4328
- GCDAsyncUdpSocket *asyncUdpSocket = [( GCDAsyncUdpSocket *)pInfo retain ] ;
4325
+ GCDAsyncUdpSocket *asyncUdpSocket = (__bridge GCDAsyncUdpSocket *)pInfo;
4329
4326
4330
4327
switch (type)
4331
4328
{
@@ -4342,10 +4339,10 @@ static void CFWriteStreamCallback(CFWriteStreamRef stream, CFStreamEventType typ
4342
4339
case kCFStreamEventErrorOccurred :
4343
4340
case kCFStreamEventEndEncountered :
4344
4341
{
4345
- NSError *error = NSMakeCollectable ( CFWriteStreamCopyError (stream) );
4342
+ NSError *error = (__bridge_transfer NSError *) CFWriteStreamCopyError (stream);
4346
4343
if (error == nil && type == kCFStreamEventEndEncountered )
4347
4344
{
4348
- error = [[ asyncUdpSocket socketClosedError ] retain ];
4345
+ error = [asyncUdpSocket socketClosedError ];
4349
4346
}
4350
4347
4351
4348
dispatch_async (asyncUdpSocket->socketQueue , ^{ @autoreleasepool {
@@ -4364,16 +4361,13 @@ static void CFWriteStreamCallback(CFWriteStreamRef stream, CFStreamEventType typ
4364
4361
4365
4362
}});
4366
4363
4367
- [error release ];
4368
4364
break ;
4369
4365
}
4370
4366
default :
4371
4367
{
4372
4368
LogCError (@" CFWriteStreamCallback - UnknownType: %i " , (int )type);
4373
4369
}
4374
4370
}
4375
-
4376
- [asyncUdpSocket release ];
4377
4371
}
4378
4372
}
4379
4373
@@ -4472,7 +4466,7 @@ - (BOOL)registerForStreamCallbacks:(NSError **)errPtr
4472
4466
NSError *err = nil ;
4473
4467
4474
4468
streamContext.version = 0 ;
4475
- streamContext.info = self;
4469
+ streamContext.info = (__bridge void *) self;
4476
4470
streamContext.retain = nil ;
4477
4471
streamContext.release = nil ;
4478
4472
streamContext.copyDescription = nil ;
@@ -4776,6 +4770,9 @@ - (BOOL)enableBackgroundingOnSockets
4776
4770
return NO ;
4777
4771
}
4778
4772
4773
+ // Why is this commented out?
4774
+ // See comments below.
4775
+
4779
4776
// NSError *err = nil;
4780
4777
// if (![self createReadAndWriteStreams:&err])
4781
4778
// {
@@ -4818,7 +4815,7 @@ - (BOOL)enableBackgroundingOnSockets
4818
4815
//
4819
4816
// One tiny problem: the sockets will still get closed when the app gets backgrounded.
4820
4817
//
4821
- // Edit: Actually I forgot to set the voip flag in the Info.plist, so I need to test this again.. .
4818
+ // Apple does not officially support backgrounding UDP sockets .
4822
4819
4823
4820
return NO ;
4824
4821
}
0 commit comments