gdt [Tue, 6 Jan 2004 01:13:05 +0000 (01:13 +0000)]
2004-01-05 Greg Troxel <gdt@fnord.ir.bbn.com>
* kernel_socket.c (ifm_read): Major cleanup. Use Sowmini's code
to find the sockaddr_dl in all cases, narrowing the Solaris ifdef
to just the accomodation of broken kernels. Check sockaddr_dl
carefully up front, and later assume any non-NULL sdl pointer is
valid. Clean up types and variable declarations, and rename
WRAPUP to SAROUNDUP to make the name fit the behavior.
gdt [Mon, 5 Jan 2004 17:20:59 +0000 (17:20 +0000)]
2004-01-05 Greg Troxel <gdt@ahi.ir.bbn.com>
* kernel_socket.c (kernel_read): Look up interfaces by index
first, so that state changes which do not include a sockaddr_dl
now work. Add many sanity checks. In
particular, do not assume that a sockaddr_dl follows a message
without checking the ifm_addrs flags, and do not trust the length
in a sockaddr_dl. Add/clarify many comments.
gdt [Sun, 4 Jan 2004 01:02:55 +0000 (01:02 +0000)]
Really ripngd should either leave groups on down interfaces, or keep
track of on which interfaces joins have occurred. This is complicated
by the possible lack of a clear behavior spec on whether interfaces
keep their joined group lists across a down/up/down transition. (On
NetBSD, they do.)
2004-01-03 Greg Troxel <gdt@ahi.ir.bbn.com>
* ripng_interface.c (ripng_multicast_join): If IPV6_JOIN_GROUP
returns EADDRINUSE, consider the join successful. This happens
when an interface goes down and comes back because
ripng_multicast_leave does not invoke the LEAVE_GROUP operation if
the interface is down. Solves problem of ripng stopping working
on an interface which goes down and then comes back up (on NetBSD).
paul [Tue, 30 Dec 2003 11:16:21 +0000 (11:16 +0000)]
2003-12-30 Paul Jakma <paul@dishone.st>
* redhat/isisd.init: new file, init script for isisd.
redhat/quagga.sysconfig: new file, sysconfig file for quagga
initscripts.
redhat/quagga.spec.in: various cleanups, including sysconfig patch
from RH, fixed UID/GID as per RH EL, shell changed to
/sbin/nologin, daemon vty's listen to 127.1 only per default and
isisd packaged.
redhat/*.init: sysconfig support and runlevels specified.
paul [Tue, 30 Dec 2003 11:09:00 +0000 (11:09 +0000)]
2003-12-30 Paul Jakma <paul@dishone.st>
* Makefile.am: put the redhat/ stuff into EXTRA_DIST rather than
copying via dist-hook. Remove ~ files backup cruft from dists.
isisd/Makefile.am: sysconf example should go via
dist_examples_DATA. The include-netbsd/ headers werent mentioned
as sources and werent being copied into dists.
jardin [Tue, 23 Dec 2003 08:56:18 +0000 (08:56 +0000)]
Merge isisd into the Quagga's framework:
- add privs support
- use misc quagga's definitions
- make it compile"able"
- fix segfault cases related to hostname()
- add debug isis xxx command
gdt [Fri, 5 Dec 2003 14:01:43 +0000 (14:01 +0000)]
* ospfd.c (ospf_network_match_iface): Rewrite code for clarity
while trying not to change semantics. Add ifdefed-out code to
avoid matching ppp interfaces whose destination address does not
also match the prefix under consideration, to help out people with
problems due to as-yet-unfixed bugs with p2p interfaces coming and
going.
gdt [Thu, 4 Dec 2003 15:39:25 +0000 (15:39 +0000)]
fix exampledir processing bug; it failed when neither exampledir nor
sysconfdir were specified, due to incorrect extra quoting of
sysconfdir. Thanks to Vincent Jardin for the bug report.
gdt [Wed, 3 Dec 2003 17:24:27 +0000 (17:24 +0000)]
Add support for --enable-exampledir to specify where to place example
files, defaulting to sysconfdir (matching previous behavior).
This is needed to support (cleanly) NetBSD pkgsrc, which requires that
example config files go in $(prefix)/share/examples/pkgname, rather
than in $(prefix)/etc/pkgname.
paul [Mon, 17 Nov 2003 10:31:01 +0000 (10:31 +0000)]
2003-11-17 Jay Fenlason <fenlason@redhat.com>
* zebra/rt_netlink.c: netlink_parse_info() ignore messages which are
not from kernel. Reported to RH by Herbert Xu. See
http://rhn.redhat.com/errata/RHSA-2003-307.html and CAN-2003-0858.
* ospfd/ospf_interface.c: (ospf_if_table_lookup) grab reference to
rn->info /before/ calling route_unlock_node() as some systems
may deliberately poison freed memory, eg FreeBSD 5.1.
see [quagga-dev 417].
paul [Sun, 2 Nov 2003 07:28:05 +0000 (07:28 +0000)]
2003-11-02 Krzysztof Oledzki <oleq@ans.pl>
* zebra/zebra_rib.c: Revert patch (dating from zebra.org) which
caused zebra to read all routes in all tables, rather than just
the main table. See [quagga-dev 280].
paul [Sun, 2 Nov 2003 07:24:40 +0000 (07:24 +0000)]
2003-11-02 Paul Jakma <paul@dishone.st>
* bgpd/bgp_routemap.c: Fix up 'set ip next-hop A.B.C.D|peer-address'
route map command so that vtysh can use it. Modified version of
Hasso Tepper's patch. Fixes bug #52.
paul [Wed, 29 Oct 2003 06:30:19 +0000 (06:30 +0000)]
2003-10-29 Paul Jakma <paul@dishone.st>
* lib/routemap.c: (route_map_apply_index) renamed to
route_map_apply_match.
(route_map_apply_match) Take rule list as argument rather than
index. concentrate solely on match logic.
(route_map_apply) Properly implement the route map statement
logic, according to the table, especially the on-match exit
policy.
paul [Tue, 28 Oct 2003 03:47:15 +0000 (03:47 +0000)]
2003-10-27 Gilad Arnold <gilad.arnold@terayon.com>
* zebra/zebra_rib.c: (nexthop_active_update) Check for multipath
limit when setting changed flag to avoid spurious changes.
(static_install_ipv{4,6}) dont uninstall by default, might not be
required - avoid spurious uninstalls.
(static_uninstall_ipv{4,6}) only uninstall the route if its
actually FIB route.
* ospfd/ospfd.c: Do not increment act_int for an area, as it is done
by ospf_ism.c::ism_change_state() - results in incorrect figure
for active interfaces in an area.
paul [Fri, 24 Oct 2003 19:02:03 +0000 (19:02 +0000)]
2003-10-24 Jose Luis Rubio Guivernau <jrubio@dit.upm.es>
* Better 'show bgp' support for views (eg ipv6), see [quagga-dev 238]
* bgpd/bgp_route.c: (bgp_show) Take a struct bgp argument instead of
view string.
(bgp_show_neighbor_route) Take a struct peer argument instead of
ip string.
(peer_adj_routes) ditto
(show_adj_routes) ditto
(peer_lookup_in_view) new function to return appropriate struct
peer for a given view string.
(misc) Fixup all calls to above to reflect new calling arguments,
and use peer_lookup_in_view as needed. Additional commands
installed to use expanded functionality above, existing commands
modified to suit as well.
* bgpd/bgp_vty.c: 2 new aliases.
paul [Fri, 24 Oct 2003 04:39:18 +0000 (04:39 +0000)]
2003-10-24 waldi@debian.org
* vtysh/Makefile.am: vtysh_cmd.c rebuild was broken because it
depended against source files without specification, i.e. it
used ../zebra instead of $(top_srcdir)/zebra.
paul [Fri, 24 Oct 2003 04:24:39 +0000 (04:24 +0000)]
2003-10-24 Paul Jakma <paul@dishone.st>
* configure.ac: Check for fcntl()
* {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via
regular automake means, not magic install incantations, see
bug #38.
* lib/Makefile.am: install the headers, needed to link libzebra.a
(and hence libospf.a, OSPF-API, etc.)
paul [Fri, 24 Oct 2003 04:10:16 +0000 (04:10 +0000)]
2003-10-24 sowmini.varadhan@sun.com
* lib/pid_output.c: (pid_output) call pid_output_lock if we have
fcntl().
(pid_output_lock) grab exclusive write lock on pid file, rather
than rely on (fragile) exclusive create.
paul [Thu, 23 Oct 2003 20:39:50 +0000 (20:39 +0000)]
2003-10-23 Paul Jakma <paul@dishone.st>
* configure.ac: IRIX configure.ac support. Sort of works.
sysctl() crashes though (ipforward), there's some kind of odd
padding in the PF_ROUTE socket messages and setsockopt() on
SOCK_RAW does not work (so ospfd doesnt work).
paul [Wed, 22 Oct 2003 02:51:04 +0000 (02:51 +0000)]
2003-10-22 Paul Jakma <paul@dishone.st>
* vtysh/Makefile.am: do not include vtysh_cmd.c in dists, its
configure dependent. (still need to find a way to make building of
it dependent on configure options or include all commands.)
paul [Wed, 22 Oct 2003 00:07:44 +0000 (00:07 +0000)]
2003-10-22 Paul Jakma <paul@dishone.st>
* configure.ac: Split up header checks into non-net, net and ipv6
related. Checking of IPv6 is conditional. Add some more output
text for the end of the configure run.
paul [Sat, 18 Oct 2003 01:30:50 +0000 (01:30 +0000)]
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
* bgpd/bgp_attr.c: (bgp_dump_routes_attr) Dont dump IPv4 nexthop
for IP. Dump MP_NLRI attr with IPv6 next-hop for AF_INET6 address
family prefixes. Accept prefix as argument.
* bgpd/bgp_attr.c: modify bgp_dump_routes_attr declaration.
* bgpd/bgp_dump.c: (bgp_dump_routes_entry) Modify calls to
bgp_dump_routes_attr.
(bgp_dump_common) Go by the family of the peering socket, not
configured address family when dumping peering information.
Add HAVE_IPV6 conditionals, eg missing from previous bgp interval
patch.
paul [Sat, 18 Oct 2003 01:01:19 +0000 (01:01 +0000)]
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
* bgpd/bgp_dump.{c,h}: (bgp_dump_interval_add) Dump at discrete
fixed intervals rather than fixed intervals from startup time.
(bgp_dump_interval_func) Dont return immediately if file cant be
openeded, but reschedule interval dumps, even - admin might
fix problem in meantime. Close the dump file in between intervals.
(bgp_dump_init) account for MSG header when initialising stream
size.
paul [Wed, 15 Oct 2003 23:20:17 +0000 (23:20 +0000)]
2003-10-15 sowmini.varadhan@sun.com
* ripd/ripd.c: (rip_send_packet) use rip->sock for mcast sends,
instead of creating one socket per send. send source addr to
rip_update_interface.
(rip_update_process) should send an update on every connected
network for each interface.
(rip_request_send) should send a request on every connected
network for each interface.
* ripd/ripd.h: update prototype for rip_interface_multicast_set
* ripd/rip_interface.c: (rip_interface_multicast_set) reorganized
so that it can be called repeatedly for aliased interfaces (on
multiple networks).
paul [Wed, 15 Oct 2003 23:08:55 +0000 (23:08 +0000)]
2003-10-15 Jay Fenlason <fenlason@redhat.com>
* lib/vty.c: (vty_telnet_option) Remote DoS exists if a telnet
end-sub-negotation is sent when no sub-negotation data has been
sent. Return immediately if no sub-negotation is in progress.
(vty_read) do not attempt to process options if no sub-negotation
is in progress.
paul [Wed, 15 Oct 2003 22:09:28 +0000 (22:09 +0000)]
2003-10-15 Paul Jakma <paul@dishone.st>
* lib/vty.c: (vty_save_cwd) dont crash if getcwd fails. try fallback
to SYSCONFDIR. Allocate cwd from the stack rather than relying on
(non-portable) getcwd() allocation (which we didnt seem to be
freeing).
paul [Wed, 15 Oct 2003 21:14:20 +0000 (21:14 +0000)]
2003-10-15 Paul Jakma <paul@dishone.st>
* ospfd/ospf_interface: (ospf_if_lookup_table) new function to
lookup oi for a given prefix in a given interfaces table of oi's.
(ospf_if_new) use ospf_if_lookup_table to deal with zebra
reporting new interface multiple times.
NB: This patch is a complete plaster-band of a hack. First, why is
zebra reporting interface events multiple times? Second, why does
ospfd maintain so many damn lists and tables relating to oi's -
these should be reconciled into one or two tables.
paul [Mon, 13 Oct 2003 09:47:32 +0000 (09:47 +0000)]
2003-10-13 Jay Fenlason <fenlason@redhat.com>
* lib/zebra.h: define UINT32_MAX for those systems which do not
provide it.
* bgp_attr.h: define BGP_MED_MAX.
* bgp_route.c: update defines/constants to BGP_MED_MAX.
* bgp_routemap.c: ditto. clean up route_match_metric_compile
slightly to avoid unneccesary XMALLOC.
paul [Mon, 13 Oct 2003 09:06:46 +0000 (09:06 +0000)]
2003-10-13 sowmini.varadhan@sun.com
* ospf_lsa.h: Add OSPF_LSA_PREMATURE_AGE flag.
* ospf_lsa.c: added better debug comments. check sequence number in
ospf_lsa_install. ospf_maxage_lsa_remover() checks for
OSPF_LSA_PREMATURE_AGE and re-originates the lsa after ls_acks are
received.
* ospf_flood.c: improve debug statement- print ls_seqnum.
paul [Mon, 29 Sep 2003 20:06:13 +0000 (20:06 +0000)]
2003-09-29 Gilad Arnold <gilad.arnold@terayon.com>
* zebra/zebra_rib.c: Fix possible dangling reference to rib
route_nodes - unlock it the appropriate number of times. (twice,
because of the implicit lock). see [quagga-dev 251].
paul [Mon, 29 Sep 2003 19:54:53 +0000 (19:54 +0000)]
2003-09-29 Paul Jakma <paul@dishone.st>
* zebra/connected.c: revert the 'generic PtP' patch as it causes
far too many problems. People who use FreeSWAN should investigate
native linux ipsec.
* zebra/rt_netlink.c: ditto
* lib/if.c: ditto
* ripd/ripd.h: ditto
* ripd/ripd.c: ditto
* ripd/rip_interface.c: ditto
* ospfd/ospfd.c: ditto
* ospfd/ospf_snmp.c: ditto
* bgpd/bgp_nexthop.c: ditto
paul [Wed, 24 Sep 2003 05:09:26 +0000 (05:09 +0000)]
2003-09-24 Paul Jakma <paul@dishone.st>
* lib/version.h: moved to version.h.in
* lib/version.h.in: New file, from version.h. Change hardcoded
package name and version to use the autoconf defined substition
variables.
* configure.ac: Fix up AC/AM_INIT* to new style. Remove the sed'ing
through lib/version.h for VERSION. Add lib/version.h to the
AC_OUTPUT list. Update the text output of quagga version at end
of configure run to use PACKAGE_VERSION.
* doc/.cvsignore: ignore quagga.pdf
* doc/.cvsignore: ignore version.h, its now autogenerated.
paul [Wed, 24 Sep 2003 00:05:45 +0000 (00:05 +0000)]
2003-09-24 sowmini.varadhan@sun.com
* zebra/kernel_socket.c: Fix up WRAPUP macro to deal with multiple
address families in the absence of sa_len element in struct
sockaddr.
(ifm_read): Handle solaris 9 if_msghdr_t.
Deal with interfaces which are incomplete, lookup on name rather
than the placeholder interface index of -1.
paul [Tue, 23 Sep 2003 23:20:08 +0000 (23:20 +0000)]
2003-09-24 Thomas Giger TGC <thomas.giger@tgc.de>
* ospf_packet.c (ospf_associate_packet_vl): pass NULL struct
interface to ospf_if_lookup_by_local_addr() rather than the
receiving interface ifp, packets for VL's could come in any
interface. See quagga-dev 250.