Commit Graph

62 Commits

Author SHA1 Message Date
Axel Dörfler
79608a2de7 * Moved some private members of net_socket into the new net_socket_private structure.
* Added an "owner" field that stores the team which created the socket (for netstat only);
  we would need a different storage for SIGURG if we ever want to support that.
* Improved netstat address output: now prints "*" instead of INADDR_ANY.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 03:01:18 +00:00
Axel Dörfler
8dfd7ea7bf * Implemented a basic infrastructure for a netstat command.
* Started a netstat command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 02:06:07 +00:00
Axel Dörfler
26cbcedb9c Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-06 18:38:38 +00:00
Axel Dörfler
bcb0dd2b3b The R5 compatibility is now turned off when the socket functions are used
within the library - theoretically, this mechanism could be extended to
turn the compatibility layer on and off based on the images that call the
functions (allowing to mix R5 and BONE network add-ons in a single executable).
This change fixes R5 networking apps such as Vision, and NetworkTime (both
now seem to work fine under Haiku).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-05 03:03:15 +00:00
Axel Dörfler
2bd388f696 Added two more utility functions to the timer service:
* cancel_timer() cancels a timer, and returns true if the timer was running
* is_timer_active() determines if the timer is currently running or not.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:19 +00:00
Axel Dörfler
224e38e302 Added function to append cloned data from another buffer (to be used by TCP).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 14:30:54 +00:00
Axel Dörfler
604d21a600 * Added an offset/sequence field to the net_buffer - this can and will be used
by the TCP implementation for its reorder and retransmit queues.
* The ipv4_fragment is no longer needed, as we can use the above field there
  as well - this saves one extra allocation per received fragment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 11:29:36 +00:00
Axel Dörfler
3e30cbdb1e Added option to the NetBufferPrepend constructor to prepend an arbitrarily sized
piece of data, instead of the type size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 17:56:17 +00:00
Axel Dörfler
d47eebf30b * The select()/deselect() hooks now actually call the socket's request_notification()
and cancel_notification() functions.
* Completey dropped the old select code, as well as any R5 compatibility stuff. If
  we ever need it again, it's still in SVN history.
* The socket module was put in uninit_driver() for no reason.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-11 12:27:30 +00:00
Axel Dörfler
b70a062dc5 * Separated create_socket() and the call to the protocol's open() function - open()
is not supposed to be called for accepted sockets, only for those created via
  a call the userland socket() function.
* Renamed net_socket_module_info::socket() to open_socket() to make this distinction
  a bit clearer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-11 11:56:52 +00:00
Axel Dörfler
1a0e92a33b Implemented backlog/pending connection support to the sockets - while currently
only TCP needs this, other stream oriented protocols might too, in the future.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-09 18:53:18 +00:00
Axel Dörfler
c35b04de31 * Moved the TCPConnection class into its own file.
* Added some missing result checks, mostly for allocations.
* Fixed a wrong precendence with the ?: operator
* Some minor cleanup.
* Renamed sBufferModule to gBufferModule - the header expects it to be a global,
  so it should be named like one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-02 17:27:13 +00:00
Axel Dörfler
81435928fb * Fragmenting IP packets is now working as expected (there were several bugs
in the code before).
* Added a SetTo() method to NetBufferHeader.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-15 09:52:54 +00:00
Axel Dörfler
a7028ce680 * Implemented select support for sockets and notifications, not yet tested, though;
this closes ticket #811.
* Added notification support to IPv4 and UDP.
* Implemented reading out SO_ERROR.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-07 12:32:02 +00:00
Axel Dörfler
153b2845d2 * Added a link from libnet.so to libnetwork.so for R5 compatibility.
* Fixed R5 socket definitions to match their actual definitions.
* libnetwork.so now detects at runtime wether or not R5 compatibility should be
  enabled or not.
* All socket functions should now be R5 net_server compatible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-06 13:07:05 +00:00
Marcus Overhagen
891a127fec various gcc 4 related build fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 17:34:22 +00:00
Axel Dörfler
241b048033 * Fixed build of libnetapi.so - it probably won't work for now, though, have a look
at the comment in r5_compatibility.h.
* Intentionally broke source compatibility and removed all that outdated Nettle stuff.
* Also, I took the liberty of making m_init private and rename it to fInit - again, this
  will only affect source compatibility.
* Rewrote NetEndpoint.h
* Fixed quite a few small bugs around the code that I touched, for example in NetAddress,
  SetTo() never set fInit, and therefore could be wrong.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 00:19:23 +00:00
Axel Dörfler
c22d69bf1f * Completed the previous commit and merger of the team/network/new_stack branch.
* Removed ppp_up and pppcontrol from the image for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-08 13:07:07 +00:00
Axel Dörfler
5adca30a18 Merge of branches/team/network/new_stack - not yet complete as SVN does only support
replacing files when merging when you don't have deleted them manually (for some reason,
it only works as part of the merge operation, and we didn't copy the whole tree to
have "a fresh start" - next time we know better, at least if SVN still suffers from
that same limitation).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-08 12:33:33 +00:00
Jérôme Duval
4e0eae1865 patch from Olivier Coursiere for better error output in ping
change the size parameter type of several functions in sys/socket.h to match POSIX
compat libs and legacy headers keep the original R5 type (though I make a change for this)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-23 12:22:26 +00:00
Waldemar Kornewald
8c85eedc66 Moved the needed headers from private to posix folder. This should hopefully fix the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 17:42:05 +00:00
Waldemar Kornewald
f7a223fa1b Removed unneeded libbind files (were never compiled, anyway).
Moved some headers around and cleaned them up.

Fixed threading code in libbind.so. Don't know why I hadn't noticed this before. Now it is reliable, but uses an even uglier hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:26:54 +00:00
Waldemar Kornewald
c544064d35 Updated BIND resolver library (libbind.so) to version 9.3.1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 22:38:13 +00:00
Waldemar Kornewald
aa782b3ed6 Minor modification to net_stack_driver's header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15499 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 20:09:13 +00:00
Ingo Weinhold
758b1d0e05 Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
  declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
  explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
  something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
  'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
  is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
  Otherwise the an inner class with that name is considered as friend.
  gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-12 23:27:14 +00:00
Jérôme Duval
e970946333 EHOSTDOWN not needed for Haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 20:09:10 +00:00
Ingo Weinhold
338b8dc301 Merged changes from branch build_system_redesign at revision 14573.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-29 16:27:43 +00:00
Jérôme Duval
060d9206d9 added some netdebug and netconfig files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-13 15:49:30 +00:00
Jérôme Duval
27c7bf1ac1 fix the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-30 22:32:01 +00:00
Jérôme Duval
83e02263b7 added a socketpair in libsocket.so with corresponding code in the network stack driver and the network stack
socketpair() in the network stack is empty and still to be implemented for real


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-28 12:21:42 +00:00
Michael Lotz
4ce3301a57 This should now actually fix the recursive lookup of the net_stack_driver. We must only load the networking core once.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 14:19:20 +00:00
Michael Lotz
8dfbc5e088 Prepare for native installation on Haiku. The net_stack is located under dev/net_stack to avoid recursive lookup, the network core is at add-ons/kernel/network instead of obos_network.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 19:37:09 +00:00
François Revol
3f53434673 that ioctl is only to check for writev, not readv, doesn't make much sense anyway
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 23:24:26 +00:00
Philippe Houdoin
66c1fb8eb3 Removed duplicate B_SELECT_* & co definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-03 15:11:46 +00:00
Nathan Whitehorn
d774d9a0a1 While we're modifying ether_driver.h, added in an ioctl for link state detection, and implemented it in the two Broadcom drivers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-01 03:01:20 +00:00
François Revol
1b9aa3e9f8 Add 2 BONE ioctls not to colide with; Add GETIFTYPE for my own stuff, but I'm not sure how I'll use that yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-30 16:40:42 +00:00
Philippe Houdoin
4d7e82c125 Doh! Forgot to commit these after having removed from headers/posix/*.
My mistake.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-04 16:08:52 +00:00
Philippe Houdoin
a60e1f4f7f Moved from headers/posix to private/net, as they're not POSIX headers.
Expand the max numbers of area for IPC, as net_stack_control_module can
target to more than 5 structs by adresses...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-25 22:53:41 +00:00
Waldemar Kornewald
8070acfb47 Added a "const" to the name field in control_net_module_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-30 10:53:50 +00:00
Philippe Houdoin
81b05b60f1 Add missing include(s).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 00:08:53 +00:00
Philippe Houdoin
44d24e2984 Rollback to obos_network, as it ease avoid conflict on BONE-based systems.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-15 00:03:07 +00:00
Philippe Houdoin
b4ceb35f2e Oooops, should have not check this network module roots folder name...
Back to normal program.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-13 00:24:56 +00:00
Philippe Houdoin
ff3cf53035 Define a NETWORK_MODULES_ROOT to easy change the stack modules root folder name,
to help avoiding conflict with BONE one for example...
Update each network module name to use this prefix.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-12 23:28:41 +00:00
Philippe Houdoin
8f505c3de4 Add ether_driver.h to private net headers.
Should we make this public?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-12 23:25:40 +00:00
Philippe Houdoin
9e4f133fe8 Signaled sockets forward a signal to their server counterparts,
which interrupt the server's socket thread, deleted when the socket close.
IPC message trace now reports message name instead of hexa opcode, which
increase a little their usefullness for an human reader :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-19 20:32:01 +00:00
Philippe Houdoin
eb8b30128e Add new control_net_module_args to global stack_driver_args union.
Report this change in the stack driver code, to keep consistent
code.
TODO: Implement NET_STACK_CONTROL_NET_MODULE in net_server_driver.c too!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-25 21:24:03 +00:00
Waldemar Kornewald
7f015ac671 Forgot to commit changes for control() support and some fixes.
Also added header for PPPoE support in ethernet module.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-23 17:50:45 +00:00
Waldemar Kornewald
13b219e125 Added get/set_max_xxx functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-14 10:14:57 +00:00
Philippe Houdoin
e8d1b6e166 Moved back from headers/posix/sys from here, where they belong.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-11 22:50:27 +00:00
Philippe Houdoin
bf09be1c1e Export socket_shutdown from core stack module. Rollback to NET_STACK_GET_COOKIE trick...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-10 01:05:14 +00:00