| Branch: | Revision:

iof-bird-daemon / sysdep @ 725270cb

# Date Author Comment
725270cb 06/08/2000 12:37 PM Martin Mares

Fixes for the programmer's manual.

c62d1c19 06/08/2000 10:48 AM Martin Mares

... as well there.

ec423cc7 06/08/2000 10:25 AM Martin Mares

Updated CLI helps.

58f7d004 06/07/2000 01:25 PM Martin Mares

Fixes to the progdoc.

2e9b2421 06/07/2000 12:29 PM Martin Mares

Spelling fixes to progdoc.

73275d85 06/05/2000 12:49 PM Martin Mares

Documented all the sysdeps (only briefly, I admit).

Except for Filters, RIP and OSPF, the progdocs are complete.

525fa2c1 06/05/2000 12:19 PM Martin Mares

Documented sockets, events and timers.

10304bed 06/05/2000 11:46 AM Martin Mares

Split random number functions off io.c, so that they can be documented

df49d4e1 06/04/2000 07:56 PM Martin Mares

Removed lots of trailing newlines in log messages.

Please note that the only calls which don't add newlines automatically
(i.e., don't print a full line of output) are debug() and DBG.

b594ad23 06/01/2000 03:13 PM Martin Mares

tm_format_reltime() works with both past and future timestamps.

4a911501 06/01/2000 12:58 PM Martin Mares

Updated for new scope handling.

Also, provide proper address scopes in struct ifa.

2f5e5ff9 05/31/2000 10:28 PM Martin Mares

Before configuration file is read, log to both syslog and stderr.

fcb5f4a7 05/31/2000 11:30 AM Martin Mares

Updated all the Doc files to new format.

4761efdb 05/29/2000 10:10 PM Martin Mares

Tracing of CLI connections/commands can be now controlled
by `debug commands <level>' in the configuration. Level 0 means
no tracing, 1 means connections only, 2 includes all commands.

e67af428 05/29/2000 09:58 PM Martin Mares

Support --version and --help.

f990fc61 05/16/2000 01:36 PM Martin Mares

When in persist mode, don't delete routes from kernel tables even if
they cease to exist in our routing tables due to protocols having shut down.

02bd064a 05/13/2000 11:02 AM Martin Mares

Adapted to new rt_notify semantics.

0e5aa966 05/11/2000 04:30 PM Martin Mares

Multicast problems should be gone, although the fix is Linux only and we'll
need to figure out something better when working on new ports.

109c2f6c 05/11/2000 12:30 PM Martin Mares

If a broadcast address is missing, go fake one.

5ff0a270 05/08/2000 10:31 PM Martin Mares

In non-debug mode, set default logging to syslog only, not stderr.

4524331a 05/08/2000 10:31 PM Martin Mares

Fixed type in daemonization code.

0bcba21e 05/08/2000 07:10 PM Martin Mares

When not debugging, daemonize automatically.

cd44b466 05/08/2000 02:24 PM Martin Mares

Forgot to add a spiky comment :)

f9254d23 05/08/2000 02:19 PM Martin Mares

Autoconf is evil. The sysconfdir and similar variables are unusable in
C includes as they contain substitutions specific to make.

Worked around by creating sysconf/paths.h which is created from
the Makefile instead of by the configure script.

818ff1e2 05/08/2000 12:38 PM Martin Mares

When reporting a bug(), call abort() instead of exit(), so that we
can analyse the core.

c304392e 05/08/2000 12:37 PM Martin Mares

Some less socket error messages.

9cbf43eb 05/08/2000 12:09 PM Martin Mares

Don't report refused connections.

b6c9d8eb 05/08/2000 12:05 PM Martin Mares

Removed the `async' switch which was used for debugging only anyway.

Don't moan when netlink reports lost packets.

94e935d8 05/08/2000 11:02 AM Martin Mares

Incoming buffer must be at least 8KB long.

916c8c0a 05/08/2000 10:40 AM Martin Mares

Use preferences properly.

1151401e 05/08/2000 10:38 AM Martin Mares

Don't crash when reporting deleted routes.

Set preferences correctly.

84f07002 05/06/2000 09:46 PM Martin Mares

IPv6 support compiles on both glibc 2.0 and 2.1.

ab1129c1 05/05/2000 05:17 PM Martin Mares

Added skeleton Doc files for the whole developer's documentation.

9a220cab 05/04/2000 08:52 PM Martin Mares

#ifdef out lots of debugging information.

The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'

93a786cb 05/04/2000 08:30 PM Martin Mares

Removed a lot of unused variables.

Please try compiling your code with --enable-warnings to see them. (The
unused parameter warnings are usually bogus, the unused variable ones
are very useful, but gcc is unable to control them separately.)

2edb31b0 04/28/2000 03:11 PM Martin Mares

Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
C declarations etc.).

f75e3bbc 04/27/2000 10:35 PM Martin Mares

Fixed a couple of nasty CLI bugs which were triggered on long or multi-part
outputs. It took a whole evening to hunt them down, but now the CLI seems
to work fine.

Now I run three BGP connections with several thousand routes!

e1ddd993 04/26/2000 01:26 PM Martin Mares

Changed handling of incoming connections, so that we can send data
from the send hook without worrying about existence of socket buffers.

Also, don't forget to copy peer addresses.

0cadd5f5 04/26/2000 12:33 PM Martin Mares

Removed several FIXME's.

00c0c18a 04/25/2000 11:07 PM Martin Mares

Allow sk_close(NULL).

f380aa60 04/20/2000 11:05 PM Martin Mares

IPv6 compiles with glibc 2.1.

f2cb1d70 04/10/2000 12:38 PM Martin Mares

Dropped CPU_NEEDS_ALIGN_* as unaligned.h no longer uses them.

3991d84e 04/01/2000 10:19 AM Martin Mares

Changed initialization of protocol list -- now we call proto_build() instead
of calling the protocols manually.

Implemented printing of dynamic attributes in `show route all'.

Each protocol can now register its own attribute class (protocol->attr_class,...

a37410cb 03/31/2000 11:33 PM Martin Mares

Use bsprintf() instead of sprintf().

221135d6 03/31/2000 11:30 PM Martin Mares

Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.

320f4173 03/30/2000 10:43 AM Martin Mares

Defined sk_close() which closes the socket safely even if called from
socket hook. Replaces the SK_DELETED hack.

Squashed a couple of bugs in handling of TCP sockets.

1cf716f0 03/20/2000 09:49 PM Martin Mares

Handle EINPROGRESS properly.

Set IP_DONTROUTE sockopt only if sk->ttl == 1.

f098e072 03/12/2000 10:53 PM Martin Mares

Fixed a bunch of FIXME's by removing them :)

7a88832e 03/12/2000 10:43 PM Martin Mares

Added tm_format_datetime().

a92bebe0 03/12/2000 09:58 PM Martin Mares

Yet another LOCAL_DEBUG turned off.

832fa033 03/12/2000 09:54 PM Martin Mares

Cleaned up debugging in kernel syncer. Netlink has still LOCAL_DEBUG
turned on, but after some testing I'll gag it.

6b9fa320 03/12/2000 09:01 PM Martin Mares

Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG.

c801e1fb 03/07/2000 08:09 PM Martin Mares

Renamed command `shutdown' to `down', so that `s' can be used as an
abbreviation for `show'.

b9626ec6 03/04/2000 10:21 PM Martin Mares

Garbage collector events and counters are now per table and one day
they can be made configurable if it turns out to be useful.

d07bab39 03/01/2000 11:29 AM Martin Mares

ipa_opposite hack is not applicable in IPv6.

6a636392 02/29/2000 11:19 PM Martin Mares

Rewrote interface type detection logic. The `unnumbered' flag is now per
address, not per interface (hence it's ifa->flags & IA_UNNUMBERED) and
should be set reliably. IF_MULTIACCESS should be fixed now, but it isn't
wise to rely on it on interfaces configured with /30 prefix.

9fac310d 01/19/2000 03:07 PM Martin Mares

Put client on a stony ground. The whole client is going to be system-specific
(the current version UNIX-specific) anyway, so it's useless to try splitting it
to sysdep and generic part. Instead of this, configure script decides (based on
system type and user's wish) what (if any) client should be built and what...

3ea1ba63 01/18/2000 11:01 AM Martin Mares

Killed protocol->priority. Protocol startup should be clean and hack-free now.
It seems everything still works (except for disable/enable/restart which hangs
sometimes, but it's another story).

aa8761de 01/18/2000 10:39 AM Martin Mares

Kernel route syncer now supports dynamic reconfiguration. Also it doesn't
depend on the startup counter hack now and uses a zero-time timer instead
to make itself scheduled after normal protocol startup.

fb89b1a4 01/17/2000 12:40 PM Martin Mares

Removed point-to-point tunnel hack as it breaks ordinary PtP interfaces.
I'll find a better solution soon.

d272fe22 01/17/2000 11:52 AM Martin Mares

Separated `official protocol names' used in status dumps from name templates
used for automatic generation of instance names.

protocol->name is the official name
protocol->template is the name template (usually "name%d"),
should be all lowercase.

Updated all protocols to define the templates, checked that their configuration...

f7fcb752 01/17/2000 11:17 AM Martin Mares

Reconfiguration for device protocol.

99278e10 01/16/2000 11:36 PM Martin Mares

Wording changes.

bf8558bc 01/16/2000 05:40 PM Martin Mares

Converted shutdown to a kind of reconfiguration, it's no more handled
as a exception in protocol state machines. Introduced a `shutdown'
CLI command. Killed few reconfiguration bugs.

50fe90ed 01/16/2000 04:44 PM Martin Mares

First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.

476e1084 12/16/1999 01:51 PM Martin Mares

Minor cleanups.

e693ddff 12/16/1999 01:23 PM Martin Mares

Handle cases when SIOCGIFINDEX is defined, but doesn't work (new glibc
with 2.0 kernels).

a2867cd9 12/16/1999 01:14 PM Martin Mares

Better order of includes.

set_inaddr() moved to sysio.h.

67ece6df 12/16/1999 01:06 PM Martin Mares

Tried to clean up multicast handling. Now we don't try to guess
multicast abilities depending on definedness of symbols and use hard-wired
system-dependent configuration defines instead.

Please test whereever you can.

f545d387 12/09/1999 06:54 PM Martin Mares

Added universal locking mechanism which will solve problems
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...

30bc402e 12/08/1999 03:12 PM Martin Mares

Temporary work-arounds for multicast problems. Needs further investigation.

0da472d7 12/08/1999 02:16 PM Martin Mares

Except for special protocols (nowadays only the kernel syncer), don't
export host and link scope routes.

dc82daaa 12/08/1999 01:20 PM Martin Mares

- Path to control socket is selectable via command-line option.
- die() when control socket open failed.

f78056fb 12/06/1999 01:51 PM Martin Mares

Allow logging to stderr as well.

a0c37b45 12/06/1999 01:45 PM Martin Mares

Logging is now configurable. You can define multiple log outputs (to both
files and syslog) and assign lists of message categories to each of them.

a9c986f9 12/06/1999 01:43 PM Martin Mares

Added tracked_fopen() which is a fopen registered in resource database.
Will be used for log files.

34350a52 12/06/1999 12:34 PM Martin Mares

Implemented echoing of log messages to CLI connections. Just try `echo all'.

afa8937a 12/01/1999 11:59 AM Martin Mares

Added tm_format_reltime() for formatting of relative time quantities.

487d1afa 11/30/1999 02:01 PM Martin Mares

Moved TIME_INFINITY to timer.h, so that it's publicly available.

30770df2 11/17/1999 12:04 PM Martin Mares

If the main event queue is not empty, call select() with zero timeout, so
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.

2727bb7c 11/04/1999 01:29 PM Martin Mares

Renamed attr->attrs to attr->eattrs.

b9672a84 10/31/1999 03:43 PM Martin Mares

The CLI I/O functions work as desired.

7d3aab1c 10/29/1999 12:10 PM Martin Mares

First steps of the Command Line Interface: I/O routines.

b93abffa 10/29/1999 12:09 PM Martin Mares

Implemented unix-domain sockets.

54165b13 10/29/1999 10:08 AM Martin Mares

autoconf.h is now written to obj/sysdep, the source tree is hopefully
completely read-only now.

ed608150 10/29/1999 09:44 AM Martin Mares

Added skeleton of the client. Does nothing, but at least compiles.

f782b72c 10/02/1999 11:06 AM Martin Mares

Failure to set socket TOS is not a fatal error.

f6519414 08/17/1999 08:47 PM Martin Mares

Added a function for generating 32-bit random numbers.

4532a89e 08/03/1999 07:37 PM Martin Mares

Taught Netlink how to behave in IPv6 world.

4f22c981 08/03/1999 07:36 PM Martin Mares

Support for IPv6 sockets. How nice one doesn't have to ifdef around
ten years of API evolution :-)

dce26783 08/03/1999 07:36 PM Martin Mares

Basic support for IPv6. The system-dependent part doesn't work yet,
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....
7de45ba4 08/03/1999 07:33 PM Martin Mares

Kernel route syncer supports multiple tables.

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. :)

92730354 08/03/1999 07:30 PM Martin Mares

Changes to interface handling on traditional Unices:

o  Aliases are interpreted as secondary addresses.
o When the system doesn't supply interface indices, generate
our ones.
913f7dc9 08/03/1999 07:29 PM Martin Mares

Added functions for parsing and formatting of dates.

bd7f1081 06/01/1999 03:31 PM Martin Mares

Grrr, the "obvious fix" to multicasting code from yesterday was
fundamentally wrong. Reversed.

c7208da0 05/31/1999 08:28 PM Martin Mares

Fix potential multicasting bug.

bb027be1 05/31/1999 06:55 PM Martin Mares

Added extra argument to rt_update hook which contains a pointer to the
temporary attribute list.

4b0d57e5 05/21/1999 02:29 PM Martin Mares

Added CONFIG_MULTIPLE_TABLES whereever appropriate.

1c3c9dce 05/21/1999 02:29 PM Martin Mares

Removed one unused structure field.

4f1a6d27 05/17/1999 08:16 PM Martin Mares

Kill remaining master_table relics in KRT code.

Make all protocols pass routing table to rte_update and rte_discard.