paul [Tue, 17 Feb 2004 20:07:30 +0000 (20:07 +0000)]
2004-02-17 Paul Jakma <paul@dishone.st>
* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
params, nor the interface structure, if an interface delete
message is received from zebra.
* ospf_interface.c: (ospf_if_delete_hook) Delete the interface
params and interface, ie that which was previously removed in
(ospf_interface_delete) above.
paul [Tue, 17 Feb 2004 19:45:10 +0000 (19:45 +0000)]
2004-02-17 Paul Jakma <paul@dishone.st>
* bgpd.h: (bgp_peer) add fd_local and fd_accept
file descriptor's, fd becomes a pointer to one of these.
* bgpd.c: (global) adjust for fact that fd is now a pointer.
(peer_create_accept) removed.
* bgp_route.c: (global) adjust for change of peer fd to pointer
* bgp_packet.c: (bgp_collision_detect) adjust and remove the
"replace with other peer" hack.
* bgp_network.c: (bgp_accept) Remove the dummy peer hack.
Update peer->fd_accept instead.
(global) Adjust fd references - now a pointer.
* bgp_fsm.c: (global) adjust peer fd to pointer.
(bgp_connection_stop) new function, to stop connection.
(global) adjust everything which closed peer fd to use
bgp_connection_stop().
hasso [Wed, 11 Feb 2004 21:52:13 +0000 (21:52 +0000)]
Don't crash when attempting to read path->oi->ifp if oi doesn't exist any
more. I'm not sure if this read should be attempted at all, but I'm trying
to keep code safe AND stable.
paul [Fri, 23 Jan 2004 15:31:42 +0000 (15:31 +0000)]
2004-01-23 sowmini.varadhan@sun.com
* rip_interface.c: obsolete unbind code in
rip_interface_multicast_set, and instead do the more portable
(though slower) method of creating a socket for each outgoing packet
and binding the source address on the new socket.
* rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
source address is determined by the caller of rip_request_send for
ripv1 packets and non-multicast interfaces (rip_request_send loops
over all connected address in all other cases).
* rip_send_packet: don't send packets with source set to
ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;
paul [Mon, 19 Jan 2004 21:31:15 +0000 (21:31 +0000)]
2004-01-19 Paul Jakma <paul@dishone.st>
* tests/test-sig.c: New file, regression test for sigevents.
* lib/Makefile.am: add sigevent.{c,h}
* (isis|rip|ripng|ospf|ospf6|bgp)d/\1_main.c: modify for sigevents.
* zebra/main.c: ditto.
paul [Fri, 9 Jan 2004 16:34:54 +0000 (16:34 +0000)]
2004-01-09 Paul Jakma <paul@dishone.st>
* HACKING: slight changes to make consistent with devel.php on web
site. remove 'not yet consensus' as lack of any disagreement can
be interpreted that file does reflect such.
paul [Fri, 9 Jan 2004 16:30:52 +0000 (16:30 +0000)]
2004-01-08 Paul Jakma <paul@dishone.st>
* Makefile.am: as per gdt, specify the redhat dir as a DIST_SUBDIR,
remove the redhat/... dist targets - instead these now go in..
redhat/Makefile.am: (new) proper place to describe redhat/ dist
files, as well as allow quagga.spec to be regenerated properly.
redhat/quagga.sysconfig: specify conf file location.
redhat/quagga.spec.in: Add 2 patches to RPM build.
gdt [Thu, 8 Jan 2004 15:44:29 +0000 (15:44 +0000)]
2004-01-08 Greg Troxel <gdt@fnord.ir.bbn.com>
* kernel_socket.c (kernel_read): Use sockaddr_storage in buffer
for reading kernel messages to ensure enough space (necessary on
Solaris due to sockaddr_dl being large). Thanks to Sowmini
Varadhan for help with this change.
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.