Age | Commit message (Collapse) | Author | |
---|---|---|---|
1999-04-12 | Fixed 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-06 | ip_pton: Avoid modification of the string we're converting. | Martin Mares | |
1999-03-29 | Clarify resource dumps and include them in the main debugging dump. | Martin Mares | |
1999-03-29 | Added lp_flush() which flushes contents of a linear pool, leaving all the | Martin Mares | |
memory available for subsequent allocations from the same pool. Both flushing and re-using the memory costs just few instructions. | |||
1999-03-29 | Moved all system-dependent #include's containing endianity conversion | Martin Mares | |
functions to sysdep header endian.h. | |||
1999-03-29 | #define NULL if not defined by system includes. | Martin Mares | |
1999-03-04 | Use dmalloc instead of EFence when available (dmalloc has lot of improvements | Martin Mares | |
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' checks by default. Also introduced mb_allocz() for cleared mb_alloc(). | |||
1999-03-01 | Added SK_MAGIC type sockets for internal use by system dependent code, | Martin Mares | |
especially for netlink communication. | |||
1999-02-11 | Real implementation of protocol state machines. Delayed startup/shutdown | Martin Mares | |
should work now. Initial feeding of protocols by interfaces/routes is done from the event queue to prevent unwanted recursion. | |||
1999-02-11 | Grrr, forgot to commit the event routines themselves :| | Martin Mares | |
1999-02-11 | Added simple event scheduling system to avoid recursive calling | Martin Mares | |
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 global event list handled by the following functions: ev_schedule Schedule event to be called at the next event scheduling point. If the event was already scheduled, it's just re-linked to the end of the list. ev_postpone Postpone an already scheduled event, so that it won't get called. Postponed events can be scheduled again by ev_schedule(). You can also create custom event lists to build your own synchronization primitives. Just use: ev_init_list to initialize an event list ev_enqueue to schedule event on specified event list ev_postpone works as well for custom lists ev_run_list to run all events on your custom list ev_run to run a specific event and dequeue it | |||
1999-02-05 | Added several parentheses to MIN/MAX macros. | Martin Mares | |
1999-01-23 | Replaced the old ugly ipv6 compilation hack by a conditional in Modules. | Martin Mares | |
1998-12-20 | Finer grained logging levels: | Martin Mares | |
#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. */ #define L_FATAL "\006" /* Fatal errors */ #define L_TRACE "\002" /* Protocol tracing */ #define L_INFO "\003" /* Informational messages */ #define L_REMOTE "\004" /* Remote protocol errors */ #define L_WARN "\004" /* Local warnings */ #define L_ERR "\005" /* Local errors */ #define L_AUTH "\006" /* Authorization failed etc. */ #define L_FATAL "\007" /* Fatal errors */ #define L_BUG "\010" /* BIRD bugs */ Introduced bug() which is like die(), but with level L_BUG. Protocols should _never_ call die() as it should be used only during initialization and on irrecoverable catastrophic events like out of memory. Also introduced ASSERT() which behaves like normal assert(), but it calls bug() when assertion fails. When !defined(DEBUGGING), it gets ignored. | |||
1998-12-20 | New hash functions according to benchmarks posted yesterday. (The IPv6 | Martin Mares | |
version has not been benchmarked yet due to insufficient test data.) Now ipa_hash() returns a uniformely distributed 16-bit value. | |||
1998-12-20 | Implemented deletion/insertion/asynchronous-walk lists. | Martin Mares | |
For example of their use, look at comments in lib/slists.h. | |||
1998-12-06 | Name cleanups as suggested by Pavel: | Martin Mares | |
- 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. | |||
1998-11-29 | Added function for shell-like pattern matching. Will be used for | Martin Mares | |
matching interface names in protocol-to-iface bindings. | |||
1998-11-29 | Renamed `DEBUG' symbol to `DEBUGGING' to prevent collisions with token | Martin Mares | |
names and include files. | |||
1998-11-27 | Implemented ip_pton() | Martin Mares | |
1998-11-27 | Removed prototype of rp_free() since this function has never existed. | Martin Mares | |
1998-11-21 | Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129. | Martin Mares | |
1998-11-16 | Implemented snprintf and similar functions. It took a lot of thinking, | Martin Mares | |
but the modifications were relatively simple and straightforward. | |||
1998-10-18 | Added ipa_from_u32 and ipa_from_u32 for use in the kernel sync code (IPv4 only). | Martin Mares | |
Don't ever think of using it in routing protocols. | |||
1998-10-17 | WALK_LIST_DELSAFE now actually works (it really couldn't since it didn't | Martin Mares | |
reference list head at all). | |||
1998-10-14 | Lists: unneccessary test killed, make code friendly to non-gcc. | Pavel Machek | |
1998-07-20 | Reversed buggy patch. | Pavel Machek | |
1998-07-10 | Removed format specification attributes for log() and debug() until | Martin Mares | |
GCC is fixed to handle custom formats. | |||
1998-07-10 | Added ipa_class_mask() which guesses netmask for classful addressing. | Martin Mares | |
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 ipa_validate() first). | |||
1998-07-09 | Adding MIN()/MAX() macros | Pavel Machek | |
1998-07-09 | Adding walk list which permits you to delete entries. | Pavel Machek | |
1998-06-17 | Oops, forgot '%m'... | Martin Mares | |
1998-06-17 | Added local version of sprintf (bsprintf and bvsprintf) offering few new | Martin Mares | |
format strings: %I IP address %#I IP address in hexadecimal %1I IP address padded to full length %m strerror(errno) | |||
1998-06-17 | ip_ntop() and ip_ntox() for IPv4. | Martin Mares | |
1998-06-17 | Added function for converting of IP addresses to printable form. | Martin Mares | |
1998-06-01 | Added ipa_xor() and ipa_in_net(). | Martin Mares | |
1998-05-26 | Added generic functions for unaligned data access. | Martin Mares | |
1998-05-26 | Resource pools are now named. | Martin Mares | |
1998-05-26 | Added ipa_opposite(). | Martin Mares | |
1998-05-26 | DBG now calls debug() instead of sending it to log(). | Martin Mares | |
1998-05-24 | Added few socket declarations. | Martin Mares | |
1998-05-24 | Staticized some variables and functions. | Martin Mares | |
1998-05-24 | Added declarations of all our socket functions. | Martin Mares | |
1998-05-15 | The library is now glued together from generic and OS-dependent parts | Martin Mares | |
by the `mergedirs' script. Few more IP address manipulation functions and some fixes. | |||
1998-05-03 | BIRD library: The story continues. | Martin Mares | |
Complete resource manages and IP address handling. | |||
1998-04-28 | Changed #include <x/y> to #include "x/y" for our local includes, so that | Martin Mares | |
gcc -MM can be used to separate them from the system ones. Added automatic generation of dependencies. | |||
1998-04-23 | Added IP address manipulation macros, interface declarations and logging. | Martin Mares | |
1998-04-22 | First look at data structures. More to come tomorrow... | Martin Mares | |