| Branch: | Revision:

iof-bird-daemon / lib @ e81b440f

# Date Author Comment
e81b440f 02/21/2010 01:34 PM Ondrej Zajicek

Fix configure to enable warnings and fix most of them.

a2ea1bac 02/11/2010 08:19 PM Ondrej Zajicek

Moves errno.h include.

0741e687 01/08/2010 09:21 AM Ondrej Zajicek

Socket table update.

cf31112f 01/03/2010 11:17 AM Ondrej Zajicek

Implements MRTdump feature.

4ac7c834 11/09/2009 10:22 PM Ondrej Zajicek

Use IPv6 checksums in OSPFv3.

3f22fa9e 11/09/2009 09:54 PM Ondrej Zajicek

Merge branch 'dev' into ospf3

ea89da38 10/11/2009 04:56 PM Ondrej Zajicek

Workaround for stupid callback scheduler.

There is no reak callback scheduler and previous behavior causes
bad things during hard congestion (like BGP hold timeouts).

Smart callback scheduler is still missing, but main loop was
changed such that it first processes all tx callbacks (which...

46eb80d5 09/17/2009 03:52 PM Ondrej Zajicek

Fixes headers for uintptr_t (and build on NetBSD).

be862406 09/08/2009 11:45 AM Ondrej Zajicek

Temporary OSPFv3 development commit.

Finally, it is working.

daeeb8e9 09/04/2009 09:24 AM Ondrej Zajicek

Clear memory allocated by ralloc().

This also fixes bug that timer->recurrent was not cleared
in tm_new() and unexpected recurrence of startup timer
in BGP confused state machine and caused crash.

f9c799a0 09/04/2009 09:06 AM Ondrej Zajicek

Temporary OSPFv3 development commit (changing multicast support).

061ab802 08/27/2009 04:25 PM Ondrej Zajicek

Temporary OSPFv3 development commit

b49e6f5a 08/25/2009 02:42 PM Ondrej Zajicek

Temporary OSPFv3 development commit

54d70d3e 07/23/2009 08:21 PM Ondrej Zajicek

Fixes compiler warning in OFFSETOF.

2f6483cd 07/23/2009 02:06 PM Ondrej Zajicek

Adds %R printf directive for Router ID.

d1abbeac 07/06/2009 05:07 PM Ondrej Zajicek

Fixes memory alignment problems on Sparc64.

Not quite standard construction, i should add
some autoconf macro.

Not tested yet.

789772ed 06/18/2009 05:20 PM Ondrej Zajicek

Implements option that changes BGP listening socket parametres.

1b3b3e34 06/18/2009 12:32 PM Ondrej Zajicek

Minor bugfixes.

3d15dcdb 06/10/2009 09:45 PM Ondrej Zajicek

Changes OSPF to generate stub networks for non-primary addresses.

Also does some reorganization in RT LSA announcement.

c60cdd8c 03/31/2009 07:17 PM Ondrej Zajicek

Cleanup changes

b1a597e0 03/31/2009 10:55 AM Ondrej Zajicek

Reimplementation of prefix sets.

Prefix sets were broken beyond any repair and have to be reimplemented.
They are reimplemented using a trie with bitmasks in nodes.
There is also change in the interpretation of minus prefix pattern,
but the old interpretation was already inconsistent with...

cb530392 02/26/2009 01:23 PM Ondrej Zajicek

Rate limit for most abundant log messages

02a9eeeb 01/12/2009 01:40 PM Ondrej Zajicek

Slist update

083c43e2 12/25/2008 10:55 AM Ondrej Zajicek

fixes some 64-bit related bugs.

Filter code used 'aux' integer field of 'symbol' struct to store ptr
to next symbol and both 'aux2' and 'def' fields for value.
Changed to just 'def' for value and 'aux2' for ptr to next symbol.
Also another minor bugfix.

b933281e 12/18/2008 10:26 PM Ondrej Zajicek

Fixes nasty bug in event processing.

WALK_LIST_DELSAFE (in ev_run_list) is not safe with regard
to deletion of next node. When some events are rescheduled
during event execution, it may lead to deletion of next
node and some events are skipped. Such skipped nodes remain...

a39b165e 11/01/2008 03:58 PM Ondrej Zajicek

Multihop BGP was completely broken, because listening socket has always
ttl 1.

d51aa281 10/26/2008 09:42 PM Ondrej Zajicek

Implementation of MD5 authentication of BGP sessions.

057021df 08/25/2008 11:19 AM Martin Mares

Fix behavior of ipa_opposite().

It was giving wrong results on /30 networks.

9831e591 06/05/2004 09:58 AM Martin Mares

Staticized lots of local functions.

2f6de49f 06/05/2004 09:57 AM Martin Mares

Better prototypes.

fab37e81 06/05/2004 09:27 AM Martin Mares

One more in the library.

e98bc2ea 06/05/2004 09:05 AM Martin Mares

Renamed log() to log_msg(), but still keeping the old name as a macro.
This is done to avoid clashes with gcc-3.3 which has built-in logarithms :)

5da8f82f 06/05/2004 09:01 AM Martin Mares

A better comment.

e7ef86a5 06/04/2004 06:51 PM Ondrej Filip

OSPF is ready for changing MTU.

7fdd338c 06/01/2004 10:28 AM Ondrej Filip


38a608c5 05/31/2004 09:48 PM Martin Mares

Rewritten the I/O loop. All socket operations are now safe, meaning that
you can delete the socket from anywhere in the hooks and nothing should break.
Also, the receive/transmit buffers are now regular xmalloc()'ed buffers,
not separate resources which would need shuffling around between pools....

206f59df 05/31/2004 09:02 PM Martin Mares


2cc37815 05/31/2004 06:47 PM Martin Mares

Added rmove() (by Andreas, tweaked by me).

1bd897dd 05/31/2004 05:27 PM Ondrej Filip

Changed of comments.

7dbd4fd3 05/31/2004 05:13 PM Ondrej Filip

alloca.h added

0e6eef62 05/31/2004 05:07 PM Ondrej Filip

Use #include "alloca.h"

012279f3 05/31/2004 01:59 PM Ondrej Filip

Some include added.

d93fb7e6 05/31/2004 01:58 PM Ondrej Filip

#ifndef ALIGN - it is defined on *BSD

47f18ac3 11/13/2002 08:47 AM Martin Mares

ABS should be a macro.

30b77304 08/19/2001 11:11 AM Martin Mares

IP address formatting now uses the same rules as formatting of strings
with two exceptions:

o  Any non-zero field width is automatically replaced by standard
IP address width. This hides dependences on IPv4/IPv6.
o %#I generates hexadecimal form of the address....
27e993fb 02/20/2001 09:49 AM Martin Mares

Fixed duplicity in log category numbering.

Thanks to Zheng Yuan for spotting this.

0766e962 01/17/2001 08:32 AM Martin Mares

Bug fix from Zheng Yuan <>.

a2d01907 01/15/2001 09:24 AM Martin Mares

Added an explanatory comment.

725270cb 06/08/2000 12:37 PM Martin Mares

Fixes for the programmer's manual.

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.

3df89cef 06/07/2000 01:18 AM Ondrej Filip


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

Documented sockets, events and timers.

5cc1e1f8 06/05/2000 11:41 AM Martin Mares

Documented memory resources.

7722938d 06/04/2000 06:34 PM Martin Mares

Added library progdocs.

38cf78a9 05/31/2000 01:30 PM Martin Mares

Added the introduction chapter of progdoc.

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

Updated all the Doc files to new format.

cfa6ab05 05/30/2000 10:47 PM Martin Mares

Added ipa_absolutize() which converts link-scope addresses to global scope
ones according to prefix assigned to the corresponding interface.

be77b689 05/16/2000 03:02 PM Martin Mares

Poisoning: take there...

e2f4f275 05/16/2000 01:53 PM Martin Mares

Oops, the poison was too deadly...

b8e60d35 05/16/2000 01:51 PM Martin Mares

Added poisoning of free'd objects when we're debugging.

758458be 05/13/2000 11:17 AM Martin Mares

Unified parsing of prefixes.

Had to rename `prefix' in filters to `fprefix'.

c9763428 05/08/2000 10:33 PM Martin Mares

Implemented debugging function rlookup() which you can call from gdb
to see what resource does the address given as a parameter belong to.

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

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

2a149b18 05/04/2000 08:38 PM Martin Mares

Unused variables in IPv6 code.

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

53943a00 05/02/2000 04:10 PM Martin Mares

Defined format specifier `%M' which behaves as `%m', but takes the
error code as an argument.

Use it in socket hooks where we really shouldn't rely on errno containing
the right value or even existing.

85a291ff 05/02/2000 03:21 PM Martin Mares

IPv6 address classification fixes.

8f6accb5 04/27/2000 10:28 PM Martin Mares

Event handlers no longer return re-queue flag. Instead of using it, just
call ev_schedule() on the same handler which should work perfectly now.

77506349 04/12/2000 01:21 PM Martin Mares

Introduced `ARRAY_SIZE' macro to replace all the sizeof(a)/sizeof(*a) constructs.

ac4b4683 03/31/2000 11:40 PM Martin Mares

Removal of useless includes continues...

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.

3ee2310c 03/29/2000 10:57 PM Martin Mares

Avoid conflicts with libraries defining their own xmalloc by defining
xmalloc to bird_xmalloc internally.

a8f944cb 03/21/2000 03:51 PM Martin Mares

Wrote real version of unaligned data access functions (needed for BGP).

e68dd11c 03/12/2000 09:47 PM Martin Mares

Use do { } while(0) instead of empty DBG if not debugging.

3cbfcafe 03/07/2000 09:04 PM Martin Mares

DBG calls debug() if defined(LOCAL_DEBUG) || defined(GLOBAL_DEBUG).

35496679 03/05/2000 10:48 PM Martin Mares

Implemented real slab allocator. If you suspect it from being buggy,
just #define FAKE_SLAB at the top of lib/slab.c to bypass it.

4ebbbd40 03/01/2000 12:15 PM Martin Mares

Changed comments regarding hash function.

14a6c2a7 03/01/2000 12:03 PM Martin Mares

IP_PREC_INTERNET_CONTROL for IPv6 (see the comment).

ebc793a5 01/16/2000 05:39 PM Martin Mares

No more problems when events get scheduled during event processing.

12a9d139 12/16/1999 01:13 PM Martin Mares

ipv6_compare() accepts non-lvalue arguments as well. This makes filters
compile with IPv6.

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.

ea32afb7 11/25/1999 03:34 PM Martin Mares

Added ip_scope_text() for translating of scopes to strings.

84a7d7f7 11/17/1999 12:01 PM Martin Mares

ev_run() now returns whether the event has been requeued or not.
ev_run_list() now returns number of events which remain in the list.

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

Implemented unix-domain sockets.

0d70292d 10/29/1999 12:08 PM Martin Mares

Events now return a value. If it's non-zero, the event is re-queued
for processing in next event cycle. This can be used to prevent background
actions (hint: user commands) from hogging the CPU for too long time.

92af6f30 10/29/1999 10:08 AM Martin Mares

Simplify handling of free chunks.

89dc383a 10/12/1999 07:46 AM Martin Mares

Changed syntax of ip_class_mask, the old one was stupid.

507cb9e5 10/02/1999 10:55 AM Martin Mares

Don't forget to free large blocks.

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

Added a function for generating 32-bit random numbers.

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....
b6628a8c 08/03/1999 07:31 PM Martin Mares

Added macros for walking lists backwards.

5e13ffe6 08/03/1999 07:29 PM Martin Mares

Faster checksum function.

3e1f3061 06/01/1999 01:57 PM Martin Mares

Defined IP_PREC_INTERNET_CONTROL and made all (well, both :)) protocols
use it when creating sockets.

139ca21d 05/31/1999 01:21 PM Martin Mares

Added sk_send_buffer_empty().

daeb6039 05/24/1999 05:37 PM Ondrej Filip

Small bug in ipv4_skip_header.

b23c5e0f 05/14/1999 06:03 PM Martin Mares

Added ip_skip_header() and modified OSPF to use it.