/* -*- Objc -*- */ /* * $Id: NetConnection.m,v 1.1 2003/05/26 10:21:50 thunder Exp $ * * Copyright (C) 2003 Free Software Foundation, Inc. * * This file is part of GNU Hégémonie. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include "Network/NetConnection.h" @interface NSConnection (Hack) - (void) handlePortMessage: (NSPortMessage*)msg; @end @interface NSPort (Hack) - (NSHost*) host; - (gsu16) portNumber; @end @implementation NetConnection static NetConnection *_currentConnection; + (NetConnection *) currentConnection { return _currentConnection; } - (void) handlePortMessage: (NSPortMessage*)msg { _currentConnection = (NetConnection *) [NetConnection connectionWithReceivePort: [msg receivePort] sendPort: [msg sendPort]]; [super handlePortMessage: msg]; _currentConnection = nil; } - (void) debug { NSPort *receivePort = [self receivePort]; NSPort *sendPort = [self sendPort]; printf ("%15s:%5d receive port, %15s:%5d send port\n", [[(NSHost *)[receivePort host] address] cString], [receivePort portNumber], [[(NSHost *)[sendPort host] address]cString], [sendPort portNumber]); } + (void) debug { int i; printf ("cur: "); if ([NetConnection currentConnection]) [[NetConnection currentConnection] debug]; else putchar ('\n'); printf ("def: "); if ([NetConnection defaultConnection]) [(NetConnection *)[NetConnection defaultConnection] debug]; else putchar ('\n'); NSArray *allConnections = [NSConnection allConnections]; for (i = 0; i < [allConnections count]; i++) { printf ("%3d: ", i); [(NetConnection *)[allConnections objectAtIndex: i] debug]; } } @end