diff --git a/ChangeLog b/ChangeLog index c412e9959..6425afd53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-11-20 Richard Frith-Macdonald + + * Headers/Foundation/NSConnection.h: New ivars + * Source/NSConnection.m: Add diuagnostic information and implement + private mechanism for keepalive (for mswindows, where the NSMessagePort + implementation doesn;t know if the remote end has gone away until it + attempts to send to it). + * Tools/gdnc..m: Use private keepalive mechanism. + 2008-11-19 Richard Frith-Macdonald * Source/NSData.m: Fix bug #24883 diff --git a/Tools/gdnc.m b/Tools/gdnc.m index 7e4accfc3..a36c8af08 100644 --- a/Tools/gdnc.m +++ b/Tools/gdnc.m @@ -173,6 +173,9 @@ ihandler(int sig) } @end +@interface NSConnection (Private) +- (void) _enableKeepalive; +@end @interface GDNCNotification : NSObject { @@ -605,7 +608,13 @@ ihandler(int sig) name: NSConnectionDidDieNotification object: newConn]; [newConn setDelegate: self]; - [newConn _enableKeepalive]; + /* For ms-windoews we need to enable keepalive on the connection so that + * we will find out if the remote end goes away. + */ + if ([newConn respondsToSelector: @selector(_enableKeepalive)]) + { + [newConn _enableKeepalive]; + } /* * Create a new map table entry for this connection with a value that * is a table (normally with a single entry) containing registered