Martin Mares
c976342828
Implemented debugging function rlookup() which you can call from gdb
...
to see what resource does the address given as a parameter belong to.
2000-05-08 22:33:38 +00:00
Martin Mares
ab1129c1bd
Added skeleton Doc files for the whole developer's documentation.
2000-05-05 17:17:42 +00:00
Martin Mares
2a149b18cc
Unused variables in IPv6 code.
2000-05-04 20:38:44 +00:00
Martin Mares
93a786cb03
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.)
2000-05-04 20:30:36 +00:00
Martin Mares
53943a0022
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.
2000-05-02 16:10:04 +00:00
Martin Mares
85a291ff30
IPv6 address classification fixes.
2000-05-02 15:21:51 +00:00
Martin Mares
8f6accb5bb
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.
2000-04-27 22:28:49 +00:00
Martin Mares
7750634946
Introduced `ARRAY_SIZE' macro to replace all the sizeof(a)/sizeof(*a) constructs.
2000-04-12 13:21:23 +00:00
Martin Mares
ac4b4683ae
Removal of useless includes continues...
2000-03-31 23:40:00 +00:00
Martin Mares
a37410cbdd
Use bsprintf() instead of sprintf().
2000-03-31 23:33:03 +00:00
Martin Mares
221135d6bf
Include "lib/string.h" instead of <string.h>. It should give us bzero()
...
and other non-portable functions on all systems.
2000-03-31 23:30:21 +00:00
Martin Mares
320f417357
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.
2000-03-30 10:43:37 +00:00
Martin Mares
3ee2310c5d
Avoid conflicts with libraries defining their own xmalloc by defining
...
xmalloc to bird_xmalloc internally.
2000-03-29 22:57:46 +00:00
Martin Mares
a8f944cb6e
Wrote real version of unaligned data access functions (needed for BGP).
2000-03-21 15:51:30 +00:00
Martin Mares
e68dd11c43
Use do { } while(0) instead of empty DBG if not debugging.
2000-03-12 21:47:25 +00:00
Martin Mares
3cbfcafecd
DBG calls debug() if defined(LOCAL_DEBUG) || defined(GLOBAL_DEBUG).
2000-03-07 21:04:14 +00:00
Martin Mares
3549667925
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.
2000-03-05 22:48:30 +00:00
Martin Mares
4ebbbd4079
Changed comments regarding hash function.
2000-03-01 12:15:20 +00:00
Martin Mares
14a6c2a705
IP_PREC_INTERNET_CONTROL for IPv6 (see the comment).
2000-03-01 12:03:43 +00:00
Martin Mares
ebc793a5f5
No more problems when events get scheduled during event processing.
2000-01-16 17:39:16 +00:00
Martin Mares
12a9d139ee
ipv6_compare() accepts non-lvalue arguments as well. This makes filters
...
compile with IPv6.
1999-12-16 13:13:22 +00:00
Martin Mares
a0c37b45e5
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.
1999-12-06 13:45:56 +00:00
Martin Mares
ea32afb765
Added ip_scope_text() for translating of scopes to strings.
1999-11-25 15:34:20 +00:00
Martin Mares
84a7d7f77c
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.
1999-11-17 12:01:11 +00:00
Martin Mares
b93abffae4
Implemented unix-domain sockets.
1999-10-29 12:09:29 +00:00
Martin Mares
0d70292d88
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.
1999-10-29 12:08:49 +00:00
Martin Mares
92af6f309b
Simplify handling of free chunks.
1999-10-29 10:08:27 +00:00
Martin Mares
89dc383a8c
Changed syntax of ip_class_mask, the old one was stupid.
1999-10-12 07:46:08 +00:00
Martin Mares
507cb9e58b
Don't forget to free large blocks.
1999-10-02 10:55:19 +00:00
Martin Mares
f651941402
Added a function for generating 32-bit random numbers.
1999-08-17 20:47:40 +00:00
Martin Mares
4f22c98185
Support for IPv6 sockets. How nice one doesn't have to ifdef around
...
ten years of API evolution :-)
1999-08-03 19:36:51 +00:00
Martin Mares
dce267832a
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.
o Router ID must be configured manually on IPv6 systems.
o Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts.
o Fixed few places where ipa_(hton|ntoh) was called as a function
returning converted address.
1999-08-03 19:36:06 +00:00
Martin Mares
b6628a8c98
Added macros for walking lists backwards.
1999-08-03 19:31:30 +00:00
Martin Mares
5e13ffe6f4
Faster checksum function.
1999-08-03 19:29:57 +00:00
Martin Mares
3e1f30610e
Defined IP_PREC_INTERNET_CONTROL and made all (well, both :)) protocols
...
use it when creating sockets.
1999-06-01 13:57:24 +00:00
Martin Mares
139ca21d05
Added sk_send_buffer_empty().
1999-05-31 13:21:07 +00:00
Ondrej Filip
daeb60393d
Small bug in ipv4_skip_header.
1999-05-24 17:37:45 +00:00
Martin Mares
b23c5e0ff4
Added ip_skip_header() and modified OSPF to use it.
1999-05-14 18:03:09 +00:00
Martin Mares
1a54d44a23
Added packet checksumming code. Watch the comments for an explanation.
1999-05-10 21:37:39 +00:00
Martin Mares
ec8b579e9c
Recognize site scope for IPv4 addresses (prefixes reserved for private
...
networks).
Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.
1999-04-27 16:03:17 +00:00
Martin Mares
2f5d154466
Added ipa_compare as requested.
1999-04-12 20:26:06 +00:00
Martin Mares
5a99ade413
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.
1999-04-12 14:57:46 +00:00
Martin Mares
7976a574b6
ip_pton: Avoid modification of the string we're converting.
1999-04-06 21:31:03 +00:00
Martin Mares
5bc512aa3a
Clarify resource dumps and include them in the main debugging dump.
1999-03-29 20:14:33 +00:00
Martin Mares
f5c687f791
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.
1999-03-29 19:35:47 +00:00
Martin Mares
f54801ffed
Moved all system-dependent #include's containing endianity conversion
...
functions to sysdep header endian.h.
1999-03-29 19:14:43 +00:00
Martin Mares
6134024815
#define NULL if not defined by system includes.
1999-03-29 19:13:36 +00:00
Martin Mares
7a2105becd
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'
checks by default.
Also introduced mb_allocz() for cleared mb_alloc().
1999-03-04 11:36:26 +00:00
Martin Mares
b4b3b39e20
Added SK_MAGIC type sockets for internal use by system dependent code,
...
especially for netlink communication.
1999-03-01 22:30:33 +00:00
Martin Mares
67bd949a52
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.
1999-02-11 22:59:06 +00:00