Author: axeld Date: 2010-11-23 22:01:19 +0100 (Tue, 23 Nov 2010) New Revision: 39591 Changeset: http://dev.haiku-os.org/changeset/39591 Modified: haiku/trunk/headers/os/net/NetworkRoster.h haiku/trunk/src/kits/network/libnetapi/NetworkRoster.cpp Log: * Added alternatives to AddInterface()/RemoveInterface() that take the name of the interface instead. Modified: haiku/trunk/headers/os/net/NetworkRoster.h =================================================================== --- haiku/trunk/headers/os/net/NetworkRoster.h 2010-11-23 21:00:05 UTC (rev 39590) +++ haiku/trunk/headers/os/net/NetworkRoster.h 2010-11-23 21:01:19 UTC (rev 39591) @@ -22,8 +22,10 @@ status_t GetNextInterface(uint32* cookie, BNetworkInterface& interface) const; + status_t AddInterface(const char* name); status_t AddInterface( const BNetworkInterface& interface); + status_t RemoveInterface(const char* name); status_t RemoveInterface( const BNetworkInterface& interface); Modified: haiku/trunk/src/kits/network/libnetapi/NetworkRoster.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/NetworkRoster.cpp 2010-11-23 21:00:05 UTC (rev 39590) +++ haiku/trunk/src/kits/network/libnetapi/NetworkRoster.cpp 2010-11-23 21:01:19 UTC (rev 39591) @@ -106,7 +106,7 @@ status_t -BNetworkRoster::AddInterface(const BNetworkInterface& interface) +BNetworkRoster::AddInterface(const char* name) { int socket = ::socket(AF_INET, SOCK_DGRAM, 0); if (socket < 0) @@ -114,7 +114,7 @@ ifaliasreq request; memset(&request, 0, sizeof(ifaliasreq)); - strlcpy(request.ifra_name, interface.Name(), IF_NAMESIZE); + strlcpy(request.ifra_name, name, IF_NAMESIZE); if (ioctl(socket, SIOCAIFADDR, &request, sizeof(request)) != 0) return errno; @@ -124,14 +124,21 @@ status_t -BNetworkRoster::RemoveInterface(const BNetworkInterface& interface) +BNetworkRoster::AddInterface(const BNetworkInterface& interface) { + return AddInterface(interface.Name()); +} + + +status_t +BNetworkRoster::RemoveInterface(const char* name) +{ int socket = ::socket(AF_INET, SOCK_DGRAM, 0); if (socket < 0) return errno; ifreq request; - strlcpy(request.ifr_name, interface.Name(), IF_NAMESIZE); + strlcpy(request.ifr_name, name, IF_NAMESIZE); request.ifr_addr.sa_family = AF_UNSPEC; @@ -143,6 +150,13 @@ status_t +BNetworkRoster::RemoveInterface(const BNetworkInterface& interface) +{ + return RemoveInterface(interface.Name()); +} + + +status_t BNetworkRoster::StartWatching(const BMessenger& target, uint32 eventMask) { return start_watching_network(eventMask, target);