| Age | Commit message (Collapse) | Author | 
|---|
|  | * log.c, log.h, memory.c: Change function name from zlog_backtrace_safe
	  to the more self-explanatory zlog_backtrace_sigsafe. | 
|  | * debug.[ch]: Remove unused files.
	* Makefile.am: Remove references to debug.c and debug.h
	* ospf_main.c: Remove #include "debug.h" (was not being used, and
	  lib/debug.h has now been deleted). | 
|  | * log.c: (zlog_backtrace) New function to log a backtrace.
	  (zlog_backtrace_safe) Log a backtrace in an async-signal-safe way.
	  Unfortunately, this function does not support syslog logging yet.
	  (zlog_signal) Move backtrace code into separate function
	  zlog_backtrace_safe.
	  (_zlog_assert_failed) Call zlog_backtrace before aborting.
	* log.h: Declare new functions zlog_backtrace and zlog_backtrace_safe.
	* memory.c: (zerror) Call zlog_backtrace before aborting. | 
|  | * Makefile.am: Need to add zassert.h to pkginclude_HEADERS. | 
|  | * zebra.h: If not C99 and there's no va_copy macro and there is
	  a __va_copy macro, define va_copy as __va_copy. | 
|  | * pid_output.c: (pid_output_lock) Fix 2 bugs: when locking, should
	  set l_whence to SEEK_SET, not SEEK_END.  And after writing new
	  pid to file, must ftruncate to eliminate any extraneous bytes left
	  over from the last time a pid was written. | 
|  | * zassert.h: New header file to declare a quagga-specific assert macro.
	* log.c: (_zlog_assert_failed) New function called when assert fails
	  to log the error and abort.
	* zebra.h: Include "zassert.h" instead of <assert.h>.
	* regex.c: Include "zassert.h" instead of <assert.h>.
	* dict.c: Include "zassert.h" instead of <assert.h>. | 
|  | * sigevent.c: (signal_init) Set up some default signal handlers
	  so that processes will issue an error message before terminating
	  or dumping core.
	  (trap_default_signals) New function to set up signal handlers
	  for various signals that may kill the process.
	  (exit_handler) Call zlog_signal, then _exit.
	  (core_handler) Call zlog_signal, then abort.
	* log.h: Declare new function zlog_signal.
	* log.c: (zlog_signal) New function to log information about
	  a received signal before the process dies.  Try to log a
	  backtrace also.
	  (quagga_signal_handler,signal_set) Should be static. | 
|  | * log.c: (vzlog) Take a single va_list argument and use va_copy
	  as necessary for multiple traversals.
	  (zlog) Pass only one va_list to vzlog.
	  (zlog_*,plog_*) Use a macro for boilerplate code; pass only one
	  va_list to vzlog.
	  (zlog_set_file) Remove unused 2nd argument (flags).
	  (zlog_save_cwd,zlog_get_cwd,zlog_free_cwd) Remove unused functions.
	* log.h: Remove ZLOG_*_INDEX defines (no longer used).
	  Remove unused 2nd argument from zlog_set_file prototype.
	  Fix prototype for zlog_rotate.
	* command.c: (config_log_file) Remove unused 2nd arg to zlog_set_file.
	* vty.c: (vty_out) Fix stdarg usage to perform multiple traversals
	  properly.
	  (vty_log) Must use va_copy for multiple traversals of va_list arg. | 
|  | * log.c: (safe_strerror) New function: safe wrapper for strerror. | 
|  | * sockopt.c: (setsockopt_so_recvbuf) Stop error message from being
	  printed every time. | 
|  | * memory.h: Fix prototype for memory_init().
	* memory.c: Declare many functions and data structures static instead
	  of global.  Fix prototype for memory_init(). | 
|  | in lib/zebra.h, ensure that RFC3542-required CMSG_SPACE and CMSG_LEN
  are defined.  Warn if alignment assumptions are made, since they are
  i386-centric.
  in lib/sockopt.h, declare that sockopt sizes are without
  CMSG_SPACE-required padding - just simple sizeof.
  in ospfd/ospf_packet.c, simply use CMSG_SPACE
This should remove all instances of CMSG_ALIGN from the source code.
This is a nonstandard, though rational, construct; quagga should use
only those defines in RFC3542. | 
|  | * memory.c: (zerror) Use zlog_err instead of fprintf to stderr.
	  Instead of exiting, log currenty memory usage and then abort.
	  (log_memstats) New function to log memory statistics, called by
	  zerror.
	  (show_memory_all) Loop over new mlists array instead of calling
	  show_memory_vty separately for each memory_list. | 
|  |  | 
|  | * 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. | 
|  | * lib/version.h.in: add autoconf configure_input output var | 
|  | * 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. | 
|  | * 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. | 
|  | * sockopt.c: (setsockopt_pktinfo) remove, its unused. | 
|  | * thread.c: Use XCALLOC and sizeof the type, not the pointer. | 
|  | * smux.c: fix int to size_t compile warnings | 
|  | * 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 | 
|  | * keychain.c: Convert some more strtoul users to VTY_GET_INTEGER. | 
|  | * vty.c: As per Andrew's suggestions..
	  (vty_serv_un) remove flags.
	  (vtysh_accept) close socket if we cant set NONBLOCK. Add flags. | 
|  | * 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. | 
|  |  | 
|  | * zebra.h: reserve ZEBRA_ROUTE_HSLS | 
|  |  | 
|  | * sockopt.h: Fix elif that should be an else. | 
|  | * 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... ;) | 
|  | * 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). | 
|  | * sockopt.c: (getsockopt_ipv4_ifindex) no ifindex should be 0, not
          -1. | 
|  |  | 
|  | ripd might need some more testing though. | 
|  | initializes connection, and "no smux peer" command terminates it. Fixes
bugzilla #47 and #112. | 
|  |  | 
|  | * (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. | 
|  |  | 
|  | * if.h: mtu's should be unsigned.
	* routemap.{c,h}: const char updates
	* smux.{c,h}: ditto | 
|  | * thread.c: (funcname_thread_add_timer)
	  (funcname_thread_add_timer_msec) Fix mistakes from last change.
	  Pointed out by Liu Xin in [quagga-dev 1609]. | 
|  | * 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. | 
|  | * version.h.in: (pid_output*) add const qualifier. | 
|  |  | 
|  | * version.h.in: print_version declaration is here, not in autoconf
	  generated version.h. | 
|  |  | 
|  |  | 
|  | added to strings and a lot of int -> unsigned int changes. | 
|  | * thread.c: (funcname_thread_add_timer_timeval) new function, add
          timer at specified timeval.
	  (funcname_thread_add_timer) use funcname_thread_add_timer_timeval.
	  (funcname_thread_add_timer_msec) ditto | 
|  | * sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
          functions to change byte order between system IP_HDRINCL order
          and host order. |