Giter Site home page Giter Site logo

snej / mynetwork Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 9.0 1.07 MB

Mooseyard Networking library: Cocoa utilities, including a generic TCP server/client, plus the reference implementation of the message-oriented BLIP protocol. (This is a mirror of the Mercurial repository at https://bitbucket.org/snej/mynetwork)

Objective-C 92.00% Python 7.83% C 0.16%

mynetwork's People

Contributors

snej avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mynetwork's Issues

BLIP based communication doesn't work on Yosemite DP3

I have absolutely no idea why (and I'm hoping you can tell me where to start looking) but since Yosemite DP3, the communication between iOS and Mac (didn't try any other combination) using BLIP networking doesn't work at all.

The service is launched and visible for the other side (in that case that's an iOS device trying to send something to the Mac), but as soon as the iOS device tries to open the connection, it locks up and on the Mac absolutely nothing happens - at least with respect to the delegate methods of BLIPConnection and TCPListener.

Hang in _openProtocol::: when launching listener twice

When I'm lauching a listener, shut it down and launch it again, the call to [listener open] never returns. It seems deadlocked with thread 6.

Complete backtraces of all threads below

Code to startup and shutdown

(void)startup
{
if (browser != nil)
return;

browser = [[MYBonjourBrowser alloc] initWithServiceType:@"_rtxxxdata._tcp."];

registration = [[browser myRegistration] retain];

listener = [[BLIPListener alloc] initWithPort:12345];
[listener setPickAvailablePort:YES];

[browser start];
[listener setDelegate:self];
[listener open];

[registration setPort:[listener port]];
[registration start];
}

(void)shutdown
{
[browser stop];
[registration stop];
[listener close];
[listener setDelegate:nil];

[browser release], browser = nil;
[registration release], registration = nil;
[listener release], listener = nil;
}
Thread 1, Queue : com.apple.main-thread
#0 0x3bddea7a in OSSpinLockLock$VARIANT$mp ()
#1 0x33a7baca in CFSocketCreateWithNative ()
#2 0x33ab6630 in CFSocketCreate ()
#3 0x0027a7bc in -[TCPListener openProtocol:address:error:] at /Users/markus/MyApp/SOFramework/MYNetwork/TCP/TCPListener.m:126
#4 0x0027ac66 in -[TCPListener open:] at /Users/markus/MyApp/SOFramework/MYNetwork/TCP/TCPListener.m:169
#5 0x0027b226 in -[TCPListener open] at /Users/markus/MyApp/SOFramework/MYNetwork/TCP/TCPListener.m:216
#6 0x00286e28 in -[RubiNetwork startup] at /Users/markus/MyApp/rubiTrack/src/core/RubiNetwork.m:68
#7 0x002880cc in -[RTGNetworkViewController startupNetwork:] at /Users/markus/Projects/rubiTrack-to-Go/src/ui/RTGNetworkViewController.m:83
#8 0x359d10c4 in -UIApplication sendAction:to:from:forEvent:
#9 0x359d1076 in -UIApplication sendAction:toTarget:fromSender:forEvent:
#10 0x359d1054 in -UIControl sendAction:to:forEvent:
#11 0x359d090a in -UIControl(Internal) _sendActionsForEvents:withEvent:
#12 0x359d0e00 in -UIControl touchesEnded:withEvent:
#13 0x358f95f0 in -UIWindow _sendTouchesForEvent:
#14 0x358e6800 in -UIApplication sendEvent:
#15 0x358e611a in _UIApplicationHandleEvent ()
#16 0x375d85a2 in _PurpleEventCallback ()
#17 0x375d81d2 in PurpleEventCallback ()
#18 0x33ab3172 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION_ ()
#19 0x33ab3116 in __CFRunLoopDoSource1 ()
#20 0x33ab1f98 in __CFRunLoopRun ()
#21 0x33a24ebc in CFRunLoopRunSpecific ()
#22 0x33a24d48 in CFRunLoopRunInMode ()
#23 0x375d72ea in GSEventRunModal ()
#24 0x3593a300 in UIApplicationMain ()
#25 0x000475a6 in main at /Users/markus/Projects/rubiTrack-to-Go/src/app/main.m:16
#26 0x3bdaeb20 in start ()

Thread 3, Queue : com.apple.libdispatch-manager
#0 0x3be65648 in kevent64 ()
#1 0x3bd95978 in _dispatch_mgr_invoke ()
#2 0x3bd95658 in _dispatch_mgr_thread$VARIANT$mp ()

Thread 5 WebThread, Queue : (null)
#0 0x3be64eb4 in mach_msg_trap ()
#1 0x3be6504c in mach_msg ()
#2 0x33ab3044 in __CFRunLoopServiceMachPort ()
#3 0x33ab1da2 in __CFRunLoopRun ()
#4 0x33a24ebc in CFRunLoopRunSpecific ()
#5 0x33a24d48 in CFRunLoopRunInMode ()
#6 0x39a0a504 in RunWebThread(void*) ()
#7 0x3bdce310 in _pthread_start ()
#8 0x3bdce1d8 in thread_start ()

Thread 6 com.apple.CFSocket.private, Queue : (null)
#0 0x3be64fbc in syscall_thread_switch ()
#1 0x3bddea92 in OSSpinLockLock$VARIANT$mp ()
#2 0x33a7fba8 in CFSocketInvalidate ()
#3 0x0028587a in -[MYDNSConnection close] at /Users/markus/MyApp/SOFramework/MYNetwork/PortMapper/MYDNSService.m:272
#4 0x00285458 in -[MYDNSConnection dealloc] at /Users/markus/MyApp/SOFramework/MYNetwork/PortMapper/MYDNSService.m:223
#5 0x33a1f310 in CFRelease ()
#6 0x33a7fd8c in CFSocketInvalidate ()
#7 0x33ab70c6 in __CFSocketManager ()
#8 0x3bdce310 in _pthread_start ()

deprecated TCP constants in OS X 10.10

kTCPPropertySSLAllowsAnyRoot (used in TCPEndPoint.m) and kCFStreamPropertySSLPeerCertificates (used in TCPStream.m) have been deprecated in OSX 10. Can you suggest alternatives/replacements?

TCPStream crash on iOS ARM64 device

Using on iPhone 5s for the first time, crashes in TCPStream.m in TCPStream -disconnect at line 122. Any idea what is going on?

- (void) disconnect
{
    if( _stream ) {
        LogTo(TCP,@"Disconnect %@",self);
        _stream.delegate = nil;
        [_stream close];
        _stream = nil;
    }
    if( _conn ) {
        [_conn _streamDisconnected: self];
        _conn = nil;  <----------- crashes here
    }
}
Thread 1, Queue : com.apple.main-thread
#0  0x00000001985b5d6c in objc_object::release() ()
#1  0x00000001003700fc in -[TCPStream disconnect] at /Users/markus/Projects/SOFramework/MYNetwork/TCP/TCPStream.m:122
#2  0x000000010035e464 in -[BLIPWriter disconnect] at /Users/markus/Projects/SOFramework/MYNetwork/BLIP/BLIPWriter.m:32
#3  0x000000010036ae38 in -[TCPConnection _streamCanClose:] at /Users/markus/Projects/SOFramework/MYNetwork/TCP/TCPConnection.m:413
#4  0x000000010037025c in -[TCPStream close] at /Users/markus/Projects/SOFramework/MYNetwork/TCP/TCPStream.m:137
#5  0x0000000100370e18 in -[TCPStream stream:handleEvent:] at /Users/markus/Projects/SOFramework/MYNetwork/TCP/TCPStream.m:235
#6  0x000000018c5fc62c in _signalEventSync ()
#7  0x000000018c608754 in _cfstream_solo_signalEventSync ()
#8  0x000000018c5fc184 in _CFStreamSignalEvent ()
#9  0x000000018c1ce8f4 in CoreReadStreamCFStreamSupport::coreStreamReadEvent(__CoreReadStream*, unsigned long) ()
#10 0x000000018c1ce85c in CoreReadStreamClient::coreStreamEventsAvailable(unsigned long) ()
#11 0x000000018c2aca9c in CoreStreamBase::_callClientNow(CoreStreamClient*) ()
#12 0x000000018c1ce5d8 in CoreStreamBase::_streamSetEventAndScheduleDelivery(unsigned long, unsigned char) ()
#13 0x000000018c1ce370 in SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) ()
#14 0x000000018c1cdbec in SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*) ()
#15 0x000000018c1cdadc in SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*) ()
#16 0x000000018c64a26c in __CFSocketPerformV0 ()
#17 0x000000018c64777c in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#18 0x000000018c646ad8 in __CFRunLoopDoSources0 ()
#19 0x000000018c644d70 in __CFRunLoopRun ()
#20 0x000000018c585b78 in CFRunLoopRunSpecific ()
#21 0x0000000191fa7830 in GSEventRunModal ()
#22 0x000000018f5c305c in UIApplicationMain ()
#23 0x00000001000cd304 in main at /Users/markus/Projects/rubiTrack-to-Go/src/app/main.m:44
#24 0x0000000198b8baa0 in start ()
Thread 2, Queue : com.apple.libdispatch-manager
#0  0x0000000198c6dac8 in kevent64 ()
#1  0x0000000198b793d8 in _dispatch_mgr_invoke ()
#2  0x0000000198b71d88 in _dispatch_mgr_thread ()
Thread 5, Queue : (null)
#0  0x0000000198d057a4 in start_wqthread ()
Thread 6 com.apple.CFSocket.private, Queue : (null)
#0  0x0000000198c8676c in select$DARWIN_EXTSN ()
#1  0x000000018c64bc2c in __CFSocketManager ()
#2  0x0000000198d081b0 in _pthread_body ()
#3  0x0000000198d08108 in _pthread_start ()
#4  0x0000000198d057b0 in thread_start ()
Thread 7 com.apple.NSURLConnectionLoader, Queue : (null)
#0  0x0000000198c6dcc0 in mach_msg_trap ()
#1  0x0000000198c6db2c in mach_msg ()
#2  0x000000018c646cac in __CFRunLoopServiceMachPort ()
#3  0x000000018c644e3c in __CFRunLoopRun ()
#4  0x000000018c585b78 in CFRunLoopRunSpecific ()
#5  0x000000018d16ea1c in +[NSURLConnection(Loader) _resourceLoadLoop:] ()
#6  0x000000018d1fc990 in __NSThread__main__ ()
#7  0x0000000198d081b0 in _pthread_body ()
#8  0x0000000198d08108 in _pthread_start ()
Thread 8, Queue : UIDocument File Access
#0  0x0000000198c6dcfc in semaphore_wait_trap ()
#1  0x0000000198b77c08 in _dispatch_semaphore_wait_slow ()
#2  0x000000018d299674 in -[NSFileCoordinator(NSPrivate) _blockOnAccessClaim:] ()
#3  0x000000018d29a1c0 in -[NSFileCoordinator(NSPrivate) _coordinateWritingItemAtURL:options:error:byAccessor:] ()
#4  0x000000018d2984ec in -[NSFileCoordinator coordinateWritingItemAtURL:options:error:byAccessor:] ()
#5  0x000000018fa7f90c in -[UIDocument _coordinateWritingItemAtURL:error:byAccessor:] ()
#6  0x000000018fa801a0 in __59-[UIDocument saveToURL:forSaveOperation:completionHandler:]_block_invoke ()
#7  0x0000000198b7043c in _dispatch_call_block_and_release ()
#8  0x0000000198b703fc in _dispatch_client_callout ()
#9  0x0000000198b766f0 in _dispatch_queue_drain ()
#10 0x0000000198b72890 in _dispatch_queue_invoke ()
#11 0x0000000198b773a4 in _dispatch_root_queue_drain ()
#12 0x0000000198b77634 in _dispatch_worker_thread2 ()
#13 0x0000000198d05918 in _pthread_wqthread ()
Thread 9, Queue : (null)
#0  0x0000000198c86e74 in __workq_kernreturn ()
#1  0x0000000198d0592c in _pthread_wqthread ()
Thread 11, Queue : com.apple.root.default-priority
#0  0x0000000198c6dcfc in semaphore_wait_trap ()
#1  0x0000000198b77c08 in _dispatch_semaphore_wait_slow ()
#2  0x0000000198d24700 in xpc_connection_send_message_with_reply_sync ()
#3  0x000000018f52845c in _reach_server_target_remove ()
#4  0x000000018f5283a0 in __SCNetworkReachabilityServer_targetRemove ()
#5  0x000000018f506c18 in __SCNetworkReachabilityDeallocate ()
#6  0x000000018c581ee4 in CFRelease ()
#7  0x0000000198b703fc in _dispatch_client_callout ()
#8  0x0000000198b773f8 in _dispatch_root_queue_drain ()
#9  0x0000000198b77634 in _dispatch_worker_thread2 ()
#10 0x0000000198d05918 in _pthread_wqthread ()
#11 0x0000000198d057a8 in start_wqthread ()
Thread 12, Queue : (null)
#0  0x0000000198c86e74 in __workq_kernreturn ()

Memory trasher when closing down MYNetwork

I get a 100% repeatable crash with malloc guard turned on, I believe I know what happens but I really really would appreciate if Jens could take a look at this an suggest a fix. This happens in a release app and it's urgent.

First my network startup and shutdown code, so you know the sequence of things:

- (void)startup
{
    if (browser != nil)
        return;

    browser = [[MYBonjourBrowser alloc] initWithServiceType:@"sometype"];
    [browser setUsePrivateConnection:YES];

    registration = [[browser myRegistration] retain];

    listener = [[BLIPListener alloc] initWithPort:12345];
    [listener setPickAvailablePort:YES];

    [browser start];
    [listener setDelegate:self];
    [listener open];

    [registration setPort:[listener port]];
    [registration start];
}

- (void)shutdown
{
    [browser removeObserver:self forKeyPath:@"services"];

    [self setAvailablePeers:nil];

    [connection close];
    [connection release], connection = nil;

    [listener close];
    [listener setDelegate:nil];
    [listener release], listener = nil;

    [registration stop];
    [registration release], registration = nil;

    [browser stop];
    [browser release], browser = nil;
}

In -shutdown the crash happens in the call [registration stop];. Which triggers [MYDNSService cancel] where DNSServiceRefDeallocate(_serviceRef) is called. Then setobj(&_connection, nil) is called which in turn triggers [MYDNSConnection dealloc] and [MYDNSConnect close] where eventually this is called:

DNSServiceRefDeallocate(_connectionRef);

Since _connectionRef and _serviceRef are one and the same, the second deallocation messes things up good.

I really need a fix for this and I would appreciate suggestions.

Compiler error in BLIPMessage.m on 10.7

In

  • (NSData_) nextWebSocketFrameWithMaxSize: (UInt16)maxSize moreComing: (BOOL_)outMoreComing

on line 300

the return value should be nil instead of NO. The compiler complains:

BLIPMessage.m:300:16: Implicit conversion of 'BOOL' (aka 'signed char') to 'NSData *' is disallowed with ARC

_kCFStreamPropertySSLClientSideAuthentication causes rejection for MAS app

The declaration of _kCFStreamPropertySSLClientSideAuthentication in TCPStream.m causes a review rejection for my Mac app. Has not been a problem for at least 5 months, but now it is. Grrrr

#if !TARGET_OS_IPHONE
// You can't do client-side SSL auth using CFStream without this constant,
// but it was accidentally not declared in a public header.
// Unfortunately you can't use this on iPhone without Apple rejecting your app
// for using "private API". :-(
extern const CFStringRef _kCFStreamPropertySSLClientSideAuthentication; // in CFNetwork
#endif

compression flag not properly queried

In BLIPMessage.m _receivedFrameWithFlags: body: line 365:

if( self.compressed && encodedLength>0 ) {

self.compressed refers to _flags which has not been updated with the flags passed into the method and therefore self.compressed will return NO even if the given flags suggest the body is compressed. This causes the body data to not be decompressed and confuses consumers of the message.

I'm not sure what the proper fix is since I don't quite understand the relationship between _flags and flags, but the method seems to use them in an inconsistent way throughout. It would seem _flags needs to be properly updated by the passed in flags parameter...

As a workaround (which reflects from previous revisions), one can replace line 365 with:

if( flags & kBLIP_Compressed && encodedLength>0 ) {

MYDNSConnection -open creates retain loop?

The socket context makes the CFSocket retain and release its owner, why?

CFSocketContext ctxt = { 0, (__bridge void *)(self), CFRetain, CFRelease, NULL };

there should be no reason to do that, since you're invalidating and releasing the socket on dealloc. Creating the socket using the context like:

CFSocketContext ctxt = { 0, (__bridge void *)(self), NULL, NULL, NULL };

seems to work fine. This fixes the deadlock problem I was having, but I'm unsure as to whether the retain/release socket context is on purpose.

Fix for TCPConnection/TCPStream Relationship ARC Crash

I spent some time tracking this down (since I wasn't happy with the solution other contributors had suggested (see #9 ), and I believe I understand the issue and implications.

Specifically:

  • TCPConnection adds newly open connections to an internal static array sAllConnections which is the only thing preventing ARC from deallocating the instances.
  • TCPConnection maintains a strong _reader and _writer (both TCPStream objects) which in turn also have strong reference to the connection.
  • When a TCPStream object receives an EOF it calls TCPConnection -_streamGotEOF: with self to inform its connection to disconnect. This ultimately causes the connection to call disconnect on both its _reader and _writer streams via _streamCanClose:.
  • TCPStream -disconnect calls TCPConnection -_streamDisconnected: with self to let its connection know it is closed.
  • Once both of the TCPConnection streams are closed, the connection calls _closed which removes itself from the static array sAllConnections, causing it to be deallocated.
  • At this point any subsequent calls to the TCPConnection instance are to a deallocated instance and a crash occurs.

This all manifests itself in the TCPConnection.m _streamGotEOF: method.

My fix is to strongly reference self so self is available in the current scope. This is similar to what MYDeferDealloc does in a non-ARC setting.

Proposed fix:

TCPConnection.m

- (void) _streamGotEOF: (TCPStream*)stream
{
	LogTo(TCP,@"%@ got EOF on %@",self,stream);
	[stream disconnect];
	if( _status == kTCP_Closing ) {
		// Strongly reference `self` in this scope, so when `_closed` (ultimately called by `_streamCanClose:`) removes `self` from `sAllConnections` we are not immediately deallocated (and subsequently crash when attempting to call `[self _checkIfClosed]`)
		__strong typeof(self) sSelf = self;
		[sSelf _streamCanClose: stream];
		[sSelf _checkIfClosed];
	} else {
		[self _stream: stream
			 gotError: [NSError errorWithDomain: NSPOSIXErrorDomain code: ECONNRESET userInfo: nil]];
	}
}

Returning from background crashes/deadlocks iOS device (iOS 6)

When I start a MYNetwork and subsequently stop the network service (code below) and put the iOS app into background, when I reactivate the app, MYNetwork logs a ton of warnings:

WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!

It doesn't seem to matter how long the app was suspended (I tried 1 second, 10 seconds, 20 seconds), when I return I get precisely 1002 such messages logged. After that, I get one new warning logged every second and the application remains unresponsive/deadlocked.

It actually doesn't matter if I shut down the network before the application is suspended, when it returns it bombs/deadlocks. Unfortunately I can't get Xcode to show a call stack with more than 2 lines when debugging on the device, so I can't provide meaningful call stacks.

On the simulator returning from the background works fine.

- (void)startup
{
    if (browser != nil)
        return;

    browser = [[MYBonjourBrowser alloc] initWithServiceType:RUBITRACK_SYNCSERVICE__BONJOUR_SERVICE_TYPE];

    registration = [[browser myRegistration] retain];

    listener = [[BLIPListener alloc] initWithPort:12345];
    [listener setPickAvailablePort:YES];

    [browser addObserver:self forKeyPath:@"services" options:NSKeyValueObservingOptionNew context:kRubiNetworkBrowserServicesChangeContext];

    [browser start];
    [listener setDelegate:self];
    [listener open];

    [registration setPort:[listener port]];
    [registration start];
}

- (void)shutdown
{
    [browser removeObserver:self forKeyPath:@"services"];

    [self setAvailablePeers:nil];

    [connection close];
    [connection release], connection = nil;

    [listener close];
    [listener setDelegate:nil];
    [listener release], listener = nil;

    [registration stop];
    [registration release], registration = nil;

    [browser stop];
    [browser release], browser = nil;

    [exchangableEquipment release], exchangableEquipment = nil;
    [exchangableActivities release], exchangableActivities = nil;
    [peerObjectStatusInformation release], peerObjectStatusInformation = nil;
    [peerExchangableObjects release], peerExchangableObjects = nil;
}

Here's on example log

2013-07-03 19:51:50.316 rubiTrack to Go[25281:907] RubiNetwork: Listening for connection requests: BLIPListener[port 12345]
2013-07-03 19:51:59.515 rubiTrack to Go[25281:907] RubiNetwork: Listener closed BLIPListener[port 12345]
19:52:11.478|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65563 !!!
19:52:11.482|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.483|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.485|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.487|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.489|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.490|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.491|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.493|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.494|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.495|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.495|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.496|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.496|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.497|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.497|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.498|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.499|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
...
[1002 in total]
...
19:52:11.968|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.968|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.969|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.969|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.970|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.970|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.971|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.971|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.972|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.972|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.973|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.973|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.974|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:12.975|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
2013-07-03 19:52:12.977 rubiTrack to Go[25281:907] RubiNetwork: Listening for connection requests: BLIPListener[port 12345]
19:52:13.982|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:14.984|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:15.986|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:16.988|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:17.990|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:18.992|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:19.994|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:20.996|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:21.998|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:23.004|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:24.017|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.