| Branch: | Revision:

iof-bird-daemon / sysdep / unix / io.c @ 1bc26957

History | View | Annotate | Download (33.8 KB)

# Date Author Comment
d0e9b36d 03/23/2011 04:15 PM Ondrej Zajicek

Added header file.

93e868c7 03/13/2011 10:33 AM Ondrej Zajicek

Implements Router Advertisement protocol.

f428631c 08/02/2010 11:12 PM Ondrej Zajicek

Ignore warning when BGP peer is unreachable.

9be9a264 07/12/2010 03:39 PM Ondrej Zajicek

Implements proper multihop BGP.

Also does some incompatible changes to config file syntax,
like removing 'via IP' from multihop option.

acb60628 06/02/2010 08:20 PM Ondrej Zajicek

Implements command that shows memory usage.

002b6423 05/21/2010 10:00 AM Ondrej Zajicek

Fixes bug on Linux 2.4.x - kernel sync does not work until restart of kernel protocol.

Which was, actually, a bug in timers - on older kernel, monotonic timer
is missing and the other implementation started with now == 0, which
collides with usage 0 as a special value in timer->expires field.

47597724 05/14/2010 02:54 PM Ondrej Zajicek

Handle EPIPE as a common connection close event.

607d9914 04/14/2010 01:35 PM Ondrej Zajicek

Fixes build on newer Linux systems.

dcc60494 04/14/2010 12:46 PM Ondrej Zajicek

Fixes IPv6 build on older systems.

646b24d9 04/08/2010 03:45 PM Ondrej Zajicek

Minor changes.

46a82e9c 04/03/2010 08:45 AM Ondrej Zajicek

Fixes missing header.

e7b09e4a 04/02/2010 02:11 PM Ondrej Zajicek

Use SO_BINDTODEVICE also in Linux/IPv6.

bed41728 04/02/2010 09:31 AM Ondrej Zajicek

Minor fixes to previous patches.

eb0f129f 03/26/2010 05:53 PM Ondrej Zajicek

Merge branch 'socket2' into new

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

54305181 03/11/2010 05:55 PM Ondrej Zajicek

Merge branch 'new' into socket2

ff2857b0 02/26/2010 09:55 AM Ondrej Zajicek

Many changes in (mainly) kernel syncers.

- BSD kernel syncer is now self-conscious and can learn alien routes
- important bugfix in BSD kernel syncer (crash after protocol restart)
- many minor changes and bugfixes in kernel syncers and neighbor cache
- direct protocol does not generate host and link local routes...

e81b440f 02/21/2010 01:34 PM Ondrej Zajicek

Fix configure to enable warnings and fix most of them.

2af25a97 02/11/2010 10:12 AM Ondrej Zajicek

Fixes a crash caused by missing error hook on BGP listening socket.

Error happened when too many BGP connections arrived in one moment

353729f5 02/11/2010 09:23 AM Ondrej Zajicek

Temporary OSPF commit - socket changes.

c37e7851 02/02/2010 11:19 PM Ondrej Zajicek

Makes date/time formats configurable.

861f223a 01/06/2010 10:20 PM Ondrej Zajicek

BSD compatibility fix.

cf31112f 01/03/2010 11:17 AM Ondrej Zajicek

Implements MRTdump feature.

4ac7c834 11/09/2009 10:22 PM Ondrej Zajicek

Use IPv6 checksums in OSPFv3.

3f22fa9e 11/09/2009 09:54 PM Ondrej Zajicek

Merge branch 'dev' into ospf3

ea89da38 10/11/2009 04:56 PM Ondrej Zajicek

Workaround for stupid callback scheduler.

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

daeeb8e9 09/04/2009 09:24 AM Ondrej Zajicek

Clear memory allocated by ralloc().

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.

f9c799a0 09/04/2009 09:06 AM Ondrej Zajicek

Temporary OSPFv3 development commit (changing multicast support).

061ab802 08/27/2009 04:25 PM Ondrej Zajicek

Temporary OSPFv3 development commit

2d785e8d 06/26/2009 11:33 AM Ondrej Zajicek

Fixes bug on TCP passive socket binding on BSD.

BGP on BSD was bound to random port. I am surprised that
nobody noticed it already.

1876e18d 06/25/2009 01:44 PM Ondrej Zajicek

Minor bugfix.

4323099d 06/19/2009 10:59 PM Ondrej Zajicek

Fixes bug in scheduling of callback by main loop.

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

789772ed 06/18/2009 05:20 PM Ondrej Zajicek

Implements option that changes BGP listening socket parametres.

2b70f074 05/04/2009 04:17 PM Ondrej Filip

Linux specific TCP-MD5 handling moved to sysdep/linux/sysio.h
FreeBSD coded added. BSD cannot set BGP passwords itself.
This has to be done by external command.

35164c50 12/12/2008 04:48 PM Ondrej Zajicek

rx_hook may be cleaned in some callback so we check it before
executing sk_read().

fd91ae33 11/05/2008 09:36 PM Ondrej Zajicek

Fix problem with local time changes.

1389f369 11/05/2008 08:39 PM Ondrej Zajicek

Fixes bugs in IPv6 code caused by recent commits.

a39b165e 11/01/2008 03:58 PM Ondrej Zajicek

Multihop BGP was completely broken, because listening socket has always
ttl 1.

a98fbf0f 10/26/2008 11:20 PM Ondrej Zajicek

Merge branch 'dev' into out

68fa95cf 10/26/2008 10:55 PM Ondrej Zajicek

Check of socket name length

d51aa281 10/26/2008 09:42 PM Ondrej Zajicek

Implementation of MD5 authentication of BGP sessions.

97c6fa02 08/25/2008 12:06 PM Ondrej Filip

Previous patch reverted. :-(

030e3a79 08/25/2008 11:57 AM Ondrej Filip

Buffer overflow fix.

c025b852 02/14/2005 11:15 PM Ondrej Filip

Real write is only in sk_maybe_write. Previous change partially reverted.
Thank you MJ.

7c49f715 02/14/2005 09:28 PM Ondrej Filip

Added s->err_hook wrapper that empties socket.

0d3effcf 02/12/2005 10:27 PM Ondrej Filip

Time added in password management.

09e4117c 06/18/2004 12:54 PM Ondrej Filip

sk_write bugfix for BSD.

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

Test old instance of BIRD.

4da25acb 06/05/2004 08:56 AM Martin Mares

Cleaned up sk_reallocate() and friends.
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.

e7ef86a5 06/04/2004 06:51 PM Ondrej Filip

OSPF is ready for changing MTU.

7d72aadb 06/03/2004 08:18 AM Ondrej Filip

BSD hates it, Linux needs it.

b613b992 06/01/2004 10:32 AM Ondrej Filip


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

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

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

01b776e1 03/06/2001 01:40 PM Martin Mares

Fixed <time.h> vs. <sys/time.h> problems.

0b3bf4b1 06/09/2000 07:30 AM Martin Mares

Use SUN_LEN() for length of UNIX domain addresses. This should fix problems
with connection to clients on libc5 machines.

58f7d004 06/07/2000 01:25 PM Martin Mares

Fixes to the progdoc.

2e9b2421 06/07/2000 12:29 PM Martin Mares

Spelling fixes to progdoc.

525fa2c1 06/05/2000 12:19 PM Martin Mares

Documented sockets, events and timers.

10304bed 06/05/2000 11:46 AM Martin Mares

Split random number functions off io.c, so that they can be documented

b594ad23 06/01/2000 03:13 PM Martin Mares

tm_format_reltime() works with both past and future timestamps.

c304392e 05/08/2000 12:37 PM Martin Mares

Some less socket error messages.

9cbf43eb 05/08/2000 12:09 PM Martin Mares

Don't report refused connections.

93a786cb 05/04/2000 08:30 PM Martin Mares

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

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.

0cadd5f5 04/26/2000 12:33 PM Martin Mares

Removed several FIXME's.

00c0c18a 04/25/2000 11:07 PM Martin Mares

Allow sk_close(NULL).

f380aa60 04/20/2000 11:05 PM Martin Mares

IPv6 compiles with glibc 2.1.

a37410cb 03/31/2000 11:33 PM Martin Mares

Use bsprintf() instead of sprintf().

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.

1cf716f0 03/20/2000 09:49 PM Martin Mares

Handle EINPROGRESS properly.

Set IP_DONTROUTE sockopt only if sk->ttl == 1.

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

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

7a88832e 03/12/2000 10:43 PM Martin Mares

Added tm_format_datetime().

a2867cd9 12/16/1999 01:14 PM Martin Mares

Better order of includes.

set_inaddr() moved to sysio.h.

67ece6df 12/16/1999 01:06 PM Martin Mares

Tried to clean up multicast handling. Now we don't try to guess
multicast abilities depending on definedness of symbols and use hard-wired
system-dependent configuration defines instead.

Please test whereever you can.

30bc402e 12/08/1999 03:12 PM Martin Mares

Temporary work-arounds for multicast problems. Needs further investigation.

f78056fb 12/06/1999 01:51 PM Martin Mares

Allow logging to stderr as well.

a9c986f9 12/06/1999 01:43 PM Martin Mares

Added tracked_fopen() which is a fopen registered in resource database.
Will be used for log files.

afa8937a 12/01/1999 11:59 AM Martin Mares

Added tm_format_reltime() for formatting of relative time quantities.

487d1afa 11/30/1999 02:01 PM Martin Mares

Moved TIME_INFINITY to timer.h, so that it's publicly available.

30770df2 11/17/1999 12:04 PM Martin Mares

If the main event queue is not empty, call select() with zero timeout, so
that the events are ran again after the FD's are checked. This allows us
to schedule I/O checks between processing of user commands.

b93abffa 10/29/1999 12:09 PM Martin Mares

Implemented unix-domain sockets.

f782b72c 10/02/1999 11:06 AM Martin Mares

Failure to set socket TOS is not a fatal error.

f6519414 08/17/1999 08:47 PM Martin Mares

Added a function for generating 32-bit random numbers.

4f22c981 08/03/1999 07:36 PM Martin Mares

Support for IPv6 sockets. How nice one doesn't have to ifdef around
ten years of API evolution :-)

dce26783 08/03/1999 07:36 PM Martin Mares

Basic support for IPv6. The system-dependent part doesn't work yet,
but the core routines are there and seem to be working.

o  lib/ipv6.[ch] written
o Lexical analyser recognizes IPv6 addresses and when in IPv6
mode, treats pure IPv4 addresses as router IDs....
913f7dc9 08/03/1999 07:29 PM Martin Mares

Added functions for parsing and formatting of dates.

bd7f1081 06/01/1999 03:31 PM Martin Mares

Grrr, the "obvious fix" to multicasting code from yesterday was
fundamentally wrong. Reversed.

c7208da0 05/31/1999 08:28 PM Martin Mares

Fix potential multicasting bug.

9a158361 05/06/1999 09:38 PM Martin Mares

I rewrote the interface handling code, so that it supports multiple
addresses per interface (needed for example for IPv6 support).

Visible changes:

o struct iface now contains a list of all interface addresses (represented
by struct ifa), iface->addr points to the primary address (if any)....

4c5e5e3a 04/14/1999 12:29 PM Martin Mares

Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
of the interface.

1b50a1e4 04/14/1999 11:39 AM Martin Mares

Next attempt to get SO_BINDTODEVICE work :)

36154beb 04/14/1999 11:21 AM Martin Mares

Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.

61fb537c 04/12/1999 03:27 PM Martin Mares

Use `struct ip_mreqn' instead of `struct ip_mreq' for multicast
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.

Unfortunately, this structure is not visible with glibc 2.0 as it provides...

5a99ade4 04/12/1999 02:57 PM Martin Mares

Fixed a couple of bugs in handling of multicast sockets.

See comments in lib/socket.h for a detailed guide on how to use them.

abae6e9c 04/01/1999 03:33 PM Martin Mares

First few FreeBSD portability fixes.

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...
b4b3b39e 03/01/1999 10:30 PM Martin Mares

Added SK_MAGIC type sockets for internal use by system dependent code,
especially for netlink communication.