hasso [Sat, 28 Aug 2004 17:04:33 +0000 (17:04 +0000)]
Port ospf6d to sigevent and rename signal handling functions in vtysh not to
conflict the ones in lib/sigevent.c. Fixes compiling with --disable-shared.
gdt [Thu, 26 Aug 2004 13:14:07 +0000 (13:14 +0000)]
2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>
* ospf_packet.c (ospf_recv_packet): adjust size declaration of
buffer used to get interface index so that it compiles on other
than Linux and includes the required alignment space. Probably
this was only working on sparc/sparc64 because most of sockaddr_dl
was not being written.
hasso [Thu, 19 Aug 2004 06:56:53 +0000 (06:56 +0000)]
Merge svn revisions 924 and 925 from Zebra CVS. Also remove useless
ospf6_lsdb prototype declaration from ospf6_lsa.h. Report sent to Yasuhiro
Ohara as well.
paul [Thu, 19 Aug 2004 04:41:21 +0000 (04:41 +0000)]
2004-08-19 Paul Jakma <paul@dishone.st>
* Makefile.am: add m4 directory to EXTRA_DIST, and define
ACLOCAL_AMFLAGS to have aclocal pull in m4/
* configure.ac: AM_PROG_LIBTOOL should be AC_PROG_LIBTOOL
* update-autotools: print a warning that this script is deprecated
paul [Thu, 19 Aug 2004 04:34:29 +0000 (04:34 +0000)]
2004-08-19 Paul Jakma <paul@dishone.st>
* *.m4: import of libtool CVS m4 autoconf files. These only
configure libtool support for languages where configure has
already called AC_PROG_<lang>, less fragile.
* README.txt: doc file for contents of this directory.
paul [Thu, 19 Aug 2004 04:13:29 +0000 (04:13 +0000)]
2004-08-19 Paul Jakma <paul@dishone.st>
2004-08-19 Paul Jakma <paul@dishone.st>
* sockopt.c: include sockopt.h
rename some of the _pktinfo_ functions to _ifindex, where that is
their purpose.
(getsockopt_ipv6_pktinfo_ifindex) renamed to
getsockopt_ipv6_ifindex.
(setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex
(setsockopt_pktinfo) update with previous and add comment re
AF_INET portability.
(setsockopt_ifindex) generic ifindex function ala
setsockopt_pktinfo.
(getsockopt_ipv4_pktinfo_ifindex) renamed to
getsockopt_ipv4_ifindex.
(getsockopt_ipv4_ifindex) rejiggling to reduce repeated
ifdef/elses. pktinfo case forgot to set ifindex.
(getsockopt_pktinfo_ifindex) renamed to
getsockopt_ifindex. update some calls to renamed functions.
* sockopt.h: Update renamed exported functions
Rename the CMSG_SIZE macros to IFINDEX.
Guard IPv4 PKTINFO in a conditional define.
paul [Thu, 19 Aug 2004 04:03:08 +0000 (04:03 +0000)]
2004-08-19 Paul Jakma <paul@dishone.st>
* rip_interface.c: (rip_interface_multicast_set) get rid
of extraneous if_pointopoint arg. ifp is accessible via connected.
pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
* ripd.c: (rip_send_packet) update call to
rip_interface_multicast_set
* ripd.h: update rip_interface_multicast_set prototype
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.