summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/bgpd.c
AgeCommit message (Collapse)Author
2006-01-24Functions in the poll() loop should only be moved around if there are noClaudio Jeker
side-effects. Revert last changes and make bgpctl reload work again.
2006-01-24KNFHenning Brauer
2006-01-24introduce a second control socket, which is restricted to certain messages,Henning Brauer
nameley the show ones. needed for looking glass style applications, monitoring etc. claudio ok
2006-01-03Plug some mem leaks.Claudio Jeker
2006-01-03Move the signal handler flags check between the poll() call and the pollClaudio Jeker
fd handling. Do not access poll fd in case of an error or timeout. With and OK dlg@
2005-12-24bzero the pfd array before setting it up and calling poll because on errorClaudio Jeker
(e.g. EINTR) poll() will not update the pfd array (copyout) and so the old revents are used and results in a blocking parent process. OK dlg@
2005-11-02Reorder and comment reconfigure(). Makes more sense so.Claudio Jeker
2005-11-01Switch from the per peer filter set list to a filter-only solution.Claudio Jeker
The default filter_sets are converted into match filter rules that get evaluated first. Simplifies code massively -- mainly the config reload part -- and makes softreconfig out a piece of cake. "get it in" henning@
2005-10-13Simplify poll loop as well. "grrr, OK" henning@Claudio Jeker
2005-07-01Switch filter_sets form SIMPLEQ to TAILQ, needed for upcomming stuff.Claudio Jeker
2005-06-29rtlabel support via filter sets. Just use "set rtlabel foobar" in filtersClaudio Jeker
network and neighbor statements and the routes are labeled accordingly. While doing that fix some mem-leaks by introducing filterset_free() and remove the free on send option of send_filterset(). This took a bit longer because we need to carefully track the rtlabel id refcnts or bad things may happen on reloads. henning@ looks fine
2005-06-09Change the "network connected|static" statements to "network inet|inet6Claudio Jeker
connected|static" so that it is possible to distinguish between IPv4 and IPv6 addresses. "network connected|static" is considered deprecated but will be supported as an alias for "network inet connected|static" for some time (one release) to simplify upgrades. This also solve a nasty crash when using "network connected". OK henning@
2005-05-27will throw claudio in a big pot of kaesefondue for repeated whitespace fuckupsHenning Brauer
2005-05-27kroute6 support, at least partially. Get it in so that Henning can clean itClaudio Jeker
up more. OK henning@
2005-05-23one more endpwentHenning Brauer
2005-04-28Support for "network connected" and "network static" -- announce allClaudio Jeker
directly connected respectively all static routes. The list is auto- matically adjusted as soon as a route changes. OK henning@
2005-03-30bgpd used to open listeners in advance in the parent and the SE pickedHenning Brauer
those it needed, closing all the others. this has some nasty races. so let the parent keep the list of listeners so it knows when it has to open a new one claudio ok, also tested by jason ackley
2005-03-28free rules_l if the initial config file parse failsHenning Brauer
2005-03-24fix memory leak in error paths. found with coverity prevent.Ted Unangst
ok claudio henning
2005-02-09need to send IMSG_NETWORK_DONE after sending networks and associated filterHenning Brauer
sets, otherwise local netyworks get withdrawn after config reload; misbehaviour noticed by peter.galbavy@knowtion.net, claudio ok
2005-02-02usage() is __deadHenning Brauer
pt out by Alexander v Gernler
2004-11-23Switch from a single filter_set to a linked list of sets. With this changeClaudio Jeker
it is possible to specify multiple communities. This is also the first step to better bgpd filters. OK henning@
2004-10-19allow neighbor definitions to depend on interface state.Henning Brauer
with this, if a neighbor is configured as dependent on carp0 for example, the neighbor will remain in state IDLE as long as carp0 is not master. once carp0 becomes master the session(s) depending on it immediately go to CONNECT (or ACTIVE, if they're configured passive), reducing failover time. claudio ok, with some input from ryan as well
2004-09-23after receival of a SIGCHLD reset io_pid or rde_pid, respectively, dependentHenning Brauer
on which child went away.
2004-09-16imsg API cleanup:Henning Brauer
-kill imsg_compose_pid, imsg_compose_fdpass and imsg_create_pid -extend the original imsg_compose/_create API to take pid & fd too -make imsg_compose do imsg_create + imsg_add + imsg_close instead of duplicating the code -adjust all callers to the new API ok claudio
2004-09-16malloc the imsg buffers instead of having them staticly, suggested byHenning Brauer
micskye some time ago
2004-09-15if (signalflag) { dowork(); signalflag = 0; } is a race. First clear flag,Otto Moerbeek
then call work(). ok henning@
2004-08-24use session_socket_blockmode() instead of hand-rolling roughly the sameHenning Brauer
claudio ok
2004-08-05The peer_l is not needed in the rde but still allocated, free them andClaudio Jeker
save 1k per peer. OK henning@
2004-08-03Fix mem-leak on exit. OK henning@Claudio Jeker
2004-07-28The hole dance to close a mrt file after fd passing in the parent is notClaudio Jeker
needed as the fd is closed while beeing passed. looks good henning@
2004-07-05fix a few KNF falloutsHenning Brauer
2004-07-042 more file descriptors for each RDE and SE inherited from the parentHenning Brauer
we should close
2004-07-04when getting rid of the listen_addr TAILQ after forking actually closeHenning Brauer
the file descriptors in RDE and parent process, not needed or used there
2004-07-03Switch mrt dumping to fd passing. This gives some speed up when extensiveClaudio Jeker
dumping is done. Acctually mrt dumps were broken because of the fd passing. The nice side effect is a much cleaner code, especially in the parent process. OK henning@
2004-06-20at least somewhat consistently name the TAILQ_ENTRYs... this confused meHenning Brauer
more than once
2004-06-20implement file descriptor passing in the imsg/msgbuf framework, and useHenning Brauer
it to let the main process to prepare new listening sockets (socket() and bind()) on behalf of the session engine, which of course cannot bind() to ports < 1024 any more once it dropped privileges. with some help from theo, claudio ok
2004-06-06rework bgpd's handling of listening sockets. instead of one for eachHenning Brauer
supported address familiy, keep a tailq of an arbitary number of them. the new struct listen_addr contains the sockaddr and the fd. this fixes quite some nasty behaviour which was a consequence of the previous model. looks right deraadt@, and discussed with claudio
2004-05-21Add support for dynamic announcements. Usefule to annouce temporaryClaudio Jeker
blackhole routes or to make network announcements dependent on a external state (e.g. for carp setups) OK henning@
2004-05-07add a filter option to dump prefixes learned in UPDATEs into a PF table,Damien Miller
intended for building realtime BGP blacklists (e.g. with spamd); ok claudio & henning
2004-05-03little KNF issueHenning Brauer
2004-04-29sock -> fd; ok henningTheo de Raadt
2004-04-27crud stripping; henning okTheo de Raadt
2004-04-25Remove the no longer needed configure stuff in RDE. The peer list needs noClaudio Jeker
longer to be synced between parent, SE and RDE. OK henning@
2004-03-16delay creating the control socket until after forking, but before chrootHenning Brauer
(lives in /var/run, i. e. outside chroot) and privdrop. claudio ok
2004-03-12fix the "wait for child processes to terminate" code, and move it down a bitHenning Brauer
millert ok
2004-03-11Shutdown the RDE cleanly on exit. Plug some memleaks. OK henning@Claudio Jeker
2004-03-11Free unneeded mrt lists in SE and on exit. OK henning@Claudio Jeker
2004-03-10pass a pointer to the network list as well to session_main so we can free()Henning Brauer
the members after fork
2004-03-10pass a pointer to the filter rule list to session_main() so we can free()Henning Brauer
the list entries and the head there after forking