Statistics
| Branch: | Revision:

iof-bird-daemon / sysdep / unix / main.c @ a63e78c3

History | View | Annotate | Download (16 KB)

# Date Author Comment
67a2eb91 12/10/2017 12:18 PM Ondrej Zajicek (work)

Lib: Check size of nets

3e405fb1 12/07/2017 12:53 PM Ondrej Zajicek (work)

Nest: Update to new timers

02552526 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Replace old timers with microsecond timers

The old timer interface is still kept, but implemented by new timers. The
plan is to switch from the old inteface to the new interface, then clean
it up.

534215a1 12/07/2017 12:46 PM Ondrej Zajicek (work)

Timers: Split microsecond timers from BFD code to lib

8860e991 11/08/2016 06:27 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

c8cafc8e 11/08/2016 04:46 PM Ondrej Zajicek (work)

Minor code cleanups

cc5b93f7 11/08/2016 04:04 PM Ondrej Zajicek (work)

Merge tag 'v1.6.2' into int-new

3e236955 11/01/2016 01:52 PM Jan Moskyto Matejka

Build: switch on -Wextra, get rid of most of the warnings

There are several unresolved -Wmissing-field-initializers on older
versions of GCC than 5.1, all of them false positive.

292f7858 09/15/2016 03:30 PM Pavel Tvrdik

Main: Improve BIRD help messages

af678af0 05/12/2016 04:03 PM Ondrej Zajicek (work)

Merge remote-tracking branch 'origin/master' into int-new

0c6dfe52 05/10/2016 12:30 PM Jan Moskyto Matejka

Merge branch 'int-new' into int-new-merged

7152e5ef 05/10/2016 12:07 PM Jan Moskyto Matejka

Build system reworked to one global Makefile with includes and no nesting

Also removed the lib-dir merging with sysdep. Updated #include's
accordingly.

Fixed make doc on recent Debian together with moving generated doc into
objdir.

Moved Makefile.in into root dir...

7a7ac656 04/08/2016 10:28 AM Jan Moskyto Matejka

Merge branch 'master' into int-new-channels

f2ae2bad 04/07/2016 10:39 AM Ondrej Zajicek (work)

Main: Add local option

Add option that changes default paths for config file and control socket
to the current working directory.

9e7b3ebd 04/06/2016 09:49 AM Ondrej Zajicek (work)

IO: Replace RX priority heuristic with explicit mark

In BIRD, RX has lower priority than TX with the exception of RX from
control socket. The patch replaces heuristic based on socket type with
explicit mark and uses it for both control socket and BGP session waiting...

9656dce7 12/20/2015 12:04 PM Jan Moskyto Matejka

ROA code switchoff

9b9a7143 11/08/2015 11:42 PM Ondrej Zajicek (work)

Conf: Fixes bug in symbol lookup during reconfiguration

Symbol lookup by cf_find_symbol() not only did the lookup but also added
new void symbols allocated from cfg_mem linpool, which gets broken when
lookups are done outside of config parsing, which may lead to crashes...

ae80a2de 06/08/2015 12:24 AM Pavel TvrdĂ­k

unsigned [int] -> uint

8bcb5fb1 03/02/2015 08:41 AM Ondrej Zajicek

Implement latency tracking, internal event log and watchdog

05476c4d 05/18/2014 09:42 AM Ondrej Zajicek

IPv4/IPv6 integrated socket code.

0c791f87 03/20/2014 01:07 PM Ondrej Zajicek

BGP graceful restart support.

Also significant core protocol state changes needed for that,
global graceful restart recovery state and kernel proto support
for recovery.

4e398e34 02/07/2014 12:09 PM Ondrej Zajicek

Workaround thread-unsafeness of cli_echo().

0aeac9cb 11/22/2013 01:48 AM Ondrej Zajicek

Merge commit 'origin/bfd'

1cd198cf 10/05/2013 08:45 PM Ondrej Filip

Flag -f "run in foreground" added as requested by a package maintainter.

0e175f9f 10/05/2013 06:12 PM Ondrej Zajicek

Fixes some BFD bugs and makes logging thread-safe.

e7c23802 10/05/2013 05:30 PM Ondrej Zajicek

Implements PID file support.

Thanks to Thierry Fournier for the original patch.

1103b32e 07/25/2013 08:33 PM Ondrej Zajicek

Allows to define constants of all filter types.

a92cf57d 12/26/2012 11:40 AM Ondrej Zajicek

Implements undo command and optional timeout for configuration

Several new configure command variants:

configure undo - undo last reconfiguration
configure timeout - configure with scheduled undo if not confirmed in timeout
configure confirm - confirm last configuration...

4be266a9 07/18/2012 05:29 PM Ondrej Zajicek

Implements wildcard matching in config file include.

Also fixes some minor bugs in include.

Thanks Kelly Cochran for suggestion and draft patch.

ab188fb7 05/03/2012 10:25 AM Ondrej Zajicek

Implements build options to specify socket dir and suffix.

ed7c4b0c 04/09/2012 12:19 PM Ondrej Filip

Small bugfix in error message related to reconfiguration.

72aed1a0 03/22/2012 11:26 PM Ondrej Zajicek

Adds krt_source route attribute.

Thanks Jeremie Dimino for the original patch.

df279118 03/19/2012 12:00 PM Ondrej Zajicek

Fixes problem with dirname().

Thanks Henrique de Moraes Holschuh for the original patch.

af582c48 03/18/2012 04:32 PM Ondrej Zajicek

Route Origin Authorization basics.

- ROA tables, which are used as a basic part for RPKI.
- Commands for examining and modifying ROA tables.
- Filter operators based on ROA tables consistent with RFC 6483.
9b7fdfc8 10/09/2011 11:41 PM Ondrej Zajicek

Fixes for include.

48ec367a 09/11/2011 07:21 PM Ondrej Filip

Configuration can include other files.

b1b19433 08/16/2011 09:13 PM Ondrej Zajicek

The generalized TTL security mechanism (RFC 5082) support.

Thanks to Alexander V. Chernikov for the patch.

e8b89a61 05/15/2011 02:29 PM Ondrej Zajicek

Update and document the privilege restriction.

1bc26957 05/10/2011 12:42 AM Ondrej Zajicek

Allows run with restricted privileges.

Adds option -u and -g to specify user and group.
When different user (than root) is specified,
linux capabilities CAP_NET_* are kept.

acc93efd 04/27/2011 10:31 PM Ondrej Zajicek

Use constants from /etc/iproute2/rt_* files.

44d4ab7a 04/07/2010 01:34 PM Ondrej Zajicek

Configurable syslog name.

Also fixes a bug in syslog initialization.

97e46d28 03/17/2010 11:19 AM Ondrej Zajicek

Adds check for no protocol and some minor CLI fixes.

- Adds check to deny config file with no specified protocol to prevent
loading of empty config file.
- Moves CLI init before config parse to receive immediate error message
when cannot open control socket....

e0a45fb4 02/21/2010 08:57 AM Ondrej Zajicek

Restricted read-only CLI.

Also adds support for executing commands using birdc <cmd>.

76b53a4e 02/06/2010 09:57 PM Ondrej Zajicek

Adds some log messages related to configure.

Also fixes a bug in the previous patch.

a6250a7d 11/26/2009 10:23 PM Ondrej Zajicek

Fix -p option.

a4644ed6 11/19/2009 10:44 AM Ondrej Zajicek

Implement option to exit after config file parsing.

653b4015 11/13/2009 01:54 PM Ondrej Zajicek

After shutdown, BIRD should have exit code 0.

d3f36e59 11/13/2009 01:43 PM Ondrej Zajicek

Fixes BIRD socket unlink.

6baef17e 07/14/2009 12:18 PM Ondrej Zajicek

Fixes bug in CLI TX buffer management.

bf1aec97 06/19/2009 09:49 PM Ondrej Zajicek

Adds support for soft reconfiguration.

3c3271d9 08/24/2008 11:24 PM Ondrej Filip

Close fd of config file after reconfiguration.

8411a37e 06/20/2007 07:33 AM Martin Mares

Detach from the TTY properly.

41c8976e 06/06/2004 05:05 PM Ondrej Filip

Test old instance of BIRD.

6578a604 06/05/2004 09:11 AM Martin Mares

Marked unused parameters in sysdep code as such.

cb4dd4e2 06/02/2004 03:14 PM Ondrej Filip

Deleted useless rfree. (Socked was freed by cli_free())

ea0ac8f6 05/31/2004 10:00 PM Martin Mares

Move CLI socket to the newly created CLI's pool.

(thanks to Andreas for the original idea)

38a608c5 05/31/2004 09:48 PM Martin Mares

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....

5f2a6a9f 05/31/2004 05:55 PM Martin Mares

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...

b1a1faba 05/31/2004 01:25 PM Ondrej Filip

*BSD port added. (Tested on FreeBSD and NetBSD)

f9eb8f7e 06/19/2000 11:50 PM Martin Mares

If compiled with --enable-debug, don't even try to log to syslog unless
the user forces it in the config file.

5ddf4a58 06/09/2000 07:32 AM Martin Mares

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).

4761efdb 05/29/2000 10:10 PM Martin Mares

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.

e67af428 05/29/2000 09:58 PM Martin Mares

Support --version and --help.

4524331a 05/08/2000 10:31 PM Martin Mares

Fixed type in daemonization code.

0bcba21e 05/08/2000 07:10 PM Martin Mares

When not debugging, daemonize automatically.

9a220cab 05/04/2000 08:52 PM Martin Mares

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

f75e3bbc 04/27/2000 10:35 PM Martin Mares

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!

e1ddd993 04/26/2000 01:26 PM Martin Mares

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.

3991d84e 04/01/2000 10:19 AM Martin Mares

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,...

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.

f098e072 03/12/2000 10:53 PM Martin Mares

Fixed a bunch of FIXME's by removing them :)

6b9fa320 03/12/2000 09:01 PM Martin Mares

Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG.

bf8558bc 01/16/2000 05:40 PM Martin Mares

Converted shutdown to a kind of reconfiguration, it's no more handled
as a exception in protocol state machines. Introduced a `shutdown'
CLI command. Killed few reconfiguration bugs.

50fe90ed 01/16/2000 04:44 PM Martin Mares

First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.

f545d387 12/09/1999 06:54 PM Martin Mares

Added universal locking mechanism which will solve problems
with protocols wanting to use the same port on the same interface
during reconfiguration time.

How to use locks: In the if_notify hook, just order locks for the
interfaces you want to work with and do the real socket opening after the...

dc82daaa 12/08/1999 01:20 PM Martin Mares

- Path to control socket is selectable via command-line option.
- die() when control socket open failed.

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.

b9672a84 10/31/1999 03:43 PM Martin Mares

The CLI I/O functions work as desired.

7d3aab1c 10/29/1999 12:10 PM Martin Mares

First steps of the Command Line Interface: I/O routines.

0498d92f 04/02/1999 11:45 AM Pavel Machek

Believe it or not, printf()'s does not work too much without this one.

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

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

7e5f5ffd 03/26/1999 09:44 PM Martin Mares

Moved to a much more systematic way of configuring kernel protocols.

o  Nothing is configured automatically. You need to specify
the kernel syncer in config file in order to get it started.
o Syncing has been split to route syncer (protocol "Kernel") and...
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'...

2d140452 03/03/1999 07:49 PM Martin Mares

Rewrote the kernel syncer. The old layering was horrible.

The new kernel syncer is cleanly split between generic UNIX module
and OS dependent submodules:

-  krt.c (the generic part)
- krt-iface (low-level functions for interface handling)
- krt-scan (low-level functions for routing table scanning)...
f4aabcee 02/13/1999 08:15 PM Martin Mares

Perform gracious shutdown upon receipt of SIGTERM. Finally we can
test the whole protocol shutdown code... :)

4c9dd1e4 02/13/1999 07:43 PM Martin Mares

Synchronize signals to the main select/event/timer loop.

Parse command line options.

14dea0ed 02/11/1999 10:51 PM Martin Mares

Run the event queue before writing SIGUSR dumps.

31b3e1bb 02/05/1999 09:37 PM Martin Mares

Implemented new configuration/reconfiguration interface and defined protocol
state machines. Full explanation will follow soon.

ca3d562b 01/15/1999 06:13 PM Pavel Machek

filters_init() renamed to filters_postconfig().

b9d70dc8 01/15/1999 04:49 PM Pavel Machek

Filters, second try. This time they have their own directory.

41183888 01/15/1999 02:40 PM Pavel Machek

Properly initialize filters. Also bumped version to 0.0.0 as it
actually does something.

08c69a77 12/20/1998 02:27 PM Martin Mares

die() -> bug() where appropriate.

980ffedb 12/06/1998 05:40 PM Martin Mares

Kernel syncer is now configurable. It will probably need some more
options, but at least basic tuning is possible now.

c74c0e3c 11/27/1998 09:09 PM Martin Mares

First attempt at protocol configuration (now done only for RIP).

70591fa0 11/27/1998 07:37 PM Martin Mares

Compile and use the new configuration code by default.

7d832907 10/19/1998 06:13 PM Martin Mares

Generate router_id automatically if possible (standard "smallest of local
regular interface addresses" rule).

Protocols should NOT rely on router_id existence -- when router ID is not
available, the router_id variable is set to zero and protocols requiring...

7e7790c6 10/18/1998 12:50 PM Martin Mares

Since almost every UNIX system requires different techniques for reading
the kernel routing table as opposed to modifying it which is approximately
the same on non-netlink systems, I've split the kernel routing table
routines to read and write parts. To be implemented later ;-)

0432c017 10/18/1998 11:53 AM Martin Mares

Split protocol init to building of protocol list and real protocol init.
Added kernel route table syncer skeleton.

47b79306 10/17/1998 11:05 AM Martin Mares

Solve chicken-and-egg problems with protocol startup. We now queue all inactive
protocols and don't send route/interface updates to them and when they come up,
we resend the whole route/interface tables privately.

Removed the "scan interface list after protocol start" work-around.