paul [Mon, 8 Nov 2004 15:43:21 +0000 (15:43 +0000)]
2004-11-07 Paul Jakma <paul@dishone.st>
* buffer.c: Add missing include of log.h.
(buffer_flush_available) written is compared against
mostly against unsigned types, only for the writev do we need
signed compare, so declare it as size_t and cast it to ssize_t
just for the error compare when we've called writev.
* buffer.h: Add comment that buffer data sizes really should be
size_t.
paul [Mon, 8 Nov 2004 12:08:35 +0000 (12:08 +0000)]
2004-11-07 Paul Jakma <paul@dishone.st>
* quagga.texi: include routeserver.texi. TODO: integrate the current
multiple-instance orientated bgpd route-server section with the
new route-server docs.
paul [Sun, 7 Nov 2004 22:34:23 +0000 (22:34 +0000)]
2004-11-06 Paul Jakma <paul@dishone.st>
* configure.ac: Arguments to AC_OUTPUT is deprecated, use
AC_CONFIG_FILES instead. Rearrange the order slightly to put the
Makefiles first (silly aesthetic thing, dont know why I had to do
this ;) ). Add doc/defines.texi to the list.
* NEWS: bgp route-server support added, refer to docs.
* update-autotools: call automake with --add-missing and --copy,
former is important for obvious reasons, latter for dist files,
and --gnu to enable whatever extra goodness checks.
* {depcomp, install-sh, missing}: removed, auto-generated files.
paul [Sun, 7 Nov 2004 19:39:13 +0000 (19:39 +0000)]
2004-11-07 Paul Jakma <paul@dishone.st>
* Makefile.am: Add automatic rule to build pdf's from eps figures.
Clean *.pdf. Add rule for quagga.pdf (as the eps.pdf pattern
probably otherwise will override automake's rule for quagga.pdf)
* overview.texi: URL was causing TeX overfull, put on newline.
* quagga.texi: Put the copyright notice into @copying section, as
is proper. Strip trailling space from the main menu lines.
* rip(ng)?d.texi: Minor reformatting.
* Add the route server docs.
* bgpd.texi: remove unneeded page breaks. The 6Bone example
overflows though.
paul [Sun, 7 Nov 2004 19:00:16 +0000 (19:00 +0000)]
2004-11-07 Paul Jakma <paul@dishone.st>
* Add the route server docs.
* routeserver.texi: new file, texinfo'fied and slightly modified
version of the original TeX from James Luis Rubio.
* fig-*.eps: new files, diagrammes.
paul [Sat, 6 Nov 2004 17:13:09 +0000 (17:13 +0000)]
2004-11-06 Paul Jakma <paul@dishone.st>
* defines.texi.in: New file, texi variables should be set here,
autoconf substitution is available. Define common AUTHORS,
COPYRIGHT_YEAR and COPYRIGHT_STR vars.
* (global): Make use of makeinfo node pointer auto-creation
to avoid having to fully specify links for nodes, so we only have
to specify current node name - simplifies text slightly.
Remove extraneous newlines which appear to cause extra blank pages
to be added in output.
Update copyright strings which appear in various places to
use the new COPYRIGHT_STR texinfo variable.
Change url to uref, the former need not output an actual
hyperlink depending on version of texinfo, the latter should if
supported by the format (eg PDF).
* texinfo.tex: Update to a more recent version. previous file
was many many years old. This file should possibly be removed
altogether, and allowed to be installed by automake.
* quagga.texi: Make use of automake's version.texi feature to
have VERSION and some other vars auto-defined. include
defines.texi. Change copyright strings to use the COPYRIGHT_STR
variable.
* install.texi: Make the privs section an actual section. Ditto for
the Linux notes.
* overview.texi: Supply URL for Quagga, where format allows. Tidy up
one or two paragraphs slightly.
Update the section on supported platforms.
Remove the ZNOG list stuff, direct reader to the website for
further information on email lists.
* vtysh.texi: Update the integrated config file section. Make the
commands sections so correct PDF indexes are built.
paul [Fri, 5 Nov 2004 23:38:20 +0000 (23:38 +0000)]
2004-11-05 Paul Jakma <paul@dishone.st>
* HACKING: Expand on ChangeLogs, eg current practice for certain
directories and certain other meta-data is not to maintain a
ChangeLog. Expand on the commit message, IMHO, commit message
should always be ChangeLog for files where ChangeLog is kept.
Solaris is supported on any platform (with, at moment, an
additional patch).
gdt [Fri, 5 Nov 2004 18:42:27 +0000 (18:42 +0000)]
2004-11-05 Phil Spagnolo <phillip.a.spagnolo@boeing.com>
* ospf6_flood.c: When adding a thread to retransmit an lsa after
rxmt_interval, the ospf6d used thread_add_event(). However,
thread_add_event() executes immediately and ignores the delay parameter.
This was causing unnecesary unicast LSU sends. Adding the thread has
been changed to use thread_add_timer() which will expire after delay.
After the fix results appear consistent with expectation.
gdt [Fri, 5 Nov 2004 13:17:20 +0000 (13:17 +0000)]
Adjust per-directory vs global ChangeLog to match current practice.
Spelling fixes.
Add Solaris on 64-bit to list of 'supported' platforms.
List NetBSD/sparc64 as a 'future' platform - there aren't enough users
to make it really supported, but it's good at exposing latent bugs
(e.g router advertisement formatting on BSD, and LSA alignment
issues).
Note explicitly that ospf6d and isisd are in 'testing' rather than
'stable'. (Feel free to correct - just wanted to get more explicit.)
Add note questioning current relevance of isisd.sf.net - is our repo
the canonical place now?
ajs [Fri, 5 Nov 2004 01:25:55 +0000 (01:25 +0000)]
2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* vty.h: Remove fields in struct vty that were related to VTY_CONTINUE
capabilities (that were used only in bgpd/bgp_route.c and are now
removed). Also remove some other fields that were not being
used at all.
* vty.c: (vty_execute) Do not test for obsolete status values VTY_START
and VTY_CONTINUE.
(vty_read) Remove calls to vty->output_func since that was part
of the VTY_CONTINUE infrastructure that has been removed.
(vty_flush) Remove code to support VTY_START and VTY_CONTINUE.
(vty_close) Remove code to cancel vty->t_output thread, since that
thread was never actually used.
* bgp_route.c: Remove all code related to VTY_CONTINUE; this feature
is deprecated because the output did not represent a single point
in time. All output needs to be generated inline and buffered
by the library code.
(route_vty_out,route_vty_out_tag,damp_route_vty_out,
flap_route_vty_out) Remove code to count number of lines of output,
since this was only useful for VTY_CONTINUE behavior.
(bgp_show_callback) Removed.
(bgp_show_table) Remove hooks for VTY_CONTINUE callback support.
As a result, there's a new output_arg argument to this function.
Make function static.
(bgp_show) Make function static and add a new output_arg argument.
Change all functions that call bgp_show or bgp_show_table to
pass the new output_arg argument (that used to be passed inside
vty->output_arg).
* bgp_mplsvpn.c: Remove declarations of functions defined in
bgp_route.c; these declarations belong in bgp_route.h.
* bgp_route.h: Declare 3 global functions used in both bgp_route.c
and in bgp_mplsvpn.c.
ajs [Thu, 4 Nov 2004 19:26:16 +0000 (19:26 +0000)]
2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* vty.c: Vtysh connections to daemons should use buffering.
(vty_out) Remove exception for vty_shell_serv, just use buffer_write.
(vty_new) Increase output buffer size to 4096 rounded up to a
multiple of pagesize.
(vtysh_read) After command has been executed and all output buffered,
call buffer_flush_available and schedule further writes if the
buffers are not yet empty.
(vtysh_write) New function to flush output to vtysh when the socket
is writeable.
(vty_event) Added new VTYSH_WRITE event for flushing buffers to vtysh
clients. Also, should save read thread in vty->t_read so the
thread can be cancelled in vty_close.
* buffer.h: In struct buffer_data, remove unused "parent" field.
Convert "unsigned char *data" to "unsigned char data[0]" to save
a malloc. Declare new function buffer_flush_available that works
with non-blocking sockets.
* buffer.c: (buffer_data_new) Use a single malloc now that data is
a variable-size array at end of structure.
(buffer_data_free) Just a single free now that data is part of the
structure.
(buffer_write) Simplify the logic to make behavior more transparent.
(buffer_flush) Decrease b->length as data is written out.
(buffer_flush_vty_all) Decrease b->length as buffers are freed.
(buffer_flush_vty) Decrease b->length as data is written out.
(buffer_flush_available) New function to flush non-blocking sockets.
paul [Tue, 2 Nov 2004 20:26:45 +0000 (20:26 +0000)]
2004-11-02 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points
to it. Add convenience pointer to msg->msg_iov[1], and use this,
fixing the unfortunate borkenness introduced in moving of this code
to a function.
(ospf_write) remove iovp and fix up call to previous.
(ospf_ls_upd_packet_new) cast size to long int - unfortunately
glibc's size_t format modifier is not portable.
paul [Sun, 31 Oct 2004 18:01:13 +0000 (18:01 +0000)]
2004-10-31 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_ls_upd_packet_new) Format for size_t should
be ld.
* ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of
THREAD_ARG to store an integer, but it should at least use same
same type to retrieve the value. Assert value is sane.
paul [Sun, 31 Oct 2004 16:19:24 +0000 (16:19 +0000)]
2004-10-31 Paul Jakma <paul@dishone.st>
* memory.h: Add MTYPE_THREAD_FUNCNAME and MTYPE_THREAD_STATS
* thread.c: Update stats and funcname alloc/free to use previous
specific memory type defines
paul [Sun, 31 Oct 2004 11:24:51 +0000 (11:24 +0000)]
2004-10-31 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_write_frags) Add debug output
(ospf_write) set type early, so we can pass it to
ospf_write_frags.
(ospf_ls_upd_packet_new) print size in debug output when too large
packet is encountered.
paul [Fri, 29 Oct 2004 08:29:36 +0000 (08:29 +0000)]
2004-10-29 Paul Jakma <paul@dishone.st>
* vty.c: Move setting of sock to O_NONBLOCK from vty_serv_un
to vtysh_accept, where sock is the actual fd we wanted to set to
O_NONBLOCK, ie the /connected/ vtysh unix socket.
paul [Mon, 25 Oct 2004 14:19:15 +0000 (14:19 +0000)]
2004-10-25 Paul Jakma <paul@dishone.st>
* Update with fix in debian bug id 222930.
* bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces.
bgp_network.c: (....) raise/lower privs around call to
SO_BINDTODEVICE sockopt.
paul [Fri, 22 Oct 2004 12:27:44 +0000 (12:27 +0000)]
2004-10-22 Paul Jakma <paul@dishone.st>
* command.h: Cleanup the defines a bit, add helper defines and
collapse all defines to use those. Add an attribute field to
cmd_element to support, eg hidden or deprecated commands, add
defun defines for such. All that's left to do is add logic
to command.c to check these attributes... ;)
paul [Fri, 22 Oct 2004 12:05:17 +0000 (12:05 +0000)]
2004-10-22 Paul Jakma <paul@dishone.st>
* ospf_network.c: (ospf_sock_init) call neutral setsock_ifindex()
function.
* ospf_packet.c: (ospf_read) manually look up ifindex
if system could not have returned one, eg openbsd.
paul [Fri, 22 Oct 2004 11:51:57 +0000 (11:51 +0000)]
2004-10-22 Paul Jakma <paul@dishone.st>
* sockopt.c: (setsockopt_pktinfo) unexported
* sockopt.h: Cleanup SOCKOPT_CMSG defines a bit. Add a throwaway
define for SOPT_SIZE_CMSG_IFINDEX_IPV4 for systems which have
neither IP_RECVIF nor IP_PKTINFO (eg openbsd).
paul [Fri, 22 Oct 2004 10:27:28 +0000 (10:27 +0000)]
2004-10-22 Paul Jakma <paul@dishone.st>
* ripd.c: Collapse redundant passing of various address structs,
struct interface and struct connected as arguments to functions
down to two key arguments, namely struct connected and, possibly,
address of source/destination. Testing for RIPv1 would be useful.
(rip_read) lookup struct connected for the received packet, pass
it on.
* rip_interface.c: With previous changes, we no longer have to tread
carefully with struct connected, as it will always be there and
valid.
paul [Fri, 22 Oct 2004 04:55:05 +0000 (04:55 +0000)]
2004-10-22 Paul Jakma <paul@dishone.st>
* configure.ac: fix up enable help alignment slightly
Add --enable-gcc-ultra-verbose to set various gcc warnings which
should one day be fixed but are not serious problems or which
could be false-positives.
hasso [Wed, 13 Oct 2004 10:33:26 +0000 (10:33 +0000)]
Make initializing smux connection configurable - "smux peer OID" command
initializes connection, and "no smux peer" command terminates it. Fixes
bugzilla #47 and #112.
paul [Wed, 13 Oct 2004 05:22:18 +0000 (05:22 +0000)]
2004-10-13 Paul Jakma <paul@dishone.st>
* (global) more const'ification.
* sockunion.c: (sockunion_su2str) buffer should be sized
SU_ADDRSTRLEN.
(sockunion_log) do not return stack variables, strdup buf before
return.
* vty.h: Fix up the VTY_GET_INTEGER macros. Testing caller supplied
values against ULONG_MAX is daft, when caller probably has passed
a type that can not hold ULONG_MAX. use a temporary long instead.
Add VTY_GET_LONG, make VTY_GET_INTEGER_RANGE use it, make
VTY_GET_INTEGER a define for VTY_GET_INTEGER_RANGE.
paul [Wed, 13 Oct 2004 05:06:08 +0000 (05:06 +0000)]
2004-10-13 Paul Jakma <paul@dishone.st>
* (global) more const'ification and fixups of types to clean up code.
* bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,
should use something like the VTY_GET_INTEGER macro, but without
the vty_out bits..
* bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE
(no_set_aggregator_as) ditto.
* bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is
returned, add comments about troublesome return value.
paul [Mon, 11 Oct 2004 18:21:55 +0000 (18:21 +0000)]
2004-09-17 Paul Jakma <paul@dishone.st>
* vtysh.c: (vtysh_client_execute) fix the sync fix. The 4th and
final sync byte is not ASCII NULL, it's actually a status integer,
and only ASCII NULL if CMD_SUCCESS is returned by daemon.
Fix pointed out by Hasso.
paul [Mon, 11 Oct 2004 11:00:30 +0000 (11:00 +0000)]
2004-10-11 Paul Jakma <paul@dishone.st>
* (global) Const char update and signed/unsigned fixes.
* (various headers) size defines should be unsigned.
* ospf_interface.h: remove duplicated defines, include the
authoritative header - though, these defines should probably
be moved to a dedicated header, or ospfd.h.
* ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.
* ospf_packet.c: (ospf_write) cast result of shift to unsigned.
paul [Mon, 11 Oct 2004 10:11:25 +0000 (10:11 +0000)]
2004-10-11 Paul Jakma <paul@dishone.st>
* ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order
remove ntohs that should have dissappeared. Take struct ip
as argument, caller has to know there's an IP header at start of
stream anyway.
* ospf_dump.h: update declaration of ospf_ip_header_dump.
* ospf_packet.c: (ospf_write) correct call to
sockopt_iphdrincl_swab_htosys which was munging the header.
(ospf_recv_packet) ip_len is needed for old OpenBSD fixup.
(ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as
we have it.
paul [Sun, 10 Oct 2004 11:56:56 +0000 (11:56 +0000)]
2004-10-10 Paul Jakma <paul@dishone.st>
* version.h.in: (pid_output*) add const qualifier.
* command.h: Change DEFUN func to take const char *[] rather
than char **, to begin process of fixing compile warnings in lib/.
Nearly all other changes in this commit follow from this change.
* buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take
const void * and cast an automatic const char *p to it.
(buffer_putstr) add const
* command.c: (zencrypt) const qualifier
(cmd_execute_command_real) ditto
(cmd_execute_command_strict) ditto
(config_log_file) ditto.
Fix leak of getcwd() returned string.
* memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.
* distribute.{c,h}: Update with const qualifier.
(distribute_free) use MTYPE_DISTRIBUTE_IFNAME
(distribute_lookup) Cast to char *, note that it's ok.
(distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.
(distribute_get) Cast to char *, note that it's ok.
* filter.c: Update with const qualifier.
* if.{c,h}: ditto.
* if_rmap.{c,h}: ditto.
(if_rmap_lookup) Cast to char *, note that it's ok.
(if_rmap_get) ditto.
* log.{c,h}: Update with const qualifier.
* plist.{c,h}: ditto.
* routemap.{c,h}: ditto.
* smux.{c,h}: ditto. Fix some signed/unsigned comparisons.
* sockopt.c: (getsockopt_cmsg_data) add return for error case.
* vty.c: Update with const qualifier.