paul [Wed, 18 Aug 2004 21:52:58 +0000 (21:52 +0000)]
2004-08-18 Paul Jakma <paul@dishone.st>
* vty.c: (vty_serv_un) set unix vty socket to nonblocking
to prevent inadvertent blocking of daemons by use of
vtysh. TODO: disentangle manual paging from the buffer_write
path so that unix vty can use this path too and be reliable.
gdt [Wed, 11 Aug 2004 18:06:38 +0000 (18:06 +0000)]
2004-08-11 Greg Troxel <gdt@fnord.ir.bbn.com>
* rtadv.c (rtadv_send_packet): Allocate space for control messages
more carefully; it was wrong on NetBSD/sparc where CMSG alignment
is to 8 bytes instead of 4, and overwriting the address. Use the
provided macros for determining lengths.
hasso [Tue, 10 Aug 2004 12:00:34 +0000 (12:00 +0000)]
I am bored. But I hate questions why there are man pages from version 0.88.
Vtysh man page looks already how it should look IMHO, the rest need more
work.
paul [Thu, 5 Aug 2004 09:10:31 +0000 (09:10 +0000)]
2004-08-04 Paul Jakma <paul@dishone.st>
* ospf_spf.c: (ospf_spf_consider_nexthop) Add comment about issue.
Compare only against list head - all nexthops must be same cost
anyway, fixes a reference-listnode-after-delete bug noted by
Kir Kostuchenko.
(ospf_nexthop_calculation) Use ospf_spf_consider_nexthop for all
candidates attached to root.
paul [Tue, 27 Jul 2004 17:40:44 +0000 (17:40 +0000)]
2004-07-27 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_ls_upd_send_queue_event) fix thinko from
last fix for ospfd wedging due to oversize LSAs: dont list loop on
ospf_ls_upd_queue_send() - guaranteed segfault.
paul [Tue, 27 Jul 2004 11:19:11 +0000 (11:19 +0000)]
2004-07-27 Paul Jakma <paul@dishone.st>
* ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out
the LSA as then free_opaque_info_per_id() can never unlock (and
free) the LSA. Reported by Gunnar Stigen.
* sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile
on NetBSD, and add comments to make it less confusing. Change the
sense of the SUNOS_5 test to make parallel structure between the
variables and the code.
paul [Fri, 23 Jul 2004 15:13:48 +0000 (15:13 +0000)]
2004-07-23 Paul Jakma <paul@dishone.st>
* ospf_network.c: Replace PKTINFO/RECVIF with call to
setsockopt_pktinfo
* ospf_packet.c: Use getsockopt_pktinfo_ifindex and
SOPT_SIZE_CMSG_PKTINFO_IPV4.
paul [Fri, 23 Jul 2004 15:11:07 +0000 (15:11 +0000)]
2004-07-23 Paul Jakma <paul@dishone.st>
* sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for
sizeof pktinfo as appropriate, to be used when allocating msg
buffers. export setsockopt_pktinfo() and
getsockopt_pktinfo_ifindex()
* sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably
set received ifindex sock option.
(getsockopt_pktinfo_ifindex) portably retrieve ifindex.
(getsockopt_cmsg_data) retrieve indicated control info from
message header.
(getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.
(setsockopt_ipv4_pktinfo) v4 version
(setsockopt_pktinfo) the exported version
(getsockopt_ipv4_pktinfo_ifindex) v4 specific version
(getsockopt_pktinfo_ifindex) the exported version
paul [Thu, 22 Jul 2004 19:14:27 +0000 (19:14 +0000)]
2004-07-14 Paul Jakma <paul@dishone.st>
* sigevent.c: (quagga_signal_handler) add a global caught flag, set
the flags to a constant rather increment to be kinder.
(quagga_sigevent_process) new function, to do core of what
quagga_signal_timer did. dont block signals at all as sig->caught
is volatile sig_atomic_t and should be safe to access from signal
and normal contexts. The signal blocking is unneeded paranoia, but
is left intact under an ifdef, should some platform require it.
Check global caught flag before iterating through array.
(quagga_signal_timer) nearly everything moved to
quagga_sigevent_process. Left in under ifdef, in case some
platform could use a regular timer check for signals.
* sigevent.h: quagga_sigevent_process declaration.
* thread.c: (thread_fetch) check for signals at beginning of
scheduler loop, check for signals if select returns EINTR.
paul [Wed, 14 Jul 2004 20:50:36 +0000 (20:50 +0000)]
2004-07-14 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for
problem reported by Peter Frost amongst others, where function
will spin indefinitely if update list contains LSAs greater than
MTU-headers or other condition leading to update list never being
cleared. Problem of what to do with these LSAs remains.
(ospf_make_ls_upd) add comment about large LSA problem,
indentation cleanup.
* bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket
if that is connection we're closing.
(bgp_read) invalid marker check applies to KEEPALIVE too.
* bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.
gdt [Wed, 30 Jun 2004 17:36:11 +0000 (17:36 +0000)]
Add libtool support.
libzebra and libospfapiclient are now built shared, and linked shared
with the daemons. This reduces the memory needed when running
multiple daemons; each daemon is at least 150k smaller. Static
libraries are still built, and libtool should use them on platforms
which don't have shared libaries. As with autoconf, the user of a
distribution does not need libtool; one just needs that to build from
CVS.
libospf.a is still a non-shared library, and still installed, not
because that makese sense, but because I don't understand why it is
the way it is now.
Note that the tree was tagged 'libtool-before' just before this commit.
gdt [Wed, 30 Jun 2004 14:25:12 +0000 (14:25 +0000)]
Make vtysh work on NetBSD, and minor cleanups:
if --enable-vtysh, look for perl, and substitute into vtysh/extract.pl,
rather than assuming perl is in /usr/bin
Look for tputs in libtermcap and libcurses, in addition to
previously-searched locations. Follow GNU readlines search order.
Clean up --enable-vtysh definition in configure.ac.
Add vtysh/vtysh_cmds.c to CLEANFILES. This is important if
extract.pl fails, so that 'make clean && make' will regenerate
vtysh_cmds.c rhather than using the old zero-length file.
* filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast
to u_char. (ipv6_access_list_remark_cmd) ditto.
if.c: ditto
* network.c: (readn/writen) pointer arg should be type u_char.
* plist.c: needs to include stream.h, not declare stream functions
internally.
(various) Add static qualifier to internal functions.
(prefix_list_type_str) extraneous breaks in switch statement.
(ip_prefix_list_description_cmd) buffer_putstr doesnt need cast
* stream.h: depends on plist.h and export stream_put_prefix
* vty.c: (vty_<telnet option build functions>) should use
unsigned char, telnet options are 0 -> 255.
* zclient.c: various u_char<->char type cleanups.
* zebra.h: Having to define CMSG_* can apply to more than just
BSDI_NRL.
* ripd.c: (rip_distribute_update_all) distribute list hook
function pointer prototype requires struct prefix_list * arg.
(rip_distribute_update_all_wrapper) update to pass required arg,
NULL.
paul [Sun, 6 Jun 2004 22:06:33 +0000 (22:06 +0000)]
2004-06-06 Paul Jakma <paul.jakma@sun.com>
* ripd.h: Add define for the RIPv2 Authentication Data family
Move the auth type defines up to where other defines live.
Add RIP_AUTH_MD5_COMPAT_SIZE, for backwards compatible
md5->auth_len size. Add md5_auth_len field to struct
rip_interface: (rip_interface_new) Init md5_auth_len to compatible
size.
(ip_rip_authentication_mode_cmd) Extended to handle setting
md5 auth-length. Appropriate aliases added.
(no_ip_rip_authentication_mode_cmd) Reset md5_auth_len to
compatible size.
(rip_interface_config_write) Teach it about md5_auth_len.
_always_ write out the auth-length, so that everyone will get
the setting in their config file, and hence allow for a future
change of default for md5_auth_len to be less painful - every md5
user will have this setting in their config file.
ripd.c: (rip_packet_dump) Change nasty hard coded constants to
symbolic defines. Change various tests of 'ntoh.(variable) ==
constant' to test 'variable == ntoh.(constant)'. Clean up
indentation on some long lines.
(rip_auth_simple_password) ditto.
(rip_auth_md5) ditto, also add length argument and sanity check
md5 data offset field. Sanity check md5 auth length, accept RFC
or old-ripd/cisco lengths.
(rip_auth_md5_set) as per (rip_packet_dump), also write out
the configured md5 auth length for the interface (old-ripd or rfc)
(rip_read) as per (rip_packet_dump)
(rip_write_rte) ditto
(rip_response_process) ditto
(rip_write_rte) ditto
paul [Mon, 31 May 2004 14:16:54 +0000 (14:16 +0000)]
2004-05-31 Sagun Shakya <sagun.shakya@sun.com>
* ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if
index is out of range.
ospf_flood.c: endianness fix
ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum
in various places.
hasso [Tue, 18 May 2004 11:58:59 +0000 (11:58 +0000)]
Router advertisement cleanup. Removed compatibility command because it's
very annoying to have both obsolete "prefix-advertisement" and "prefix" in
completion. We will break configuration anyway with secondary cleanup, so
just remember mention it in release notes.
paul [Tue, 11 May 2004 12:01:33 +0000 (12:01 +0000)]
2004-05-11 Paul Jakma <paul@dishone.st>
* ripng_nexthop.h: SUNOS_5 does not define s6_addr32
catch ifndef(s6_addr32) && defined(SUNOS_5) and define
it ourselves based on the S10 _KERNEL guarded define.
paul [Tue, 11 May 2004 11:31:07 +0000 (11:31 +0000)]
2004-05-11 Paul Jakma <paul@dishone.st>
* ioctl.h: Add if_ioctl_ipv6 prototype and AF_IOCTL for SOLARIS_IPV6
* kernel_socket.c: Fix SAROUNDUP, compiler doesnt like do..while
RHS in assignments :)
* redistribute.c: (zebra_interface_delete_update) only used
if RTM_IFANNOUNCE and NETLINK is available.
paul [Tue, 11 May 2004 10:55:22 +0000 (10:55 +0000)]
2004-05-11 Paul Jakma <paul@dishone.st>
* Makefile.am: support for IOCTL_METHOD, as per Sowmini's patch.
* if_ioctl_solaris.c: Fixup some erroneous privilege changes and
add privs.h header.
* ioctl_solaris.c: ditto
paul [Tue, 11 May 2004 10:49:35 +0000 (10:49 +0000)]
2004-05-11 Paul Jakma <paul@dishone.st>
* configure.ac: Add solaris support for the zebra/*_solaris
method's, based on Sowmini's patches.
* zebra/Makefile.am: support for IOCTL_METHOD, as per Sowmini's
patch.
hasso [Mon, 10 May 2004 07:43:59 +0000 (07:43 +0000)]
* Make updating redistributions work if prefix list is changed and it's
used in route-map used to filter redistributions.
* Move ospf_prefix_list_update() function from ospfd.c to ospf_zebra.c.
paul [Sun, 9 May 2004 11:00:23 +0000 (11:00 +0000)]
2004-05-09 Paul Jakma <paul@dishone.st>
* ioctl.c: (if_get_mtu) set mtu6 to mtu
* mtu_kvm.c: (if_kvm_get_mtu) set mtu6 to mtu
* rt_netlink.c: (netlink_interface) set mtu6 to mtu
(netlink_link_change) ditto
* interface.c: (if_delete_update) only used with HAVE_NETLINK
and RTM_IFANNOUNCE.
(if_flag_dump_vty) Solaris IFF_IPV4 and IFF_IPV6 if flags
(if_dump_vty) print mtu6 if not same as mtu
paul [Sun, 9 May 2004 09:09:59 +0000 (09:09 +0000)]
2004-05-09 Paul Jakma <paul@dishone.st>
* zserv.c: (zsend_route_multipath) Set the nexthop_num
field correctly. Add NEXTHOP_TYPE_IPV6_IFNAME for v6.
Conditionally set ZAPI_MESSAGE_METRIC flag - only for adds.
(zsend_ipv4_add) cruft, deleted.
(zsend_ipv4_delete) ditto.
(zsend_ipv6_add) ditto.
(zsend_ipv6_delete) ditto.