summaryrefslogtreecommitdiffstats
path: root/sysdep/unix/io.c
AgeCommit message (Collapse)Author
2009-11-09Merge branch 'dev' into ospf3Ondrej Zajicek
2009-10-11Workaround for stupid callback scheduler.Ondrej Zajicek
There is no reak callback scheduler and previous behavior causes bad things during hard congestion (like BGP hold timeouts). Smart callback scheduler is still missing, but main loop was changed such that it first processes all tx callbacks (which are fast enough) (but max 4* per socket) + rx callbacks for CLI, and in the second phase it processes one rx callback per socket up to four sockets (as rx callback can be slow when there are too many protocols, because route redistribution is done synchronously inside rx callback). If there is event callback ready, second phase is skipped in 90% of iterations (to speed up CLI during congestion).
2009-09-04Clear memory allocated by ralloc().Ondrej Zajicek
This also fixes bug that timer->recurrent was not cleared in tm_new() and unexpected recurrence of startup timer in BGP confused state machine and caused crash.
2009-09-04Temporary OSPFv3 development commit (changing multicast support).Ondrej Zajicek
2009-08-27Temporary OSPFv3 development commitOndrej Zajicek
2009-06-26Fixes bug on TCP passive socket binding on BSD.Ondrej Zajicek
BGP on BSD was bound to random port. I am surprised that nobody noticed it already.
2009-06-25Minor bugfix.Ondrej Zajicek
2009-06-20Fixes bug in scheduling of callback by main loop.Ondrej Zajicek
If other side of a socket is sending data faster than BIRD is processing, BIRD does not schedule any other callbacks (events, timers, rx/tx callbacks).
2009-06-18Implements option that changes BGP listening socket parametres.Ondrej Zajicek
2009-05-04Linux specific TCP-MD5 handling moved to sysdep/linux/sysio.hOndrej Filip
FreeBSD coded added. BSD cannot set BGP passwords itself. This has to be done by external command.
2008-12-12rx_hook may be cleaned in some callback so we check it beforeOndrej Zajicek
executing sk_read().
2008-11-05Fix problem with local time changes.Ondrej Zajicek
2008-11-05Fixes bugs in IPv6 code caused by recent commits.Ondrej Zajicek
2008-11-01Multihop BGP was completely broken, because listening socket has alwaysOndrej Zajicek
ttl 1.
2008-10-27Merge branch 'dev' into outOndrej Zajicek
2008-10-26Check of socket name lengthOndrej Zajicek
2008-10-26Implementation of MD5 authentication of BGP sessions.Ondrej Zajicek
2008-08-25Previous patch reverted. :-(Ondrej Filip
2008-08-25Buffer overflow fix.Ondrej Filip
2005-02-15Real write is only in sk_maybe_write. Previous change partially reverted.Ondrej Filip
Thank you MJ.
2005-02-14Added s->err_hook wrapper that empties socket.Ondrej Filip
2005-02-12Time added in password management.Ondrej Filip
2004-06-18sk_write bugfix for BSD.Ondrej Filip
2004-06-06Test old instance of BIRD.Ondrej Filip
2004-06-05Cleaned up sk_reallocate() and friends.Martin Mares
Also, removed the `if (s)' test, because I believe that as the whole socket interface doesn't accent NULL pointers, sk_reallocate() shouldn't be the only exception.
2004-06-04OSPF is ready for changing MTU.Ondrej Filip
2004-06-03CONFIG_SKIP_MC_BIND added.Ondrej Filip
BSD hates it, Linux needs it.
2004-06-01#ifdef CONFIG_UNIX_DONTROUTE added.Ondrej Filip
2004-05-31Rewritten the I/O loop. All socket operations are now safe, meaning thatMartin Mares
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*BSD port added. (Tested on FreeBSD and NetBSD)Ondrej Filip
2001-03-06Fixed <time.h> vs. <sys/time.h> problems.Martin Mares
2000-06-09Use SUN_LEN() for length of UNIX domain addresses. This should fix problemsMartin Mares
with connection to clients on libc5 machines.
2000-06-07Fixes to the progdoc.Martin Mares
2000-06-07Spelling fixes to progdoc.Martin Mares
2000-06-05Documented sockets, events and timers.Martin Mares
2000-06-05Split random number functions off io.c, so that they can be documentedMartin Mares
separately.
2000-06-01tm_format_reltime() works with both past and future timestamps.Martin Mares
2000-05-08Some less socket error messages.Martin Mares
2000-05-08Don't report refused connections.Martin Mares
2000-05-04Removed a lot of unused variables.Martin Mares
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-04-28Fixed a couple of nasty CLI bugs which were triggered on long or multi-partMartin Mares
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-26Changed handling of incoming connections, so that we can send dataMartin Mares
from the send hook without worrying about existence of socket buffers. Also, don't forget to copy peer addresses.
2000-04-26Removed several FIXME's.Martin Mares
2000-04-26Allow sk_close(NULL).Martin Mares
2000-04-21IPv6 compiles with glibc 2.1.Martin Mares
2000-04-01Use bsprintf() instead of sprintf().Martin Mares
2000-04-01Include "lib/string.h" instead of <string.h>. It should give us bzero()Martin Mares
and other non-portable functions on all systems.
2000-03-30Defined sk_close() which closes the socket safely even if called fromMartin Mares
socket hook. Replaces the SK_DELETED hack. Squashed a couple of bugs in handling of TCP sockets.
2000-03-20Handle EINPROGRESS properly.Martin Mares
Set IP_DONTROUTE sockopt only if sk->ttl == 1.
2000-03-12Fixed a bunch of FIXME's by removing them :)Martin Mares