[vlc-commits] [Git][videolan/vlc][3.0.x] bonjour: add brackets in IPv6 addresses in service URLs

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Sat Apr 4 16:17:30 UTC 2026



Felix Paul Kühne pushed to branch 3.0.x at VideoLAN / VLC


Commits:
660938d9 by Felix Paul Kühne at 2026-04-03T17:51:02+02:00
bonjour: add brackets in IPv6 addresses in service URLs

This solves a crash on parsing. This is analogous to 996b7524f on
master introduced in !8797. However, due Mac OS X 10.7 and 10.8, we
cannot use NSURLComponents in v3.

- - - - -


1 changed file:

- modules/services_discovery/bonjour.m


Changes:

=====================================
modules/services_discovery/bonjour.m
=====================================
@@ -356,7 +356,10 @@ static NSString * ipAddressAsStringForData(NSData * data)
 {
     vlc_renderer_discovery_t *p_rd = (vlc_renderer_discovery_t *)_p_this;
 
-    NSString *uri = [NSString stringWithFormat:@"%@://%@:%ld", protocol, netService.hostName, netService.port];
+    NSString *host = netService.hostName;
+    if( [host rangeOfString:@":"].location != NSNotFound )
+        host = [NSString stringWithFormat:@"[%@]", host];
+    NSString *uri = [NSString stringWithFormat:@"%@://%@:%ld", protocol, host, (long)netService.port];
     NSDictionary *txtDict = [NSNetService dictionaryFromTXTRecordData:[netService TXTRecordData]];
     NSString *displayName = netService.name;
     int rendererFlags = 0;
@@ -419,7 +422,10 @@ static NSString * ipAddressAsStringForData(NSData * data)
     if ([protocol isEqualToString:@"smb"]) {
         host = ipAddressAsStringForData(netService.addresses.firstObject);
     }
-    NSString *uri = [NSString stringWithFormat:@"%@://%@:%ld", protocol, host, netService.port];
+
+    if( [host rangeOfString:@":"].location != NSNotFound )
+        host = [NSString stringWithFormat:@"[%@]", host];
+    NSString *uri = [NSString stringWithFormat:@"%@://%@:%ld", protocol, host, (long)netService.port];
 
     input_item_t *p_input_item = input_item_NewDirectory([uri UTF8String], [netService.name UTF8String], ITEM_NET );
     if (p_input_item != NULL) {



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/660938d9a58323f1b3b6bc4284396203ba13126f

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/660938d9a58323f1b3b6bc4284396203ba13126f
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list