| Age | Commit message (Collapse) | Author | 
|---|
|  | smux_trap and oid_copy should allow read-only source. | 
|  | When BGP crashes, sometimes all we get to see is syslog. | 
|  | An external user was building on system without IPv6 and
it wouldn't work. | 
|  |  | 
|  | The cmd_nodes used to configure vty, can mostly be static so
(basic data hiding 101). | 
|  | Use Ansi-C prototypes rather than old K&R method of declaring
function without arguments | 
|  |  | 
|  | Simple conversion of XMALLOC/memset to XCALLOC | 
|  | * configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in
  support for the old TCP-MD5 patch for Linux 2.4 systems.  This overrides
  auto-detection of TCP-MD5 supported by the target system.
* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old
  Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional
  on the previous configure arg. | 
|  | Compiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.
No run-time testing on 32-bit and limited run-time testing on 64-bit. | 
|  | Macro SNMP_INTEGER() prepares data which is eventually processed
by asn_build_int().  SNMP_INTEGER() was using "int32_t" whereas
asn_build_int() uses "long".  On 32-bit systems these are the
same, both 4 bytes, but on x86 64-bit systems "long" is 8 bytes.
asn_build_int()'s reaction to an improperly sized value is to return
a NULL pointer.  Quagga's smux.c would eventually get this NULL
pointer and use it in calculations to determine how much data to send
over the smux connection, resulting in garbage being sent to the
SNMP agent.
Corrected SNMP_INTEGER() to use "long".
Tested on 32-bit and 64-bit x86 Linux 2.6.27.10 systems running
Quagga 0.99.11 with bgpd smux. | 
|  | * lib/workqueue.c: free-ing workqueues had never been tested obviously,
  queue's thread was not being stopped
* bgpd/bgpd.c: null out freed workqueues, to prevent acting on freed
  workqueues | 
|  | Whenever a thread adds an timer funcname_thread_add_timer_timeval() gets called
to add the timer. Before adding the timer a quagga_gettimeofday() call
is made to do some time house keeping. However quagga_gettimeofday() only
updates recent_time, not relative_time that is used to calculate
the alarm_time. Replace with quagga_get_relative (NULL) | 
|  | The int type cast should be on the whole expression
passed to the mod operator. Otherwise it won't work
when/if c0/c1 is unsigned.
Making c0/c1 unsigned makes it possible to use 5802
as MODX value. | 
|  | * lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here,
  as it used to before this was moved to a dedicated function.. | 
|  | * lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum
  back to the old ospfd logic.
  The isisd-derived version:
  a) is very hard to follow
  b) had some kind of subtle bug that caused it be wrong when c0=0 and c1=254
     (potentially fixable by doing the mods before adjusting x and y)
  Additionally:
  - explicitely cast expressions using non-internal variables to int, to ensure
    the result is signed.
  - defensively change the length argument to 'size_t', to ensure the code
    works with that argument being unsigned..
  Thanks to Joakim Tjernlund for the investigative work into this bug.
* tests/test-checksum.c: new file to exercise the checksum code. | 
|  | * lib/sockunion.c: Re-enable conversion of v6mapped INET6 sockunions to
  regular INET sockunions, which was disabled in 0df7c9, as it leads to
  failures in sockunion_cmp.
  (sockunion_normalise_mapped) consolidate here
  (sockunion_accept) remove conversion code altogether here - no sockunion
  is created
  (sockunion_get{sockname,peername}) normalise newly created sockunion. | 
|  |  | 
|  | --without-crypto
Autoconfig work by me, the rest was done by
"Kirill K. Smirnov" <lich@math.spbu.ru> | 
|  | * lib/command.h: Add a RESTRICTED_NODE, intended for use with
	  anonymous, 'no login' vtys, to provide a subset of 'view' mode
	  commands.
	* lib/command.c: Add RESTRICTED_NODE bits, nothing special, just
	  following VIEW_NODE.
	* lib/vty.c: (vty_auth) enable authentication should fall back to
	  restricted/view node as appropriate.
	  (vty_create) init vty's to restricted/view node as appropriate,
	  for the 'no login' case.
	  (vty_{no_,}restricted_mode_cmd) config commands to enable
	  'anonymous restricted' in vty configuration.
	  (vty_config_write) 'anonymous restricted' config.
	  (vty_init) Install some commands to restricted mode, and the
	  'anonymous restricted' config commands into VTY_NODE.
	* bgpd/*.c: Install some of the safe(r) BGP commands into
	  'restricted mode', i.e. lookup commands of non-sensitive data.
	  Useful with looking-glass route-servers. | 
|  |  | 
|  |  | 
|  | 2008-08-15 Paul Jakma <paul.jakma@sun.com>
	* */*: Fix various problems flagged by Sun Studio compiler.
	  - '<qualifier> <storage>' obsolescent in declarations
	  - empty statements (';' after ALIAS definitions)
	  - implicit declarations (e.g printstack in lib/log.c)
	  - "\%" in printf string instead of "%%"
	  - loops that return on the first iteration (legitimately, but
 	    compiler can't really know), e.g. bgp_routemap.c
 	  - internal declarations which mask prototypes. | 
|  | 2008-08-15 Paul Jakma <paul.jakma@sun.com>
	* lib/sockopt.c: (sockopt_tcp_signature) ifdef'ing hid variable
	  declaration for HAVE_DECL_TCP_MD5SIG && !GNU_LINUX, breaking
	  compile - fix. | 
|  | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
	* lib/log.{c,h}: struct message argument should point to const
	* */*.c: adjust to suit,
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
	* lib/hash.h: (struct hash) Hash comparator callback really
	  ought to treat storage behind arguments as constant - a compare
	  function with side-effects would be evil.
	* */*.c: Adjust comparator functions similarly, thus fixing at least
	  a few compiler warnings about const qualifier being dropped.
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 2008-08-13 Jingjing Duan <Jingjing.Duan@sun.com>
	* lib/checksum.?: (fletcher_checksum) implementation of
	  Fletcher checksum, as per RFC1008.
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 2008-08-13 roy <quagga@de.vio.us>
	* lib/vty.c: (vty_delete_char) move check for authentication
	  down a bit, so we do the delete, but still not re-write of line.
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  |  | 
|  | 2008-07-21 Paul Jakma <paul.jakma@sun.com>
	* bgp_packet.c: (bgp_open_receive) fix warning in a zlog call
	* bgp_vty.c: (bgp_vty_return) add return code
	* bgpd.c: (bgp_master_init) setup the socket list.
	* bgp_network.c: Remove the dual IPv4/6 socket thing for now, which
	  was implemented by Michael, until such time as its clear its
	  required for Linux (see sockopt comments). IPv6 support, including
	  IPv4 sessions on AF_INET6 sockets, therefore is broken, and the
	  '-l 0.0.0.0' arguments would need to be given to bgpd to make
	  things work here.
2008-07-21 Michael H. Warfield <mhw@wittsend.com>
           YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
	   Tomohiko Kusuda <kusuda@inetcore.com>
           Leigh Brown <leigh@solinno.co.uk>
	* bgp_network.c: (bgp_md5_set_one) shim between libzebra tcp-md5
	  sockopt and bgpd.
	  (bgp_md5_set_socket) Helper for bgp_connect
	  (bgp_md5_set) setup TCP-MD5SIG for the given peer.
	  (bgp_connect) call out to bgp_md5_set_socket for the outgoing
	  connect socket.
	  (bgp_socket) save references to the listen sockets, needed if
	  TCP-MD5SIG is applied later or changed.
	* bgp_vty.c: (*neighbor_password_cmd) New 'neighbor ... password'
	  commands.
	* bgpd.c: (peer_{new,delete) manage TCP-MD5 password
	  (peer_group2peer_config_copy) inherit TCP-MD5 password
	  (peer_password_{un,}set) orchestrate the whole add/remove of TCP-MD5
	  passwords: applying checks, stopping peers, and trying to return
	  errors to UI, etc.
	  (bgp_config_write_peer) save password.
	  Fix missing newline in writeout of neighbor ... port.
2008-07-21 Paul Jakma <paul.jakma@sun.com>
	* sockunion.c: ifdef out various places that converted
	  v4mapped sockets to pure v4. Doesn't seem necessary at all,
	  presumably a workaround for now historical inet_ntop bugs (?)
2008-07-21 Michael H. Warfield <mhw@wittsend.com>
           YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
	* sockopt.{c,h}: (sockopt_tcp_signature) Add TCP-MD5SIG support. | 
|  | 2008-06-07 Paul Jakma <paul@jakma.org>
	* stream.{c,h}: (stream_{put,write}) add const qualifier to source
	  argument. Change u_char to void *. | 
|  |  | 
|  | 2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com>
	* rt_netlink.c: (netlink_install_filter) BPF filter to catch and
	  drop responses to zebra's own route messages.
	  (kernel_init) add BPF filter on the netlink socket. | 
|  | 2008-02-28 Paul Jakma <paul.jakma@sun.com>
	* log.c: (mes_lookup) Sowmini Varadhan diagnosed a problem where
	  this function can cause a NULL dereference, on lookups for unknown
	  indices, or messages with NULL strings. Can occur, e.g., debug
	  logging code when processing received messages. Fixed to accept a
	  pointer to a default string to be used if there is no match.
	* log.h: LOOKUP adjusted to match | 
|  | 2008-02-28 Paul Jakma <paul.jakma@sun.com>
	* linklist.c: This implementation expects that the data pointer not
	  be null, e.g. listgetdata() asserts this. The list add methods
	  don't apply the same sanity check.
	  Noted by Jim Carlson in bug #437. | 
|  | 2008-01-30 Peter Szilagyi <sp615@hszk.bme.hu>
	* lib/stream.h: Remove named 'new' parameter in prototype
	  for c++ header compatibility.
	* ospfd/ospf_opaque.h: ditto
	* ospfd/ospfd.h: Renamed struct export to _export for c++
	  header compatibility.
	* ospf6d/ospf6_area.h: ditto | 
|  | 2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* lib/zebra.h: Revert previous change, no need to include
	  <net/if_media.h> here.
	* zebra/ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include
	  <net/if_media.h>
	  (if_get_flags) Remove debug messages about BSD link state.
	* zebra/kernel_socket.c: (bsd_linkdetect_translate) If link state
	  is unknown, we should set the IFF_RUNNING flag. | 
|  | 2008-01-10 Ingo Flaschberger <if@xip.at>
	* configure.ac: Define HAVE_BSD_LINK_DETECT if <net/if_media.h> is
	  present.
	* lib/zebra.h: If HAVE_BSD_LINK_DETECT is defined,
	  include <net/if_media.h>.
	* zebra/ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the
	  SIOCGIFMEDIA ioctl to ascertain link state.
	* zebra/kernel_socket.c: (bsd_linkdetect_translate) New function to
	  map the ifm_data.ifi_link_state value into the IFF_RUNNING flag.
	  (ifm_read) Call bsd_linkdetect_translate to fix the IFF_RUNNING
	  flag before calling if_flags_update. | 
|  | 2008-01-08 Pavol Rusnak <prusnak@suse.cz>
	* memory.c: (mtype_memstr) Fix accidental shift past width of type,
	  constant should have been forced to UL, rather than being left to
	  default to int. | 
|  | existing static routes to be revalidated) | 
|  | 2007-10-22 Lorenzo Colitti <lorenzo@colitti.com>
	* smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
	  (smux_start) Stop smux before trying to start it, possibly again. | 
|  |  | 
|  | 2007-09-18  Paul Jakma <paul.jakma@sun.com>
	* privs.c: definition of ZCAP_NET_ADMIN on Solaris should
	  be PRIV_SYS_IP_CONFIG, when that's available. Thus allowing
	  Quagga to work with in Solaris zones with exclusive IP
	  instances. | 
|  |  | 
|  |  | 
|  | 2007-08-07 Atis Elsts <atis@mikrotik.com>
	* ospf_spf.c: (ospf_spf_next) Sort heap in correct direction
	  after vertex cost is changed, thus fixing incorrect SPF
	  calculation on certain topologies.
	* lib/pqueue.{c,h}: Export trickle_up | 
|  | 2007-07-26 Paul Jakma <paul.jakma@sun.com>
	* (general) Clean up and compact capability parsing slightly.
	  Consolidate validation of length and logging of generic TLV, and
	  memcpy of capability data, thus removing such from cap specifc
	  code (not always present or correct).
	* bgp_open.h: Add structures for the generic capability TLV header
	  and for the data formats of the various specific capabilities we
	  support.  Hence remove the badly named, or else misdefined, struct
	  capability.
	* bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.
	  Do the length checks *before* memcpy()'ing based on that length
	  (stored capability - should have been validated anyway on input,
	  but..).
	  (bgp_afi_safi_valid_indices) new function to validate (afi,safi)
	  which is about to be used as index into arrays, consolidates
	  several instances of same, at least one of which appeared to be
	  incomplete..
	  (bgp_capability_mp) Much condensed.
	  (bgp_capability_orf_entry) New, process one ORF entry
	  (bgp_capability_orf) Condensed. Fixed to process all ORF entries.
	  (bgp_capability_restart) Condensed, and fixed to use a
	  cap-specific type, rather than abusing capability_mp.
	  (struct message capcode_str) added to aid generic logging.
	  (size_t cap_minsizes[]) added to aid generic validation of
	  capability length field.
	  (bgp_capability_parse) Generic logging and validation of TLV
	  consolidated here. Code compacted as much as possible.
	* bgp_packet.c: (bgp_open_receive) Capability parsers now use
	  streams, so no more need here to manually fudge the input stream
	  getp.
	  (bgp_capability_msg_parse) use struct capability_mp_data. Validate
	  lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.
	  (bgp_capability_receive) Exported for use by test harness.
	* bgp_vty.c: (bgp_show_summary) fix conversion warning
	  (bgp_show_peer) ditto
	* bgp_debug.h: Fix storage 'extern' after type 'const'.
        * lib/log.c: (mes_lookup) warning about code not being in
          same-number array slot should be debug, not warning. E.g. BGP
          has several discontigious number spaces, allocating from
          different parts of a space is not uncommon (e.g. IANA
          assigned versus vendor-assigned code points in some number
          space). | 
|  | 2007-07-06 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about
	  the arguments. | 
|  | 2007-06-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* zebra.h: On linux, we seem to need to include <linux/types.h> before
	  <sys/sysctl.h>, otherwise we get isisd compilation errors about
	  __be16 not being defined. | 
|  | 2007-05-10 Paul Jakma <paul.jakma@sun.com>
	* configure.ac: Use AC_GNU_SOURCE to define _GNU_SOURCE, rather
	  than having lib/zebra.h do it.
	  AC_FUNC_STRNLEN has side-effects with latest autoconf, use
	  AC_CHECK_FUNC on strnlen instead.
	* lib/zebra.h: Don't try define _GNU_SOURCE, autoconf should do it. |