Unnecessary self-merge (I'm just being confused with hg. Sorry.)
1.1 --- a/.hgignore Sun May 10 19:00:50 2009 -0700
1.2 +++ b/.hgignore Sun May 10 19:05:52 2009 -0700
1.3 @@ -8,5 +8,8 @@
1.4 (*)
1.5 *.pbxuser
1.6 *.perspectivev3
1.7 +*.mode1v3
1.8 +*.mode2v3
1.9 *.mpkg
1.10 *.framework
1.11 +*.orig
2.1 --- a/MYNetwork-iPhone.xcodeproj/project.pbxproj Sun May 10 19:00:50 2009 -0700
2.2 +++ b/MYNetwork-iPhone.xcodeproj/project.pbxproj Sun May 10 19:05:52 2009 -0700
2.3 @@ -48,6 +48,40 @@
2.4 27D915CB0FA8EAD0002B0DEC /* MYBonjourQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C60FA8EAD0002B0DEC /* MYBonjourQuery.m */; };
2.5 27D915CC0FA8EAD0002B0DEC /* MYBonjourRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C80FA8EAD0002B0DEC /* MYBonjourRegistration.m */; };
2.6 280E754F0DD40C5E005A515E /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 280E754C0DD40C5E005A515E /* MainWindow.xib */; };
2.7 + 384A72AE0FB00523006A0B19 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
2.8 + 384A72AF0FB00523006A0B19 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 270E9B4E0EE63F8F003F17CA /* CFNetwork.framework */; };
2.9 + 384A72B00FB00523006A0B19 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 270E9AE80EE61167003F17CA /* libz.dylib */; };
2.10 + 384A72B10FB00523006A0B19 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
2.11 + 384A72B20FB00523006A0B19 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2777C78C0F75E141007F8D30 /* Security.framework */; };
2.12 + 384A72B70FB0062C006A0B19 /* ConcurrentOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 384A72B60FB0062C006A0B19 /* ConcurrentOperation.m */; };
2.13 + 384A72B80FB006DF006A0B19 /* IPAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AA20EE61113003F17CA /* IPAddress.m */; };
2.14 + 384A72B90FB006DF006A0B19 /* TCPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AA50EE61113003F17CA /* TCPConnection.m */; };
2.15 + 384A72BA0FB006DF006A0B19 /* TCPEndpoint.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AA70EE61113003F17CA /* TCPEndpoint.m */; };
2.16 + 384A72BB0FB006DF006A0B19 /* TCPListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AA90EE61113003F17CA /* TCPListener.m */; };
2.17 + 384A72BC0FB006DF006A0B19 /* TCPStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AAB0EE61113003F17CA /* TCPStream.m */; };
2.18 + 384A72BD0FB006DF006A0B19 /* TCPWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AAD0EE61113003F17CA /* TCPWriter.m */; };
2.19 + 384A72BE0FB006DF006A0B19 /* BLIPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AB20EE61113003F17CA /* BLIPConnection.m */; };
2.20 + 384A72BF0FB006DF006A0B19 /* BLIPDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AB40EE61113003F17CA /* BLIPDispatcher.m */; };
2.21 + 384A72C00FB006DF006A0B19 /* BLIPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AB60EE61113003F17CA /* BLIPMessage.m */; };
2.22 + 384A72C10FB006DF006A0B19 /* BLIPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AB80EE61113003F17CA /* BLIPRequest.m */; };
2.23 + 384A72C20FB006DF006A0B19 /* BLIPProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9ABA0EE61113003F17CA /* BLIPProperties.m */; };
2.24 + 384A72C30FB006DF006A0B19 /* BLIPReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9ABC0EE61113003F17CA /* BLIPReader.m */; };
2.25 + 384A72C40FB006DF006A0B19 /* BLIPWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9ABE0EE61113003F17CA /* BLIPWriter.m */; };
2.26 + 384A72C50FB006DF006A0B19 /* CollectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AD10EE6111A003F17CA /* CollectionUtils.m */; };
2.27 + 384A72C60FB006DF006A0B19 /* ExceptionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AD30EE6111A003F17CA /* ExceptionUtils.m */; };
2.28 + 384A72C70FB006DF006A0B19 /* Logging.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AD50EE6111A003F17CA /* Logging.m */; };
2.29 + 384A72C80FB006DF006A0B19 /* Target.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AD70EE6111A003F17CA /* Target.m */; };
2.30 + 384A72C90FB006DF006A0B19 /* Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9AD90EE6111A003F17CA /* Test.m */; };
2.31 + 384A72CA0FB006DF006A0B19 /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E9ADD0EE6111A003F17CA /* GTMNSData+zlib.m */; };
2.32 + 384A72CB0FB006DF006A0B19 /* MYPortMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 278C1B2C0F9F865800954AE1 /* MYPortMapper.m */; };
2.33 + 384A72CC0FB006DF006A0B19 /* PortMapperTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 278C1B2D0F9F865800954AE1 /* PortMapperTest.m */; };
2.34 + 384A72CD0FB006DF006A0B19 /* MYDNSService.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915BC0FA8EABC002B0DEC /* MYDNSService.m */; };
2.35 + 384A72CE0FB006DF006A0B19 /* MYAddressLookup.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915BE0FA8EABC002B0DEC /* MYAddressLookup.m */; };
2.36 + 384A72CF0FB006DF006A0B19 /* MYBonjourBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C20FA8EAD0002B0DEC /* MYBonjourBrowser.m */; };
2.37 + 384A72D00FB006DF006A0B19 /* MYBonjourService.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C40FA8EAD0002B0DEC /* MYBonjourService.m */; };
2.38 + 384A72D10FB006DF006A0B19 /* MYBonjourQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C60FA8EAD0002B0DEC /* MYBonjourQuery.m */; };
2.39 + 384A72D20FB006DF006A0B19 /* MYBonjourRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D915C80FA8EAD0002B0DEC /* MYBonjourRegistration.m */; };
2.40 + 384A72D30FB006DF006A0B19 /* ConcurrentOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 384A72B60FB0062C006A0B19 /* ConcurrentOperation.m */; };
2.41 /* End PBXBuildFile section */
2.42
2.43 /* Begin PBXFileReference section */
2.44 @@ -127,6 +161,9 @@
2.45 27D915C80FA8EAD0002B0DEC /* MYBonjourRegistration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MYBonjourRegistration.m; path = Bonjour/MYBonjourRegistration.m; sourceTree = "<group>"; };
2.46 280E754C0DD40C5E005A515E /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
2.47 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iPhone/main.m; sourceTree = "<group>"; };
2.48 + 384A72A90FB0050B006A0B19 /* libMYNetwork.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMYNetwork.a; sourceTree = BUILT_PRODUCTS_DIR; };
2.49 + 384A72B50FB0062C006A0B19 /* ConcurrentOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConcurrentOperation.h; sourceTree = "<group>"; };
2.50 + 384A72B60FB0062C006A0B19 /* ConcurrentOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConcurrentOperation.m; sourceTree = "<group>"; };
2.51 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2.52 /* End PBXFileReference section */
2.53
2.54 @@ -143,6 +180,18 @@
2.55 );
2.56 runOnlyForDeploymentPostprocessing = 0;
2.57 };
2.58 + 384A72A70FB0050B006A0B19 /* Frameworks */ = {
2.59 + isa = PBXFrameworksBuildPhase;
2.60 + buildActionMask = 2147483647;
2.61 + files = (
2.62 + 384A72AE0FB00523006A0B19 /* Foundation.framework in Frameworks */,
2.63 + 384A72AF0FB00523006A0B19 /* CFNetwork.framework in Frameworks */,
2.64 + 384A72B00FB00523006A0B19 /* libz.dylib in Frameworks */,
2.65 + 384A72B10FB00523006A0B19 /* UIKit.framework in Frameworks */,
2.66 + 384A72B20FB00523006A0B19 /* Security.framework in Frameworks */,
2.67 + );
2.68 + runOnlyForDeploymentPostprocessing = 0;
2.69 + };
2.70 /* End PBXFrameworksBuildPhase section */
2.71
2.72 /* Begin PBXGroup section */
2.73 @@ -150,6 +199,7 @@
2.74 isa = PBXGroup;
2.75 children = (
2.76 1D6058910D05DD3D006BFB54 /* BLIPEcho.app */,
2.77 + 384A72A90FB0050B006A0B19 /* libMYNetwork.a */,
2.78 );
2.79 name = Products;
2.80 sourceTree = "<group>";
2.81 @@ -220,6 +270,8 @@
2.82 270E9ACD0EE6111A003F17CA /* MYUtilities */ = {
2.83 isa = PBXGroup;
2.84 children = (
2.85 + 384A72B50FB0062C006A0B19 /* ConcurrentOperation.h */,
2.86 + 384A72B60FB0062C006A0B19 /* ConcurrentOperation.m */,
2.87 270E9ACE0EE6111A003F17CA /* MYUtilitiesTest_main.m */,
2.88 270E9ACF0EE6111A003F17CA /* MYUtilities_Prefix.pch */,
2.89 270E9AD00EE6111A003F17CA /* CollectionUtils.h */,
2.90 @@ -345,6 +397,16 @@
2.91 };
2.92 /* End PBXGroup section */
2.93
2.94 +/* Begin PBXHeadersBuildPhase section */
2.95 + 384A72A50FB0050B006A0B19 /* Headers */ = {
2.96 + isa = PBXHeadersBuildPhase;
2.97 + buildActionMask = 2147483647;
2.98 + files = (
2.99 + );
2.100 + runOnlyForDeploymentPostprocessing = 0;
2.101 + };
2.102 +/* End PBXHeadersBuildPhase section */
2.103 +
2.104 /* Begin PBXNativeTarget section */
2.105 1D6058900D05DD3D006BFB54 /* MYNetwork-iPhone */ = {
2.106 isa = PBXNativeTarget;
2.107 @@ -363,6 +425,23 @@
2.108 productReference = 1D6058910D05DD3D006BFB54 /* BLIPEcho.app */;
2.109 productType = "com.apple.product-type.application";
2.110 };
2.111 + 384A72A80FB0050B006A0B19 /* MYNetwork */ = {
2.112 + isa = PBXNativeTarget;
2.113 + buildConfigurationList = 384A72B40FB00534006A0B19 /* Build configuration list for PBXNativeTarget "MYNetwork" */;
2.114 + buildPhases = (
2.115 + 384A72A50FB0050B006A0B19 /* Headers */,
2.116 + 384A72A60FB0050B006A0B19 /* Sources */,
2.117 + 384A72A70FB0050B006A0B19 /* Frameworks */,
2.118 + );
2.119 + buildRules = (
2.120 + );
2.121 + dependencies = (
2.122 + );
2.123 + name = MYNetwork;
2.124 + productName = MYNetwork;
2.125 + productReference = 384A72A90FB0050B006A0B19 /* libMYNetwork.a */;
2.126 + productType = "com.apple.product-type.library.static";
2.127 + };
2.128 /* End PBXNativeTarget section */
2.129
2.130 /* Begin PBXProject section */
2.131 @@ -383,6 +462,7 @@
2.132 projectRoot = "";
2.133 targets = (
2.134 1D6058900D05DD3D006BFB54 /* MYNetwork-iPhone */,
2.135 + 384A72A80FB0050B006A0B19 /* MYNetwork */,
2.136 );
2.137 };
2.138 /* End PBXProject section */
2.139 @@ -438,6 +518,42 @@
2.140 27D915CA0FA8EAD0002B0DEC /* MYBonjourService.m in Sources */,
2.141 27D915CB0FA8EAD0002B0DEC /* MYBonjourQuery.m in Sources */,
2.142 27D915CC0FA8EAD0002B0DEC /* MYBonjourRegistration.m in Sources */,
2.143 + 384A72B70FB0062C006A0B19 /* ConcurrentOperation.m in Sources */,
2.144 + );
2.145 + runOnlyForDeploymentPostprocessing = 0;
2.146 + };
2.147 + 384A72A60FB0050B006A0B19 /* Sources */ = {
2.148 + isa = PBXSourcesBuildPhase;
2.149 + buildActionMask = 2147483647;
2.150 + files = (
2.151 + 384A72B80FB006DF006A0B19 /* IPAddress.m in Sources */,
2.152 + 384A72B90FB006DF006A0B19 /* TCPConnection.m in Sources */,
2.153 + 384A72BA0FB006DF006A0B19 /* TCPEndpoint.m in Sources */,
2.154 + 384A72BB0FB006DF006A0B19 /* TCPListener.m in Sources */,
2.155 + 384A72BC0FB006DF006A0B19 /* TCPStream.m in Sources */,
2.156 + 384A72BD0FB006DF006A0B19 /* TCPWriter.m in Sources */,
2.157 + 384A72BE0FB006DF006A0B19 /* BLIPConnection.m in Sources */,
2.158 + 384A72BF0FB006DF006A0B19 /* BLIPDispatcher.m in Sources */,
2.159 + 384A72C00FB006DF006A0B19 /* BLIPMessage.m in Sources */,
2.160 + 384A72C10FB006DF006A0B19 /* BLIPRequest.m in Sources */,
2.161 + 384A72C20FB006DF006A0B19 /* BLIPProperties.m in Sources */,
2.162 + 384A72C30FB006DF006A0B19 /* BLIPReader.m in Sources */,
2.163 + 384A72C40FB006DF006A0B19 /* BLIPWriter.m in Sources */,
2.164 + 384A72C50FB006DF006A0B19 /* CollectionUtils.m in Sources */,
2.165 + 384A72C60FB006DF006A0B19 /* ExceptionUtils.m in Sources */,
2.166 + 384A72C70FB006DF006A0B19 /* Logging.m in Sources */,
2.167 + 384A72C80FB006DF006A0B19 /* Target.m in Sources */,
2.168 + 384A72C90FB006DF006A0B19 /* Test.m in Sources */,
2.169 + 384A72CA0FB006DF006A0B19 /* GTMNSData+zlib.m in Sources */,
2.170 + 384A72CB0FB006DF006A0B19 /* MYPortMapper.m in Sources */,
2.171 + 384A72CC0FB006DF006A0B19 /* PortMapperTest.m in Sources */,
2.172 + 384A72CD0FB006DF006A0B19 /* MYDNSService.m in Sources */,
2.173 + 384A72CE0FB006DF006A0B19 /* MYAddressLookup.m in Sources */,
2.174 + 384A72CF0FB006DF006A0B19 /* MYBonjourBrowser.m in Sources */,
2.175 + 384A72D00FB006DF006A0B19 /* MYBonjourService.m in Sources */,
2.176 + 384A72D10FB006DF006A0B19 /* MYBonjourQuery.m in Sources */,
2.177 + 384A72D20FB006DF006A0B19 /* MYBonjourRegistration.m in Sources */,
2.178 + 384A72D30FB006DF006A0B19 /* ConcurrentOperation.m in Sources */,
2.179 );
2.180 runOnlyForDeploymentPostprocessing = 0;
2.181 };
2.182 @@ -460,6 +576,31 @@
2.183 };
2.184 name = Release;
2.185 };
2.186 + 384A72AA0FB0050C006A0B19 /* Debug */ = {
2.187 + isa = XCBuildConfiguration;
2.188 + buildSettings = {
2.189 + ALWAYS_SEARCH_USER_PATHS = NO;
2.190 + COPY_PHASE_STRIP = NO;
2.191 + GCC_DYNAMIC_NO_PIC = NO;
2.192 + GCC_OPTIMIZATION_LEVEL = 0;
2.193 + PREBINDING = NO;
2.194 + PRODUCT_NAME = MYNetwork;
2.195 + };
2.196 + name = Debug;
2.197 + };
2.198 + 384A72AB0FB0050C006A0B19 /* Release */ = {
2.199 + isa = XCBuildConfiguration;
2.200 + buildSettings = {
2.201 + ALWAYS_SEARCH_USER_PATHS = NO;
2.202 + COPY_PHASE_STRIP = YES;
2.203 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
2.204 + GCC_ENABLE_FIX_AND_CONTINUE = NO;
2.205 + PREBINDING = NO;
2.206 + PRODUCT_NAME = MYNetwork;
2.207 + ZERO_LINK = NO;
2.208 + };
2.209 + name = Release;
2.210 + };
2.211 C01FCF4F08A954540054247B /* Debug */ = {
2.212 isa = XCBuildConfiguration;
2.213 baseConfigurationReference = 278C1B330F9F86A100954AE1 /* MYUtilities_Debug.xcconfig */;
2.214 @@ -494,6 +635,15 @@
2.215 defaultConfigurationIsVisible = 0;
2.216 defaultConfigurationName = Release;
2.217 };
2.218 + 384A72B40FB00534006A0B19 /* Build configuration list for PBXNativeTarget "MYNetwork" */ = {
2.219 + isa = XCConfigurationList;
2.220 + buildConfigurations = (
2.221 + 384A72AA0FB0050C006A0B19 /* Debug */,
2.222 + 384A72AB0FB0050C006A0B19 /* Release */,
2.223 + );
2.224 + defaultConfigurationIsVisible = 0;
2.225 + defaultConfigurationName = Release;
2.226 + };
2.227 C01FCF4E08A954540054247B /* Build configuration list for PBXProject "MYNetwork-iPhone" */ = {
2.228 isa = XCConfigurationList;
2.229 buildConfigurations = (
3.1 --- a/TCP/TCPListener.h Sun May 10 19:00:50 2009 -0700
3.2 +++ b/TCP/TCPListener.h Sun May 10 19:05:52 2009 -0700
3.3 @@ -32,6 +32,7 @@
3.4 CFSocketRef _ipv6socket;
3.5
3.6 NSString *_bonjourServiceType, *_bonjourServiceName;
3.7 + NSNetServiceOptions _bonjourServiceOptions;
3.8 NSNetService *_netService;
3.9 NSDictionary *_bonjourTXTRecord;
3.10 BOOL _bonjourPublished;
3.11 @@ -88,6 +89,9 @@
3.12 automatically generated if Bonjour is enabled (by setting -bonjourServiceType). */
3.13 @property (copy) NSString *bonjourServiceName;
3.14
3.15 +/** Options to use when publishing the Bonjour service. */
3.16 +@property NSNetServiceOptions bonjourServiceOptions;
3.17 +
3.18 /** The dictionary form of the Bonjour TXT record: metadata about the service that can be browsed
3.19 by peers. Changes to this dictionary will be pushed in near-real-time to interested peers. */
3.20 @property (copy) NSDictionary *bonjourTXTRecord;
4.1 --- a/TCP/TCPListener.m Sun May 10 19:00:50 2009 -0700
4.2 +++ b/TCP/TCPListener.m Sun May 10 19:05:52 2009 -0700
4.3 @@ -53,7 +53,7 @@
4.4
4.5
4.6 @synthesize delegate=_delegate, port=_port, useIPv6=_useIPv6,
4.7 - bonjourServiceType=_bonjourServiceType,
4.8 + bonjourServiceType=_bonjourServiceType, bonjourServiceOptions=_bonjourServiceOptions,
4.9 bonjourPublished=_bonjourPublished, bonjourError=_bonjourError,
4.10 bonjourService=_netService,
4.11 pickAvailablePort=_pickAvailablePort;
4.12 @@ -261,7 +261,7 @@
4.13 [_netService setDelegate:self];
4.14 if( _bonjourTXTRecord )
4.15 [self _updateTXTRecord];
4.16 - [_netService publish];
4.17 + [_netService publishWithOptions: _bonjourServiceOptions];
4.18 } else {
4.19 self.bonjourError = -1;
4.20 Warn(@"%@: Failed to create NSNetService",self);