* Added alternatives to AddInterface()/RemoveInterface() that take the name
of the interface instead. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39591 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -22,8 +22,10 @@ public:
|
|||||||
status_t GetNextInterface(uint32* cookie,
|
status_t GetNextInterface(uint32* cookie,
|
||||||
BNetworkInterface& interface) const;
|
BNetworkInterface& interface) const;
|
||||||
|
|
||||||
|
status_t AddInterface(const char* name);
|
||||||
status_t AddInterface(
|
status_t AddInterface(
|
||||||
const BNetworkInterface& interface);
|
const BNetworkInterface& interface);
|
||||||
|
status_t RemoveInterface(const char* name);
|
||||||
status_t RemoveInterface(
|
status_t RemoveInterface(
|
||||||
const BNetworkInterface& interface);
|
const BNetworkInterface& interface);
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ BNetworkRoster::GetNextInterface(uint32* cookie,
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
BNetworkRoster::AddInterface(const BNetworkInterface& interface)
|
BNetworkRoster::AddInterface(const char* name)
|
||||||
{
|
{
|
||||||
int socket = ::socket(AF_INET, SOCK_DGRAM, 0);
|
int socket = ::socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
if (socket < 0)
|
if (socket < 0)
|
||||||
@@ -114,7 +114,7 @@ BNetworkRoster::AddInterface(const BNetworkInterface& interface)
|
|||||||
|
|
||||||
ifaliasreq request;
|
ifaliasreq request;
|
||||||
memset(&request, 0, sizeof(ifaliasreq));
|
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)
|
if (ioctl(socket, SIOCAIFADDR, &request, sizeof(request)) != 0)
|
||||||
return errno;
|
return errno;
|
||||||
@@ -124,14 +124,21 @@ BNetworkRoster::AddInterface(const BNetworkInterface& interface)
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
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);
|
int socket = ::socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
if (socket < 0)
|
if (socket < 0)
|
||||||
return errno;
|
return errno;
|
||||||
|
|
||||||
ifreq request;
|
ifreq request;
|
||||||
strlcpy(request.ifr_name, interface.Name(), IF_NAMESIZE);
|
strlcpy(request.ifr_name, name, IF_NAMESIZE);
|
||||||
|
|
||||||
request.ifr_addr.sa_family = AF_UNSPEC;
|
request.ifr_addr.sa_family = AF_UNSPEC;
|
||||||
|
|
||||||
@@ -142,6 +149,13 @@ BNetworkRoster::RemoveInterface(const BNetworkInterface& interface)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
BNetworkRoster::RemoveInterface(const BNetworkInterface& interface)
|
||||||
|
{
|
||||||
|
return RemoveInterface(interface.Name());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
BNetworkRoster::StartWatching(const BMessenger& target, uint32 eventMask)
|
BNetworkRoster::StartWatching(const BMessenger& target, uint32 eventMask)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user