summaryrefslogtreecommitdiff
path: root/sysdep
AgeCommit message (Collapse)Author
2000-01-16First attempt on dynamic reconfiguration. There are still lots of bugsMartin Mares
and problems to solve, but the hardest part works.
1999-12-16Minor cleanups.Martin Mares
1999-12-16Handle cases when SIOCGIFINDEX is defined, but doesn't work (new glibcMartin Mares
with 2.0 kernels).
1999-12-16Better order of includes.Martin Mares
set_inaddr() moved to sysio.h.
1999-12-16Tried to clean up multicast handling. Now we don't try to guessMartin Mares
multicast abilities depending on definedness of symbols and use hard-wired system-dependent configuration defines instead. Please test whereever you can.
1999-12-09Added universal locking mechanism which will solve problemsMartin Mares
with protocols wanting to use the same port on the same interface during reconfiguration time. How to use locks: In the if_notify hook, just order locks for the interfaces you want to work with and do the real socket opening after the lock hook function gets called. When you stop using the socket, close it and rfree() the lock. Please update your protocols to use the new locking mechanism.
1999-12-08Temporary work-arounds for multicast problems. Needs further investigation.Martin Mares
1999-12-08Except for special protocols (nowadays only the kernel syncer), don'tMartin Mares
export host and link scope routes.
1999-12-08- Path to control socket is selectable via command-line option.Martin Mares
- die() when control socket open failed.
1999-12-06Allow logging to stderr as well.Martin Mares
1999-12-06Logging is now configurable. You can define multiple log outputs (to bothMartin Mares
files and syslog) and assign lists of message categories to each of them.
1999-12-06Added tracked_fopen() which is a fopen registered in resource database.Martin Mares
Will be used for log files.
1999-12-06Implemented echoing of log messages to CLI connections. Just try `echo all'.Martin Mares
1999-12-01Added tm_format_reltime() for formatting of relative time quantities.Martin Mares
1999-11-30Moved TIME_INFINITY to timer.h, so that it's publicly available.Martin Mares
1999-11-17If the main event queue is not empty, call select() with zero timeout, soMartin Mares
that the events are ran again after the FD's are checked. This allows us to schedule I/O checks between processing of user commands.
1999-11-04Renamed attr->attrs to attr->eattrs.Martin Mares
1999-10-31The CLI I/O functions work as desired.Martin Mares
1999-10-29First steps of the Command Line Interface: I/O routines.Martin Mares
1999-10-29Implemented unix-domain sockets.Martin Mares
1999-10-29Configure PATH_CONTROL_SOCKET.Martin Mares
autoconf.h is now written to obj/sysdep, the source tree is hopefully completely read-only now.
1999-10-29Added skeleton of the client. Does nothing, but at least compiles.Martin Mares
1999-10-02Failure to set socket TOS is not a fatal error.Martin Mares
1999-08-17Added a function for generating 32-bit random numbers.Martin Mares
1999-08-03Taught Netlink how to behave in IPv6 world.Martin Mares
1999-08-03Support for IPv6 sockets. How nice one doesn't have to ifdef aroundMartin Mares
ten years of API evolution :-)
1999-08-03Basic support for IPv6. The system-dependent part doesn't work yet,Martin Mares
but the core routines are there and seem to be working. o lib/ipv6.[ch] written o Lexical analyser recognizes IPv6 addresses and when in IPv6 mode, treats pure IPv4 addresses as router IDs. o Router ID must be configured manually on IPv6 systems. o Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts. o Fixed few places where ipa_(hton|ntoh) was called as a function returning converted address.
1999-08-03Kernel route syncer supports multiple tables.Martin Mares
The changes are just too extensive for lazy me to list them there, but see the comment at the top of sysdep/unix/krt.c. The code got a bit more ifdeffy than I'd like, though. Also fixed a bunch of FIXME's and added a couple of others. :)
1999-08-03Changes to interface handling on traditional Unices:Martin Mares
o Aliases are interpreted as secondary addresses. o When the system doesn't supply interface indices, generate our ones.
1999-08-03Added functions for parsing and formatting of dates.Martin Mares
1999-06-01Grrr, the "obvious fix" to multicasting code from yesterday wasMartin Mares
fundamentally wrong. Reversed.
1999-05-31Fix potential multicasting bug.Martin Mares
1999-05-31Added extra argument to rt_update hook which contains a pointer to theMartin Mares
temporary attribute list.
1999-05-21Added CONFIG_MULTIPLE_TABLES whereever appropriate.Martin Mares
1999-05-21Removed one unused structure field.Martin Mares
1999-05-17Kill remaining master_table relics in KRT code.Martin Mares
Make all protocols pass routing table to rte_update and rte_discard.
1999-05-07Netlink support for secondary interface addresses.Martin Mares
1999-05-06I rewrote the interface handling code, so that it supports multipleMartin Mares
addresses per interface (needed for example for IPv6 support). Visible changes: o struct iface now contains a list of all interface addresses (represented by struct ifa), iface->addr points to the primary address (if any). o Interface has IF_UP set iff it's up and it has a primary address. o IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED in the protocols; I've added this, but please check). o The if_notify_change hook has been simplified (only one interface pointer etc.). o Introduced a ifa_notify_change hook. (For now, only the Direct protocol does use it -- it's wise to just listen to device routes in all other protocols.) o Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway). o Updated all the code except netlink (I'll look at it tomorrow) to match the new semantics (please look at your code to ensure I did it right). Things to fix: o Netlink. o Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
1999-04-14Multicasts once again: When using SO_BINDTODEVICE, don't specify IP addressMartin Mares
of the interface.
1999-04-14Next attempt to get SO_BINDTODEVICE work :)Martin Mares
1999-04-14Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreqMartin Mares
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
1999-04-12Ignore alias interfaces (some day, we will treat them as pure secondaryMartin Mares
interface addresses).
1999-04-12Removed TOS support. This simplifies many things a lot.Martin Mares
1999-04-12Use `struct ip_mreqn' instead of `struct ip_mreq' for multicastMartin Mares
operations on 2.1/2.2 kernels. This allows passing of real interface indexes instead of referencing interfaces by their IP addresses which fails badly in presence of unnumbered interfaces. Unfortunately, this structure is not visible with glibc 2.0 as it provides its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
1999-04-12Fixed a couple of bugs in handling of multicast sockets.Martin Mares
See comments in lib/socket.h for a detailed guide on how to use them.
1999-04-07Portability fixes.Martin Mares
1999-04-03More changes to the kernel syncer.Martin Mares
o Now compatible with filtering. o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS systems (on the others it's impossible to get it semantically correct). o Learning now stores all of its routes in a separate fib and selects the ones the kernel really uses for forwarding packets. o Better treatment of CONFIG_AUTO_ROUTES ports. o Lots of internal changes.
1999-04-03Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is ableMartin Mares
to distinguish between our own routes and alien ones.
1999-04-02Fixed `too many interfaces' cases.Martin Mares
1999-04-02Believe it or not, printf()'s does not work too much without this one.Pavel Machek