* Cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29384 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-03-03 10:39:55 +00:00
parent 61252f516c
commit b11680b741
2 changed files with 90 additions and 84 deletions
+10 -2
View File
@@ -40,6 +40,10 @@ struct interface_protocol : net_datalink_protocol {
};
/*! A service thread for each device interface. It just reads as many packets
as availabe, deframes them, and puts them into the receive queue of the
device interface.
*/
static status_t
device_reader_thread(void* _interface)
{
@@ -108,6 +112,7 @@ interface_address(net_interface* interface, int32 option)
}
/*! Removes the default routes as set by add_default_routes() again. */
static void
remove_default_routes(net_interface_private* interface, int32 option)
{
@@ -131,6 +136,9 @@ remove_default_routes(net_interface_private* interface, int32 option)
}
/*! Adds the default routes that every interface needs, ie. the local host
route, and one for the subnet (if set).
*/
static void
add_default_routes(net_interface_private* interface, int32 option)
{
@@ -450,7 +458,7 @@ datalink_is_local_address(net_domain* _domain, const struct sockaddr* address,
}
net_interface*
net_interface*
datalink_get_interface_with_address(net_domain* _domain,
const sockaddr* address)
{
@@ -480,7 +488,7 @@ datalink_get_interface_with_address(net_domain* _domain,
}
net_interface*
net_interface*
datalink_get_interface(net_domain* domain, uint32 index)
{
if (index == 0)
+80 -82
View File
@@ -56,13 +56,13 @@ net_route_private::~net_route_private()
#if 0
static void
dump_routes(net_domain_private *domain)
dump_routes(net_domain_private* domain)
{
RouteList::Iterator iterator = domain->routes.GetIterator();
uint32 count = 1;
while (iterator.HasNext()) {
net_route_private *route = iterator.Next();
net_route_private* route = iterator.Next();
dprintf(" [%lu] dest %s, mask %s, gw %s, flags %lx\n", count++,
AddressString(domain, route->destination ? route->destination : NULL).Data(),
@@ -75,7 +75,7 @@ dump_routes(net_domain_private *domain)
static status_t
user_copy_address(const sockaddr *from, sockaddr **to)
user_copy_address(const sockaddr* from, sockaddr** to)
{
if (from == NULL) {
*to = NULL;
@@ -86,7 +86,7 @@ user_copy_address(const sockaddr *from, sockaddr **to)
if (user_memcpy(&address, from, sizeof(struct sockaddr)) < B_OK)
return B_BAD_ADDRESS;
*to = (sockaddr *)malloc(address.sa_len);
*to = (sockaddr*)malloc(address.sa_len);
if (*to == NULL)
return B_NO_MEMORY;
@@ -101,7 +101,7 @@ user_copy_address(const sockaddr *from, sockaddr **to)
static status_t
user_copy_address(const sockaddr *from, sockaddr_storage *to)
user_copy_address(const sockaddr* from, sockaddr_storage* to)
{
if (from == NULL)
return B_BAD_ADDRESS;
@@ -120,14 +120,14 @@ user_copy_address(const sockaddr *from, sockaddr_storage *to)
}
static net_route_private *
find_route(struct net_domain *_domain, const net_route *description)
static net_route_private*
find_route(struct net_domain* _domain, const net_route* description)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
RouteList::Iterator iterator = domain->routes.GetIterator();
while (iterator.HasNext()) {
net_route_private *route = iterator.Next();
net_route_private* route = iterator.Next();
if ((route->flags & RTF_DEFAULT) != 0
&& (description->flags & RTF_DEFAULT) != 0) {
@@ -154,15 +154,15 @@ find_route(struct net_domain *_domain, const net_route *description)
}
static net_route_private *
find_route(net_domain *_domain, const sockaddr *address)
static net_route_private*
find_route(net_domain* _domain, const sockaddr* address)
{
net_domain_private *domain = (net_domain_private *)_domain;
net_domain_private* domain = (net_domain_private*)_domain;
// find last matching route
RouteList::Iterator iterator = domain->routes.GetIterator();
net_route_private *candidate = NULL;
net_route_private* candidate = NULL;
TRACE(("test address %s for routes...\n",
AddressString(domain, address).Data()));
@@ -170,7 +170,7 @@ find_route(net_domain *_domain, const sockaddr *address)
// TODO: alternate equal default routes
while (iterator.HasNext()) {
net_route_private *route = iterator.Next();
net_route_private* route = iterator.Next();
if (route->mask) {
sockaddr maskedAddress;
@@ -204,9 +204,9 @@ find_route(net_domain *_domain, const sockaddr *address)
static void
put_route_internal(struct net_domain_private *domain, net_route *_route)
put_route_internal(struct net_domain_private* domain, net_route* _route)
{
net_route_private *route = (net_route_private *)_route;
net_route_private* route = (net_route_private*)_route;
if (route == NULL || atomic_add(&route->ref_count, -1) != 1)
return;
@@ -217,11 +217,11 @@ put_route_internal(struct net_domain_private *domain, net_route *_route)
}
static struct net_route *
get_route_internal(struct net_domain_private *domain,
const struct sockaddr *address)
static struct net_route*
get_route_internal(struct net_domain_private* domain,
const struct sockaddr* address)
{
net_route_private *route = NULL;
net_route_private* route = NULL;
if (address->sa_family == AF_LINK) {
// special address to find an interface directly
@@ -254,12 +254,12 @@ get_route_internal(struct net_domain_private *domain,
static void
update_route_infos(struct net_domain_private *domain)
update_route_infos(struct net_domain_private* domain)
{
RouteInfoList::Iterator iterator = domain->route_infos.GetIterator();
while (iterator.HasNext()) {
net_route_info *info = iterator.Next();
net_route_info* info = iterator.Next();
put_route_internal(domain, info->route);
info->route = get_route_internal(domain, &info->address);
@@ -267,21 +267,21 @@ update_route_infos(struct net_domain_private *domain)
}
static sockaddr *
copy_address(UserBuffer &buffer, sockaddr *address)
static sockaddr*
copy_address(UserBuffer& buffer, sockaddr* address)
{
if (address == NULL)
return NULL;
return (sockaddr *)buffer.Copy(address, address->sa_len);
return (sockaddr*)buffer.Copy(address, address->sa_len);
}
static status_t
fill_route_entry(route_entry *target, void *_buffer, size_t bufferSize,
net_route *route)
fill_route_entry(route_entry* target, void* _buffer, size_t bufferSize,
net_route* route)
{
UserBuffer buffer(((uint8 *)_buffer) + sizeof(route_entry),
UserBuffer buffer(((uint8*)_buffer) + sizeof(route_entry),
bufferSize - sizeof(route_entry));
target->destination = copy_address(buffer, route->destination);
@@ -298,19 +298,18 @@ fill_route_entry(route_entry *target, void *_buffer, size_t bufferSize,
// #pragma mark - exported functions
/*!
Determines the size of a buffer large enough to contain the whole
/*! Determines the size of a buffer large enough to contain the whole
routing table.
*/
uint32
route_table_size(net_domain_private *domain)
route_table_size(net_domain_private* domain)
{
MutexLocker locker(domain->lock);
uint32 size = 0;
RouteList::Iterator iterator = domain->routes.GetIterator();
while (iterator.HasNext()) {
net_route_private *route = iterator.Next();
net_route_private* route = iterator.Next();
size += IF_NAMESIZE + sizeof(route_entry);
if (route->destination)
@@ -325,13 +324,12 @@ route_table_size(net_domain_private *domain)
}
/*!
Dumps a list of all routes into the supplied userland buffer.
/*! Dumps a list of all routes into the supplied userland buffer.
If the routes don't fit into the buffer, an error (\c ENOBUFS) is
returned.
*/
status_t
list_routes(net_domain_private *domain, void *buffer, size_t size)
list_routes(net_domain_private* domain, void* buffer, size_t size)
{
RouteList::Iterator iterator = domain->routes.GetIterator();
size_t spaceLeft = size;
@@ -342,27 +340,27 @@ list_routes(net_domain_private *domain, void *buffer, size_t size)
zeros.sa_len = sizeof(sockaddr);
while (iterator.HasNext()) {
net_route *route = iterator.Next();
net_route* route = iterator.Next();
size = IF_NAMESIZE + sizeof(route_entry);
sockaddr *destination = NULL;
sockaddr *mask = NULL;
sockaddr *gateway = NULL;
uint8 *next = (uint8 *)buffer + size;
sockaddr* destination = NULL;
sockaddr* mask = NULL;
sockaddr* gateway = NULL;
uint8* next = (uint8*)buffer + size;
if (route->destination != NULL) {
destination = (sockaddr *)next;
destination = (sockaddr*)next;
next += route->destination->sa_len;
size += route->destination->sa_len;
}
if (route->mask != NULL) {
mask = (sockaddr *)next;
mask = (sockaddr*)next;
next += route->mask->sa_len;
size += route->mask->sa_len;
}
if (route->gateway != NULL) {
gateway = (sockaddr *)next;
gateway = (sockaddr*)next;
next += route->gateway->sa_len;
size += route->gateway->sa_len;
}
@@ -389,7 +387,7 @@ list_routes(net_domain_private *domain, void *buffer, size_t size)
route->gateway, route->gateway->sa_len) < B_OK))
return B_BAD_ADDRESS;
buffer = (void *)next;
buffer = (void*)next;
spaceLeft -= size;
}
@@ -398,10 +396,10 @@ list_routes(net_domain_private *domain, void *buffer, size_t size)
status_t
control_routes(struct net_interface *interface, int32 option, void *argument,
control_routes(struct net_interface* interface, int32 option, void* argument,
size_t length)
{
net_domain_private *domain = (net_domain_private *)interface->domain;
net_domain_private* domain = (net_domain_private*)interface->domain;
switch (option) {
case SIOCADDRT:
@@ -412,7 +410,7 @@ control_routes(struct net_interface *interface, int32 option, void *argument,
return B_BAD_VALUE;
route_entry entry;
if (user_memcpy(&entry, &((ifreq *)argument)->ifr_route,
if (user_memcpy(&entry, &((ifreq*)argument)->ifr_route,
sizeof(route_entry)) != B_OK)
return B_BAD_ADDRESS;
@@ -440,9 +438,9 @@ control_routes(struct net_interface *interface, int32 option, void *argument,
status_t
add_route(struct net_domain *_domain, const struct net_route *newRoute)
add_route(struct net_domain* _domain, const struct net_route* newRoute)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
TRACE(("add route to domain %s: dest %s, mask %s, gw %s, flags %lx\n",
domain->name,
@@ -458,7 +456,7 @@ add_route(struct net_domain *_domain, const struct net_route *newRoute)
|| !domain->address_module->check_mask(newRoute->mask))
return B_BAD_VALUE;
net_route_private *route = find_route(domain, newRoute);
net_route_private* route = find_route(domain, newRoute);
if (route != NULL)
return B_FILE_EXISTS;
@@ -488,7 +486,7 @@ add_route(struct net_domain *_domain, const struct net_route *newRoute)
// Insert the route sorted by completeness of its mask
RouteList::Iterator iterator = domain->routes.GetIterator();
net_route_private *before = NULL;
net_route_private* before = NULL;
while ((before = iterator.Next()) != NULL) {
// if the before mask is less specific than the one of the route,
@@ -515,9 +513,9 @@ add_route(struct net_domain *_domain, const struct net_route *newRoute)
status_t
remove_route(struct net_domain *_domain, const struct net_route *removeRoute)
remove_route(struct net_domain* _domain, const struct net_route* removeRoute)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
TRACE(("remove route from domain %s: dest %s, mask %s, gw %s, flags %lx\n",
domain->name,
@@ -529,7 +527,7 @@ remove_route(struct net_domain *_domain, const struct net_route *removeRoute)
// TODO: for now...
//MutexLocker locker(domain->lock);
net_route_private *route = find_route(domain, removeRoute);
net_route_private* route = find_route(domain, removeRoute);
if (route == NULL)
return B_ENTRY_NOT_FOUND;
@@ -541,9 +539,9 @@ remove_route(struct net_domain *_domain, const struct net_route *removeRoute)
status_t
get_route_information(struct net_domain *_domain, void *value, size_t length)
get_route_information(struct net_domain* _domain, void* value, size_t length)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
if (length < sizeof(route_entry))
return B_BAD_VALUE;
@@ -559,7 +557,7 @@ get_route_information(struct net_domain *_domain, void *value, size_t length)
MutexLocker locker(domain->lock);
net_route_private *route = find_route(domain, (sockaddr *)&destination);
net_route_private* route = find_route(domain, (sockaddr*)&destination);
if (route == NULL)
return B_ENTRY_NOT_FOUND;
@@ -572,17 +570,17 @@ get_route_information(struct net_domain *_domain, void *value, size_t length)
void
invalidate_routes(net_domain *_domain, net_interface *interface)
invalidate_routes(net_domain* _domain, net_interface* interface)
{
// this function is called with the domain locked
// (see domain_interface_went_down)
net_domain_private *domain = (net_domain_private *)_domain;
net_domain_private* domain = (net_domain_private*)_domain;
dprintf("invalidate_routes(%i, %s)\n", domain->family, interface->name);
RouteList::Iterator iterator = domain->routes.GetIterator();
while (iterator.HasNext()) {
net_route *route = iterator.Next();
net_route* route = iterator.Next();
// TODO If we are removing the interface this will bork.
// Consider the following case:
@@ -603,10 +601,10 @@ invalidate_routes(net_domain *_domain, net_interface *interface)
}
struct net_route *
get_route(struct net_domain *_domain, const struct sockaddr *address)
struct net_route*
get_route(struct net_domain* _domain, const struct sockaddr* address)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker locker(domain->lock);
return get_route_internal(domain, address);
@@ -614,16 +612,16 @@ get_route(struct net_domain *_domain, const struct sockaddr *address)
status_t
get_device_route(struct net_domain *_domain, uint32 index, net_route **_route)
get_device_route(struct net_domain* _domain, uint32 index, net_route** _route)
{
net_domain_private *domain = (net_domain_private *)_domain;
net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker _(domain->lock);
net_interface_private *interface = NULL;
net_interface_private* interface = NULL;
while (true) {
interface = (net_interface_private *)list_get_next_item(
interface = (net_interface_private*)list_get_next_item(
&domain->interfaces, interface);
if (interface == NULL)
break;
@@ -640,25 +638,25 @@ get_device_route(struct net_domain *_domain, uint32 index, net_route **_route)
status_t
get_buffer_route(net_domain *_domain, net_buffer *buffer, net_route **_route)
get_buffer_route(net_domain* _domain, net_buffer* buffer, net_route** _route)
{
net_domain_private *domain = (net_domain_private *)_domain;
net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker _(domain->lock);
net_route *route = get_route_internal(domain, buffer->destination);
net_route* route = get_route_internal(domain, buffer->destination);
if (route == NULL)
return ENETUNREACH;
status_t status = B_OK;
sockaddr *source = buffer->source;
sockaddr* source = buffer->source;
// TODO we are quite relaxed in the address checking here
// as we might proceed with srcaddr=INADDR_ANY.
if (route->interface && route->interface->address) {
sockaddr *interfaceAddress = route->interface->address;
net_address_module_info *addressModule = domain->address_module;
sockaddr* interfaceAddress = route->interface->address;
net_address_module_info* addressModule = domain->address_module;
if (addressModule->is_empty_address(source, true))
addressModule->set_to(source, interfaceAddress);
@@ -676,19 +674,19 @@ get_buffer_route(net_domain *_domain, net_buffer *buffer, net_route **_route)
void
put_route(struct net_domain *_domain, net_route *route)
put_route(struct net_domain* _domain, net_route* route)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker locker(domain->lock);
put_route_internal(domain, (net_route *)route);
put_route_internal(domain, (net_route*)route);
}
status_t
register_route_info(struct net_domain *_domain, struct net_route_info *info)
register_route_info(struct net_domain* _domain, struct net_route_info* info)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker locker(domain->lock);
domain->route_infos.Add(info);
@@ -699,9 +697,9 @@ register_route_info(struct net_domain *_domain, struct net_route_info *info)
status_t
unregister_route_info(struct net_domain *_domain, struct net_route_info *info)
unregister_route_info(struct net_domain* _domain, struct net_route_info* info)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker locker(domain->lock);
domain->route_infos.Remove(info);
@@ -713,9 +711,9 @@ unregister_route_info(struct net_domain *_domain, struct net_route_info *info)
status_t
update_route_info(struct net_domain *_domain, struct net_route_info *info)
update_route_info(struct net_domain* _domain, struct net_route_info* info)
{
struct net_domain_private *domain = (net_domain_private *)_domain;
struct net_domain_private* domain = (net_domain_private*)_domain;
MutexLocker locker(domain->lock);
put_route_internal(domain, info->route);