| Age | Commit message (Collapse) | Author | 
|---|
|  | how much storage is required. | 
|  | * (global) Update code to match stream.h changes.
	  stream_get_putp effectively replaced with stream_get_endp.
	  stream_forward renamed to stream_forward_getp.
	  stream_forward_endp introduced to replace some previous
	  setting/manual twiddling of putp by daemons.
	* lib/stream.h: Remove putp. Update reference to putp with endp.
	  Add stream_forward_endp, which daemons were doing manually.
	  Rename stream_forward to stream_forward_getp.
	  lib/stream.c: Remove/update references to putp.
	  introduce stream_forward_endp. | 
|  | * ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the
	  error message. | 
|  | * ospf_interface.h: Reduce structure padding by putting new u_char
	  field multicast_memberships in a better spot (grouped with
	  other u_char fields type and state). | 
|  | * zebra.h: Change macro definitions SET_FLAG and UNSET_FLAG
	  to use compound assignment operators (aesthetic change). | 
|  | * ospf_interface.h: Improve passive_interface comment.  Add new
	  multicast_memberships bitmask to struct ospf_interface to track
	  active multicast subscriptions.  Declare new function
	  ospf_if_set_multicast.
	* ospf_interface.c: (ospf_if_set_multicast) New function to configure
	  multicast memberships properly based on the current
	  multicast_memberships status and the current values of the
	  ospf_interface state, type, and passive_interface status.
	  (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is
	  now handled by ism_change_state's call to ospf_if_set_multicast).
	  (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now
	  handled by ism_change_state).
	* ospf_ism.c: (ospf_dr_election) Remove logic to join or leave
	  the DRouters multicast group (now handled by ism_change_state's call
	  to ospf_if_set_multicast).
	  (ism_change_state) Add call to ospf_if_set_multicast to change
	  multicast memberships as necessary to reflect the new interface state.
	* ospf_packet.c: (ospf_hello) When a Hello packet is received on a
	  passive interface: 1. Increase the severity of the error message
	  from LOG_INFO to LOG_WARNING; 2. Add more information to the error
	  message (packet destination address and interface address);
	  and 3. If the packet was sent to ospf-all-routers, then try
	  to fix the multicast group memberships.
	  (ospf_read) When a packet is received on an interface whose state
	  is ISM_Down, enhance the warning message to show the packet
	  destination address, and try to update/fix the multicast group
	  memberships if the packet was sent to a multicast address.
	  When a packet is received for ospf-designated-routers, but the
	  current interface state is not DR or BDR, then increase the
	  severity level of the error message from LOG_INFO to LOG_WARNING,
	  and try to fix the multicast group memberships.
	* ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for
	  any ospf interface that may have changed from active to passive.
	  (no_ospf_passive_interface) Call ospf_if_set_multicast for
	  any ospf interface that may have changed from passive to active.
	  (show_ip_ospf_interface_sub) Show multicast group memberships. | 
|  | * ospf_packet.c: (various) Remove unneeded stream_set_putp abuse. | 
|  | * ripd.c: Untangle the construction of RIP auth data.
	  (rip_auth_prepare_str_send) new helper function, prepare
	  correct key string.
	  (rip_auth_simple_write) new helper, write out the
	  rip simple password auth psuedo-RTE.
	  (rip_auth_md5_ah_write) new helper, write out the
	  MD5 auth-header psuedo-RTE.
	  (rip_auth_header_write) new helper, write out correct
	  auth header data / psuedo-RTE.
	  (rip_auth_md5_set) rip out the memmove and writing of the
	  auth header psuedo-RTE. So that all that is left is to
	  write the trailing auth digest, and update digest offset
	  field in the original header.
	  (rip_write_rte) rip out writing of RIP header, writing of
	  simple auth data psuedo-RTE. Make it do what its name suggests,
	  write out actual RTEs.
	  (rip_output_process) remove the incorrect additional decrements
	  of rtemax. Prepare the auth_str, which simple or MD5 auth will
	  need. Move write out of RIP header and auth data to inside the
	  loop. Adjust paramaters as required. | 
|  | * log.c: (zlog_signal,zlog_backtrace_sigsafe) Eliminate use of fileno()
	  since it is not async-signal-safe.
	  (_zlog_assert_failed) Rewrite crashlog logic more compactly.
	  (zlog_set_file,zlog_reset_file,zlog_rotate) Update logfile_fd
	  for use in signal handler. | 
|  | * basic.texi: Add note about last-resort crash logging to /var/tmp
	  when file logging is not configured.
	* quagga.info: updated build of autogenerated file | 
|  | * log.c: (syslog_sigsafe) Reduce scope of syslog_fd: it is accessed
	  inside this function only.
	  (open_crashlog) New function to open /var/tmp/quagga.<daemon>.crashlog
	  with flags O_WRONLY|O_CREAT|O_EXCL to save some crash info.
	  (zlog_signal,_zlog_assert_failed) Increase logging priority from
	  LOG_ERR to LOG_CRIT.  If no file logging is configured, try to use
	  open_crashlog to create a crash logfile.
	  (zlog_backtrace_sigsafe) If a crashlog file descriptor is open,
	  dump a backtrace to that file. | 
|  | * ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down,
	  not for event ISM_InterfaceDown.  And improve the message by
	  adding the interface flags.
	* if.h: Declare if_flag_dump.
	[backport candidate] | 
|  | transparent-nexthop" commands.
	[merge from GNU Zebra] | 
|  | [merge from GNU Zebra] | 
|  | community-list cleanup.
	[merge from GNU Zebra] | 
|  | -> "disable-connected-check".
	[merge from GNU Zebra] | 
|  | bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. "bgp
	  graceful-restart" commands added. Show numbers of individual
	  messages in "show ip bgp neighbor" command. Final pieces of graceful
	  restart.
	[merge from GNU Zebra] | 
|  | capability route-refresh" commands. Route refresh capability is sent
	  anyway now. Preserve dummy deprecated commands.
	[merge from GNU Zebra] | 
|  | draft - ie. "neighbor version 4-" commands. Preserve dummy "neighbor
	  version" command as deprecated.
	[merge from GNU Zebra] | 
|  | maximum-prefix limit" feature support.
	[merge from GNU Zebra] | 
|  | * bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()
          function.
        * bgp_packet.c: MP AFI_IP update and withdraw parsing.
        * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()
          is better place to log about peer status change than bgp_event().
          Log in bgp_connect_success().
        * bgp_vty.c: Fix typo in comment.
        * bgp_attr.c: Better log about unknown attribute.
	[merge from GNU Zebra] | 
|  | * daemon.c: (daemon) Replace perror with zlog_err.
	* vty.c: (vty_serv_un) Replace perror with zlog_err.
	* ripd.c: (rip_create_socket) Replace perror with zlog_err.
	* ioctl.c: (if_ioctl,if_ioctl_ipv6,if_get_flags) Replace perror with
	  zlog_err.
	* ioctl_solaris.c: (if_ioctl,if_ioctl_ipv6) Replace perror with
	  zlog_err. | 
|  | * ripng_interface.c: (ripng_multicast_join) Save errno before calling
	  ripngd_privs.change. | 
|  | * ripd.c: (rip_create_socket) Save errno before calling
	  ripd_privs.change. | 
|  | * ospf_network.c: (ospf_sock_init) Save errno before calling
	  ospfd_privs.change. | 
|  | * buffer.h: Fix comment on buffer_getstr to reflect that it now
	  uses XMALLOC.
	* buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.
	* filter.c: (access_list_remark,ipv6_access_list_remark) Use
	  argv_concat instead of buffer_getstr.
	* if.c: (interface_desc) Use argv_concat instead of buffer_getstr.
	* plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)
	  Use argv_concat instead of buffer_getstr.
	* bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead
	  of buffer_getstr.
	* bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string
	  returned by buffer_getstr.
	  (bgp_show_community) Must use XFREE instead of free on string
	  returned by buffer_getstr.
	* bgp_routemap.c: (set_community) Must use XFREE instead of free
	  on string returned by buffer_getstr.
	* bgp_vty.c: (neighbor_description) Use argv_concat instead of
	  buffer_getstr. | 
|  | * if_ioctl_solaris.c: (interface_list_ioctl) Save errno before calling
	  zserv_privs.change.
	* ioctl{,_solaris}.c: (if_ioctl,if_ioctl_ipv6) Save errno before calling
	  zserv_privs.change.
	* ipforward_solaris.c: (solaris_nd) Save errno before calling
	  zserv_privs.change.
	* irdp_main.c: (irdp_sock_init) Save errno before calling
	  zserv_privs.change.
	[backport candidate] | 
|  | * rt_netlink.c: (netlink_socket,netlink_request,netlink_parse_info,
	  netlink_talk) Save errno before calling zserv_privs.change.
	  [backport candidate] | 
|  | * ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print
	an error message and return.
	(ospf_read) If the interface state is ISM_InterfaceDown, issue
	a warning message and ignore the packet. | 
|  | * vtysh.h: Remove obsolete VTYSH_INDEX_* defines.  Fix many prototypes
	  for functions with no arguments (must specify argument list as void).
	* vtysh.c: Enhance vtysh_client array to include the daemon's name
	  and bitmask and socket path (in addition to the fd).  This allows
	  us to use loop constructs for various operations that need to be
	  applied to all client daemons, and it facilitates better error
	  messages.  Also fix some prototypes with void argument lists.
	  (vclient_close) Issue a warning message indicating which daemon's
	  socket is being closed.
	  (vtysh_execute_func,vtysh_config_from_file) Use a for loop to
	  call vtysh_client_execute.
	  (vtysh_write_terminal,write_config_integrated) Use a for loop to
	  call vtysh_client_config.
	  (vtysh_write_memory) Use a for loop to call vtysh_client_execute.
	  (vtysh_show_daemons) Use a for loop.
	  (vtysh_connect) The struct vtysh_client is now statically initialized,
	  so do not initialize it here.
	  (vtysh_connect_all) Use a for loop to call vtysh_connect.  Set
	  ripd_client pointer for use in vtysh_exit_ripd_only. | 
|  | * lib/buffer.h: Document behavior of buffer_getstr function.
	* lib/buffer.c: (buffer_getstr) Fix bug: must handle case where
	  the string extends beyond the head struct buffer_data. | 
|  | * lib/command.h: Document behavior of argv_concat function.
	* lib/command.c: (argv_concat) Calculate total string length first so
	  we can call malloc just once (instead of realloc'ing to add each
	  string element).
	  (do_echo,config_logmsg) Allow for possible NULL return value from
	  argv_concat. | 
|  | * ospf6_asbr.c: Add "hsls" to the zroute_name const char array. | 
|  | * configure.ac: Bump version to 0.99.0
	* doc/quagga.info: Version bump (autogenerated) | 
|  | if old one is flaged as BGP_INFO_ATTR_CHANGED. | 
|  | * zebra/rt_netlink.c: ignore wireless newlink netlink messages. | 
|  | use it as well.
        * vtysh/vtysh.c: Implement walkup in node tree for vtysh as it already
          works in vty. | 
|  | "integrated-vtysh-config". | 
|  | * log.h: Test for SA_SIGINFO to see whether zlog_signal takes final
	  two args (siginfo and program_counter).
	* log.c: (hex_append) Include this function only if SA_SIGINFO or
	  HAVE_GLIBC_BACKTRACE is defined.
	  (zlog_signal) Final two args (siginfo and program_counter) now
	  depend on whether SA_SIGINFO is defined on this platform.
	* sigevent.c: (program_counter) Do not include this function if
	  SA_SIGINFO is not defined on this platform.
	  (exit_handler,core_handler) Test for SA_SIGINFO to decide whether
	  2nd & 3rd arguments are present and to decide how to invoke
	  zlog_signal.
	  (trap_default_signals) Test for SA_SIGINFO and invoke sigaction
	  appropriately. | 
|  | functions and some tiny related fixes. No functional changes. | 
|  | case of /proc being used. I don't have others to test with at the
	  moment. | 
|  | * log.h: Change prototype for zlog_backtrace_sigsafe to take additional
	  program_counter argument.
	* log.c: (zlog_backtrace_sigsafe) Add additional program_counter
	  argument.  If it is non-NULL, use backtrace_symbols_fd to resolve
	  the address.
	  (zlog_signal) Call zlog_backtrace_sigsafe with additional
	  program_counter argument.
	[pullup candidate] | 
|  | configured or not. Being not configured is even better reason to
	  do it. | 
|  | [pullup candidate] | 
|  | to walk up in the node tree if called from vtysh. Different daemons
	  might have commands with same syntax in different nodes (for example
	  "router-id x.x.x.x" commands in zebra/ospfd/ospf6d daemons).
	* vtysh.c: Reflect changes in lib. cmd_execute_command() should know
	  now that it's called from vtysh and must not attempt to walk up in
	  the node tree.
	[pullup candidate] | 
|  | * redhat/quagga.spec.in: Fix postun script to avoid misleading error
	  message saying the postun scriptlet failed when watchquagga
	  is not running.
          (pullup candidate) | 
|  | * command.c (print_version): Do not bother even to examine host.name,
	  since it is always NULL when this function is called from main. | 
|  | * command.c (print_version): Don't print host.name if it is NULL.
        Fixes segfault on Solaris reported by Goetz von Escher <goetz@open.ch>
(pullup candidate) | 
|  | last release.. | 
|  | * configure.ac: Test for header file <ucontext.h> (for use in
	  signal processing).
	* sigevent.c: (trap_default_signals) Use the SA_SIGINFO flag to
	  pass additional siginfo_t and ucontext_t arguments to core_handler
	  and exit_handler.
	  (core_handler,exit_handler) Now invoked with 3 arguments (using
	  SA_SIGINFO).  Pass additional info to zlog_signal.
	  (program_counter) New function to find program counter in ucontext_t,
	  needs to be enhanced to support more platforms (currently works only
	  on Linux/x86).
	* log.h: Change the zlog_signal prototype to add new arguments
	  siginfo_t * and program_counter.
	* log.c: (zlog_signal) Add new arguments siginfo and program_counter.
	  Include si_addr and program counter (if non-NULL) in message.
	  And remove #ifdef HAVE_GLIBC_BACKTRACE around hex_append, since
	  that is now used to render the si_addr and PC pointers. |