Martin Mares
38a608c55a
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.
sk_close() is gone, use rfree() instead.
2004-05-31 21:48:19 +00:00
Martin Mares
5f2a6a9ff3
Fix handling on full pipe to client in bird. Prevent packet overflows
...
for even only medium sized route table output. Fix a strange garbled
output problem in the client. The latter seems to be caused by some
library doing tcflush while there is still command output pending. So
the best fix here is to do fflush and then tcdrain. Note that this
problem occurs only under certain load situations and is not too easy to
reproduce.
(by Andreas)
2004-05-31 17:55:30 +00:00
Ondrej Filip
c222500d8e
Previous change was mistake.
2004-05-31 17:00:22 +00:00
Ondrej Filip
b1a1fabac7
*BSD port added. (Tested on FreeBSD and NetBSD)
2004-05-31 13:25:00 +00:00
Martin Mares
c197d44e17
This probably IS the memory leak we're looking for. Alien routes weren't
...
correctly disposed of.
2003-08-13 22:07:55 +00:00
Martin Mares
7d875e094b
Added missing includes.
2002-11-13 08:47:06 +00:00
Martin Mares
a19cd81100
Added missing #include and wondering how could it ever compile.
2002-11-13 08:30:56 +00:00
Martin Mares
01b776e117
Fixed <time.h> vs. <sys/time.h> problems.
2001-03-06 13:40:39 +00:00
Martin Mares
f9eb8f7e06
If compiled with --enable-debug, don't even try to log to syslog unless
...
the user forces it in the config file.
2000-06-19 23:50:02 +00:00
Martin Mares
4daf03e513
Use our own SUN_LEN if libc doesn't provide it.
2000-06-16 23:12:47 +00:00
Martin Mares
5ddf4a58f9
During initialization, log to both syslog and stderr. When a configuration
...
file has been read and it doesn't specify any logging, log to syslog only
(if syslog is not available, then stderr).
2000-06-09 07:32:57 +00:00
Martin Mares
0b3bf4b1d8
Use SUN_LEN() for length of UNIX domain addresses. This should fix problems
...
with connection to clients on libc5 machines.
2000-06-09 07:30:22 +00:00
Martin Mares
725270cb1d
Fixes for the programmer's manual.
2000-06-08 12:37:21 +00:00
Martin Mares
c62d1c19a9
... as well there.
2000-06-08 10:48:51 +00:00
Martin Mares
ec423cc725
Updated CLI helps.
2000-06-08 10:25:02 +00:00
Martin Mares
58f7d004fd
Fixes to the progdoc.
2000-06-07 13:25:53 +00:00
Martin Mares
2e9b24211a
Spelling fixes to progdoc.
2000-06-07 12:29:08 +00:00
Martin Mares
73275d855d
Documented all the sysdeps (only briefly, I admit).
...
Except for Filters, RIP and OSPF, the progdocs are complete.
2000-06-05 12:49:04 +00:00
Martin Mares
525fa2c1f0
Documented sockets, events and timers.
2000-06-05 12:19:12 +00:00
Martin Mares
10304bed43
Split random number functions off io.c, so that they can be documented
...
separately.
2000-06-05 11:46:40 +00:00
Martin Mares
b594ad2386
tm_format_reltime() works with both past and future timestamps.
2000-06-01 15:13:23 +00:00
Martin Mares
4a91150175
Updated for new scope handling.
...
Also, provide proper address scopes in struct ifa.
2000-06-01 12:58:41 +00:00
Martin Mares
2f5e5ff9d6
Before configuration file is read, log to _both_ syslog and stderr.
2000-05-31 22:28:36 +00:00
Martin Mares
fcb5f4a725
Updated all the Doc files to new format.
2000-05-31 11:30:18 +00:00
Martin Mares
4761efdb43
Tracing of CLI connections/commands can be now controlled
...
by `debug commands <level>' in the configuration. Level 0 means
no tracing, 1 means connections only, 2 includes all commands.
2000-05-29 22:10:18 +00:00
Martin Mares
e67af42805
Support --version and --help.
2000-05-29 21:58:35 +00:00
Martin Mares
f990fc61e0
When in persist mode, don't delete routes from kernel tables even if
...
they cease to exist in our routing tables due to protocols having shut down.
2000-05-16 13:36:38 +00:00
Martin Mares
02bd064ab7
Adapted to new rt_notify semantics.
2000-05-13 11:02:02 +00:00
Martin Mares
5ff0a270cb
In non-debug mode, set default logging to syslog only, not stderr.
2000-05-08 22:31:58 +00:00
Martin Mares
4524331a3d
Fixed type in daemonization code.
2000-05-08 22:31:34 +00:00
Martin Mares
0bcba21e89
When not debugging, daemonize automatically.
2000-05-08 19:10:36 +00:00
Martin Mares
818ff1e2b7
When reporting a bug(), call abort() instead of exit(), so that we
...
can analyse the core.
2000-05-08 12:38:00 +00:00
Martin Mares
c304392e65
Some less socket error messages.
2000-05-08 12:37:39 +00:00
Martin Mares
9cbf43eb8a
Don't report refused connections.
2000-05-08 12:09:10 +00:00
Martin Mares
916c8c0aba
Use preferences properly.
2000-05-08 10:40:00 +00:00
Martin Mares
1151401e2b
Don't crash when reporting deleted routes.
...
Set preferences correctly.
2000-05-08 10:38:51 +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
9a220cabbc
#ifdef out lots of debugging information.
...
The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'
commands.
2000-05-04 20:52:28 +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
2edb31b097
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
...
C declarations etc.).
2000-04-28 15:11:10 +00:00
Martin Mares
f75e3bbc01
Fixed a couple of nasty CLI bugs which were triggered on long or multi-part
...
outputs. It took a whole evening to hunt them down, but now the CLI seems
to work fine.
Now I run three BGP connections with several thousand routes!
2000-04-27 22:35:08 +00:00
Martin Mares
e1ddd99377
Changed handling of incoming connections, so that we can send data
...
from the send hook without worrying about existence of socket buffers.
Also, don't forget to copy peer addresses.
2000-04-26 13:26:11 +00:00
Martin Mares
0cadd5f531
Removed several FIXME's.
2000-04-26 12:33:37 +00:00
Martin Mares
00c0c18aea
Allow sk_close(NULL).
2000-04-25 23:07:47 +00:00
Martin Mares
f380aa60fa
IPv6 compiles with glibc 2.1.
2000-04-20 23:05:41 +00:00
Martin Mares
3991d84e8f
Changed initialization of protocol list -- now we call proto_build() instead
...
of calling the protocols manually.
Implemented printing of dynamic attributes in `show route all'.
Each protocol can now register its own attribute class (protocol->attr_class,
set to EAP_xxx) and also a callback for naming and formatting of attributes.
The callback can return one of the following results:
GA_UNKNOWN Attribute not recognized.
GA_NAME Attribute name recognized and put to the buffer,
generic code should format the value.
GA_FULL Both attribute name and value put to the buffer.
Please update protocols generating dynamic attributes to provide
the attr_class and formatting hook.
2000-04-01 10:19:47 +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
1cf716f075
Handle EINPROGRESS properly.
...
Set IP_DONTROUTE sockopt only if sk->ttl == 1.
2000-03-20 21:49:21 +00:00