Commit graph

778 commits

Author SHA1 Message Date
Martin Mares 0804525255 Basic kernel routing table syncing implemented. Learning of routes installed
by other programs or the kernel itself is not supported yet, but it's not
needed for development of other protocols.
1998-10-19 17:52:29 +00:00
Martin Mares 567e6c6220 Use (SOCK_DGRAM,IPPROTO_IP) socket instead of (SOCK_STREAM,IPPROTO_TCP).
This is exactly what Linux ifconfig does and seems to be the preferred way.
1998-10-19 17:48:45 +00:00
Martin Mares 4cf45766ba Exporting fill_in_sockaddr() for use by other unix-dependent code. 1998-10-19 17:47:50 +00:00
Martin Mares 16a8ba30a9 We parse /proc/net/route and flag RT entries according to it. More to come
today in the morning...
1998-10-18 22:25:56 +00:00
Martin Mares 7e7790c61f Since almost every UNIX system requires different techniques for reading
the kernel routing table as opposed to modifying it which is approximately
the same on non-netlink systems, I've split the kernel routing table
routines to read and write parts. To be implemented later ;-)
1998-10-18 12:50:43 +00:00
Martin Mares 0432c0173b Split protocol init to building of protocol list and real protocol init.
Added kernel route table syncer skeleton.
1998-10-18 11:53:21 +00:00
Martin Mares 47b793064c Solve chicken-and-egg problems with protocol startup. We now queue all inactive
protocols and don't send route/interface updates to them and when they come up,
we resend the whole route/interface tables privately.

Removed the "scan interface list after protocol start" work-around.
1998-10-17 11:05:18 +00:00
Martin Mares 93f1c532e9 Moved scanning of interfaces, so that they get initialized after all
routing protocol instances.
1998-10-14 13:38:17 +00:00
Martin Mares c93214d442 o There are cases when SIOCGIFINDEX is defined, but it doesn't work. When
this happens, don't reject the whole interface, just mark it as index 0.
o  Removed Pavel's comment about EFAULT and SIGSEGV. EFAULT is a valid return
   code for cases where the buffer is too small.
o  Commented out the smart interface list size logic temporarily as it seems
   Linux 2.0 SIOCGIFCONF doesn't react to ifc_req==NULL sanely. Replaced it
   by exponential stepping.
1998-10-13 19:57:33 +00:00
Pavel Machek fdf33cde1c Strange, on atrey ioctl() does not fill structure, and bird segfaults
on it. Now we "only" die().
1998-10-13 14:59:46 +00:00
Martin Mares c25e90efed Added comment explaining `now'. 1998-07-15 19:42:23 +00:00
Martin Mares 28a9a189d7 Replaced remaining references of clock_t by bird_clock_t. 1998-07-10 08:32:18 +00:00
Pavel Machek 86b0023033 Making SIGUSR1 dump also all protocols. 1998-07-09 19:37:39 +00:00
Martin Mares 9556f22585 debug() and log() use the new printf. Feel free to use new formatting
sequences for all output.
1998-06-17 14:33:29 +00:00
Martin Mares 5331da6a4d Fixed processing of timers. 1998-06-04 20:27:49 +00:00
Martin Mares fd50083df4 Killed socket debug code. Initialize config pool and protocols.
More to come later...
1998-06-03 08:43:44 +00:00
Martin Mares 869c695998 Synced to new interface code. 1998-06-01 21:41:32 +00:00
Martin Mares af847acc27 Whee, multicast sockets work!
Implemented recurrent timers.
1998-05-26 21:46:38 +00:00
Martin Mares 140f034105 Added CONFIG_AUTO_ROUTES (automatic device route creation) and
CONFIG_ALL_MULTICAST (all interfaces capable of multicasting, not depending
on IFF_MULTICAST flag).
1998-05-26 21:44:54 +00:00
Martin Mares 8a48ecb8b1 Implemented scanning of network interfaces. Mostly very ugly code due to
terrible kernel interface (SIOGIFCONF and friends).
1998-05-26 21:42:05 +00:00
Martin Mares b5d9ee5c87 Added UNIX implementation of both timers and sockets. Timers should work,
sockets were tested only in TCP mode. main.c now contains some test
cases for socket code.
1998-05-24 14:50:18 +00:00
Martin Mares a2ccbb0b97 Implemented timers. Using bird_clock_t for absolute time from now... 1998-05-24 14:40:29 +00:00
Martin Mares 2326b001d6 Added routing table and routing attribute code. 1998-05-20 11:54:33 +00:00
Martin Mares 25697773b5 The library is now glued together from generic and OS-dependent parts
by the `mergedirs' script. Few more IP address manipulation functions
and some fixes.
1998-05-15 07:56:13 +00:00
Martin Mares 18c8241a91 BIRD library: The story continues.
Complete resource manages and IP address handling.
1998-05-03 16:43:39 +00:00
Martin Mares 6032aa6ade Added new subdir for UNIX-dependent files.
Now contains only functions for logging, but it will change soon.
1998-05-03 16:42:08 +00:00
Martin Mares 1feea03e74 Changed #include <x/y> to #include "x/y" for our local includes, so that
gcc -MM can be used to separate them from the system ones.

Added automatic generation of dependencies.
1998-04-28 14:39:34 +00:00
Martin Mares 58ef912c6b First look at data structures. More to come tomorrow... 1998-04-22 12:58:34 +00:00