Martin Mares
c4c63eecc3
Added several parentheses to MIN/MAX macros.
1999-02-05 21:29:19 +00:00
Martin Mares
294c182eb1
Replaced the old ugly ipv6 compilation hack by a conditional in Modules.
1999-01-23 21:08:59 +00:00
Martin Mares
98e87c8628
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. */
#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 14:24:35 +00:00
Martin Mares
a6f250f5c6
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.
1998-12-20 13:57:49 +00:00
Martin Mares
a05406e69c
Implemented deletion/insertion/asynchronous-walk lists.
...
For example of their use, look at comments in lib/slists.h.
1998-12-20 13:56:27 +00:00
Martin Mares
b35d72ac66
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.
1998-12-06 11:59:18 +00:00
Martin Mares
dee929d868
Added function for shell-like pattern matching. Will be used for
...
matching interface names in protocol-to-iface bindings.
1998-11-29 14:47:24 +00:00
Martin Mares
0cf86f0fc3
Renamed DEBUG' symbol to
DEBUGGING' to prevent collisions with token
...
names and include files.
1998-11-29 14:38:34 +00:00
Martin Mares
dfeef5d8bb
Implemented ip_pton()
1998-11-27 19:29:27 +00:00
Martin Mares
a3afae585a
Removed prototype of rp_free() since this function has never existed.
1998-11-27 19:29:00 +00:00
Martin Mares
4254dc45e7
Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129.
1998-11-21 10:25:34 +00:00
Martin Mares
53a416d376
Implemented snprintf and similar functions. It took a lot of thinking,
...
but the modifications were relatively simple and straightforward.
1998-11-16 21:40:35 +00:00
Martin Mares
ab3a76a382
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.
1998-10-18 22:22:28 +00:00
Martin Mares
d92882be9b
WALK_LIST_DELSAFE now actually works (it really couldn't since it didn't
...
reference list head at all).
1998-10-17 11:02:39 +00:00
Pavel Machek
cf3934c569
Lists: unneccessary test killed, make code friendly to non-gcc.
1998-10-14 13:27:53 +00:00
Pavel Machek
a872b0f7da
Reversed buggy patch.
1998-07-20 20:05:40 +00:00
Martin Mares
1be52eea57
Removed format specification attributes for log() and debug() until
...
GCC is fixed to handle custom formats.
1998-07-10 08:39:34 +00:00
Martin Mares
786d0bb9e7
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
ipa_validate() first).
1998-07-10 08:38:29 +00:00
Pavel Machek
cf3527e2f4
Adding MIN()/MAX() macros
1998-07-09 19:36:05 +00:00
Pavel Machek
aea2dcabdc
Adding walk list which permits you to delete entries.
1998-07-09 19:35:23 +00:00
Martin Mares
d997534f65
Oops, forgot '%m'...
1998-06-17 14:34:13 +00:00
Martin Mares
ecacdfa434
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)
1998-06-17 14:31:36 +00:00
Martin Mares
97d858c590
ip_ntop() and ip_ntox() for IPv4.
1998-06-17 14:28:46 +00:00
Martin Mares
6b5e06abb5
Added function for converting of IP addresses to printable form.
1998-06-17 14:26:30 +00:00
Martin Mares
0fe3b28b68
Added ipa_xor() and ipa_in_net().
1998-06-01 21:36:58 +00:00
Martin Mares
b1487ee909
Added generic functions for unaligned data access.
1998-05-26 21:38:06 +00:00
Martin Mares
ed68a5c6a4
Resource pools are now named.
1998-05-26 21:37:37 +00:00
Martin Mares
d5417b379f
Added ipa_opposite().
1998-05-26 21:36:48 +00:00
Martin Mares
5222c46ceb
DBG now calls debug() instead of sending it to log().
1998-05-26 21:36:17 +00:00
Martin Mares
d804db0dab
Added few socket declarations.
1998-05-24 15:00:48 +00:00
Martin Mares
d4bc8dc000
Staticized some variables and functions.
1998-05-24 14:46:20 +00:00
Martin Mares
480effedac
Added declarations of all our socket functions.
1998-05-24 09:19:26 +00:00
Martin Mares
25697773b5
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.
1998-05-15 07:56:13 +00:00
Martin Mares
18c8241a91
BIRD library: The story continues.
...
Complete resource manages and IP address handling.
1998-05-03 16:43:39 +00:00
Martin Mares
1feea03e74
Changed #include <x/y> to #include "x/y" for our local includes, so that
...
gcc -MM can be used to separate them from the system ones.
Added automatic generation of dependencies.
1998-04-28 14:39:34 +00:00
Martin Mares
c40e05a0df
Added IP address manipulation macros, interface declarations and logging.
1998-04-23 14:01:15 +00:00
Martin Mares
58ef912c6b
First look at data structures. More to come tomorrow...
1998-04-22 12:58:34 +00:00