* Changed the way the socket functions work:

- The net_stack driver is no longer used. Instead we have a kernel
    module which is directly used by syscall implementations in the
    kernel. I.e. we no longer tunnel those functions through ioctls, but
    have normal syscalls.
  - Removed the superfluous net starter module.
  - Implemented the FDTYPE_SOCKET type file_descriptors, that is sockets
    are no longer vnode based.
  - Adjusted libnetwork (the socket function implementations)
    accordingly.
  - Adjusted netstat accordingly.
* Socket module:
  - Implemented socketpair().
  - Added "kernel" parameter to the control hook. Quite a few more hooks
    would actually need the parameter, but I didn't change those yet,
    since that would probably also require changes to the protocol
    module interface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24908 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-04-11 04:12:23 +00:00
parent 446d50a652
commit df50f7a9b4
17 changed files with 1831 additions and 280 deletions
@@ -270,7 +270,7 @@ create_interface(net_domain *domain, const char *name, const char *baseName,
// Grab a reference to the networking stack, to make sure it won't be
// unloaded as long as an interface exists
module_info *module;
get_module(NET_STARTER_MODULE_NAME, &module);
get_module(gNetStackInterfaceModule.info.name, &module);
*_interface = interface;
return B_OK;
@@ -320,7 +320,7 @@ delete_interface(net_interface_private *interface)
// Release reference of the stack - at this point, our stack may be unloaded
// if no other interfaces or sockets are left
put_module(NET_STARTER_MODULE_NAME);
put_module(gNetStackInterfaceModule.info.name);
}