Changes:
- Remove -R command line option (it's automatic, system dependent)
- Fix mixing of broadcast and binding
- Add -c command line option for count of packet
- Fix receiving broadcast
- Scan all interfaces via device protocol (unfortunately it is ugly)
Since 2.6.19, the netlink API defines RTA_TABLE routing attribute to
allow 32-bit routing table IDs. Using this attribute to index routing
tables at Linux, instead of 8-bit rtm_table field.
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
during reconfiguration.
The patch separates lookup-only cf_find_symbol() and config-modifying
cf_get_symbol(), while the later is called only during parsing. Also
new_config and cfg_mem global variables are NULLed outside of parsing.
If the number of sockets is too much for select(), we should at least
handle it with proper error messages and reject new sockets instead of
breaking the event loop.
Thanks to Alexander V. Chernikov for the patch.
All origin static functions from sysdep/unix/main.c were rewrited to
non-static.
All origin static global variables from sysdep/unix/main.c was rewrited
to extern.
It is possible create executables bird, birdc and birdcl as well as run
unit tests without mockuping
After remake new BIRD's build system will be this commit reverting...
We need link lib/birdlib.a and remaining */all.o to tests (mockups suck)
Code from sysdep/unix/main.c is moved without 'int main()' function
to the sysdep/unix/main_helper.c
Yes, it is dirty...
After remake new BIRD's build system will be this commit reverting...
Actually it is not possible to build executable bird, birdc nor birdcl
due duplicity of functions in main_helper.o in lib/birdlib.a and
lib/main.o