| Branch: | Revision:

iof-bird-daemon / lib @ 725270cb

# Date Author 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.

1a54d44a 05/10/1999 09:37 PM Martin Mares

Added packet checksumming code. Watch the comments for an explanation.

ec8b579e 04/27/1999 04:03 PM Martin Mares

Recognize site scope for IPv4 addresses (prefixes reserved for private

Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.

2f5d1544 04/12/1999 08:26 PM Martin Mares

Added ipa_compare as requested.

5a99ade4 04/12/1999 02:57 PM Martin Mares

Fixed a couple of bugs in handling of multicast sockets.

See comments in lib/socket.h for a detailed guide on how to use them.

7976a574 04/06/1999 09:31 PM Martin Mares

ip_pton: Avoid modification of the string we're converting.

5bc512aa 03/29/1999 08:14 PM Martin Mares

Clarify resource dumps and include them in the main debugging dump.

f5c687f7 03/29/1999 07:35 PM Martin Mares

Added lp_flush() which flushes contents of a linear pool, leaving all the
memory available for subsequent allocations from the same pool. Both flushing
and re-using the memory costs just few instructions.

f54801ff 03/29/1999 07:14 PM Martin Mares

Moved all system-dependent #include's containing endianity conversion
functions to sysdep header endian.h.

61340248 03/29/1999 07:13 PM Martin Mares

#define NULL if not defined by system includes.

7a2105be 03/04/1999 11:36 AM Martin Mares

Use dmalloc instead of EFence when available (dmalloc has lot of improvements
over EFence and also hopefully smaller memory overhead, but sadly it's non-free
for commercial use).

If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable'...

b4b3b39e 03/01/1999 10:30 PM Martin Mares

Added SK_MAGIC type sockets for internal use by system dependent code,
especially for netlink communication.

67bd949a 02/11/1999 10:59 PM Martin Mares

Real implementation of protocol state machines. Delayed startup/shutdown
should work now. Initial feeding of protocols by interfaces/routes is
done from the event queue to prevent unwanted recursion.

3b15402f 02/11/1999 10:18 PM Martin Mares

Grrr, forgot to commit the event routines themselves :|

e8f73195 02/11/1999 09:18 PM Martin Mares

Added simple event scheduling system to avoid recursive calling
of various callbacks.

Events are just another resource type objects (thus automatically freed
and unlinked when the protocol using them shuts down). Each event can
be linked in at most one event list. For most purposes, just use the...

c4c63eec 02/05/1999 09:29 PM Martin Mares

Added several parentheses to MIN/MAX macros.

294c182e 01/23/1999 09:08 PM Martin Mares

Replaced the old ugly ipv6 compilation hack by a conditional in Modules.

98e87c86 12/20/1998 02:24 PM Martin Mares

Finer grained logging levels:

#define L_DEBUG "\001" /* Debugging messages /
#define L_INFO "\002" /
Informational messages /
#define L_WARN "\003" /
Warnings /
#define L_ERR "\004" /
Errors /
#define L_AUTH "\005" /
Authorization failed etc. */...

a6f250f5 12/20/1998 01:57 PM Martin Mares

New hash functions according to benchmarks posted yesterday. (The IPv6
version has not been benchmarked yet due to insufficient test data.)
Now ipa_hash() returns a uniformely distributed 16-bit value.

a05406e6 12/20/1998 01:56 PM Martin Mares

Implemented deletion/insertion/asynchronous-walk lists.
For example of their use, look at comments in lib/slists.h.

b35d72ac 12/06/1998 11:59 AM Martin Mares

Name cleanups as suggested by Pavel:

- cfg_strcpy() > cfg_strdup()
mempool -> linpool, mp_* -> lp_* [to avoid confusion with memblock, mb_*]

Anyway, it might be better to stop ranting about names and do some real work.

dee929d8 11/29/1998 02:47 PM Martin Mares

Added function for shell-like pattern matching. Will be used for
matching interface names in protocol-to-iface bindings.

0cf86f0f 11/29/1998 02:38 PM Martin Mares

Renamed `DEBUG' symbol to `DEBUGGING' to prevent collisions with token
names and include files.

dfeef5d8 11/27/1998 07:29 PM Martin Mares

Implemented ip_pton()

a3afae58 11/27/1998 07:29 PM Martin Mares

Removed prototype of rp_free() since this function has never existed.

4254dc45 11/21/1998 10:25 AM Martin Mares

Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129.

53a416d3 11/16/1998 09:40 PM Martin Mares

Implemented snprintf and similar functions. It took a lot of thinking,
but the modifications were relatively simple and straightforward.

ab3a76a3 10/18/1998 10:22 PM Martin Mares

Added ipa_from_u32 and ipa_from_u32 for use in the kernel sync code (IPv4 only).
Don't ever think of using it in routing protocols.

d92882be 10/17/1998 11:02 AM Martin Mares

WALK_LIST_DELSAFE now actually works (it really couldn't since it didn't
reference list head at all).

cf3934c5 10/14/1998 01:27 PM Pavel Machek

Lists: unneccessary test killed, make code friendly to non-gcc.

a872b0f7 07/20/1998 08:05 PM Pavel Machek

Reversed buggy patch.

1be52eea 07/10/1998 08:39 AM Martin Mares

Removed format specification attributes for log() and debug() until
GCC is fixed to handle custom formats.

786d0bb9 07/10/1998 08:38 AM Martin Mares

Added ipa_class_mask() which guesses netmask for classful addressing.
For pure A/B/C class addresses it just returns the class netmask, for
subnets it tries to guess subnet mask. Please make sure the address
you pass to this function is really a valid host address (i.e., call...

cf3527e2 07/09/1998 07:36 PM Pavel Machek

Adding MIN/MAX macros

aea2dcab 07/09/1998 07:35 PM Pavel Machek

Adding walk list which permits you to delete entries.

d997534f 06/17/1998 02:34 PM Martin Mares

Oops, forgot '%m'...

ecacdfa4 06/17/1998 02:31 PM Martin Mares

Added local version of sprintf (bsprintf and bvsprintf) offering few new
format strings:

%I    IP address
%#I IP address in hexadecimal
%1I IP address padded to full length
%m strerror(errno)
97d858c5 06/17/1998 02:28 PM Martin Mares

ip_ntop() and ip_ntox() for IPv4.

6b5e06ab 06/17/1998 02:26 PM Martin Mares

Added function for converting of IP addresses to printable form.

0fe3b28b 06/01/1998 09:36 PM Martin Mares

Added ipa_xor() and ipa_in_net().

b1487ee9 05/26/1998 09:38 PM Martin Mares

Added generic functions for unaligned data access.

ed68a5c6 05/26/1998 09:37 PM Martin Mares

Resource pools are now named.

d5417b37 05/26/1998 09:36 PM Martin Mares

Added ipa_opposite().

5222c46c 05/26/1998 09:36 PM Martin Mares

DBG now calls debug() instead of sending it to log().

d804db0d 05/24/1998 03:00 PM Martin Mares

Added few socket declarations.

d4bc8dc0 05/24/1998 02:46 PM Martin Mares

Staticized some variables and functions.

480effed 05/24/1998 09:19 AM Martin Mares

Added declarations of all our socket functions.

25697773 05/15/1998 07:56 AM Martin Mares

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.

18c8241a 05/03/1998 04:43 PM Martin Mares

BIRD library: The story continues.

Complete resource manages and IP address handling.