]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/ChangeLog
[zebra] fix some small compile errors, mark several functions static
[mirror_frr.git] / zebra / ChangeLog
index 719323171ee60742bdb610e3d4c2fed9ceb555fb..734dd84b1610b92ba5cd29fbd04c3e594a2a31be 100644 (file)
@@ -1,3 +1,574 @@
+2005-11-23 Paul Jakma <paul.jakma@sun.com>
+
+       * (general) fix some small compile errors, and mark several
+          functions as static.
+        * kernel_socket.c: (ifan_read) should be static.
+          fix missing brackets.
+          (ifm_read,ifam_read,rtm_read_mesg,kernel_read) Make static
+          (ifam_read_mesg) make static. fix incorrect variable name.
+          (rtm_read) make static. Fix call to rib_delete_ipv4 which
+          should be rib_delete_ipv6.
+          (routing_socket,kernel_init) should be static. Void argument
+          should be specified as such, not left incomplete.
+        * rt_netlink.c: rt.h should be included, contains prototypes of  
+          exported functions.
+          (kernel_delete_ipv6_old) fix sign of index argument.   
+        * rt_socket.c: Exact same as previous. Also, make various
+          functions static.
+        * rtread_getmsg.c: Include zserv.h, which prototypes
+          route_read. Make static.
+        * rtread_sysctl.c: zserv.h and rt.h should be included.
+          fix definition of route_read.
+   
+2005-11-14 Paul Jakma <paul.jakma@sun.com>
+
+       * zebra_rib.c: (rib_process) convert to new workqueue specs and
+         shut up gcc, which complains about cast from void via
+         function parameters, for some dumb reason. Do the cast
+         inside the function instead.
+         (rib_queue_qnode_del) ditto.
+         (rib_queue_init) no need for the casts anymore.
+
+2005-11-12 Alexander Gall <gall@switch.ch>
+
+       * See [quagga-dev 1815]
+       * kernel_socket.c: (rtm_write) Use SAROUNDUP when HAVE_SIN_LEN
+         is not available.
+       * rt_socket.c: (kernel_rtm_ipv6(_multipath)) set family to 
+         AF_INET6 on ipv6 routes.
+
+2005-11-12 Paul Jakma <paul.jakma@sun.com> 
+
+       * kernel_socket.c: Add RTA_NAME_GET macro to extract name from
+         sockaddr_dl. Add some more RTF_ flags.
+       * (ifan_read) Add some debug messages.
+       * (ifm_read) Add more debug messages. More robust cross-checks
+         of index against name.
+         Fall back to by-name lookup if the index lookup fails, future
+         proofing more than anything else.
+         (ifam_read_mesg) Read RTA_IFP. Add debug messages.
+         (ifam_read) More debug. If there's an RTA_IFP and it isn't
+         the name of the interface, save it as the label.
+         (rtm_read_mesg) Read RTA_IFP.
+         (rtm_read) allow name to be retrieved.
+         (rtmsg_debug) expand on the debug message.
+
+2005-11-11 Paul Jakma <paul.jakma@sun.com>
+
+       * kernel_socket.c: (ifm_read) arithmetic on void pointer
+         warning.
+         (ifam_read) Fix error from connected-with-label merge,
+         something crept in from the pending Solaris kernel_socket.c
+          patch which shouldn't have.
+
+2005-11-03 Paul Jakma <paul.jakma@sun.com>
+
+       * connected.{c,h}: Include memory.h
+         (connected_add_ipv4) Use MTYPE for ifc label.
+         (connected_add_ipv6) Also should accept label. Store it in ifp.
+         (connected_del_ipv4) Taking label as argument is pointless.
+       * rt_netlink.c: (netlink_interface_addr) update label usage
+         for connected_{add,delete} functions.
+       * if_ioctl.c: (if_getaddrs) NULL label for connected_add_ipv6.
+       * if_ioctl_solaris.c: (interface_list_ioctl) Pass LIFC_NOXMIT
+         so we also find out about NOXMIT interfaces like VNI.
+         Bit of hackery to turn interface names into the primary
+         interface name, later with routing socket messages we only
+         will about primary interfaces anyway, so we must normalise
+         the name.
+         (if_get_addr) take label as argument, so it can
+         be passed to connected_add.
+         If label is provided, then it is interface name to issue the
+         ioctl for address information on, not the ifp name.
+         (interface_list) List AF_UNSPEC too, just in case.
+       * if_proc.c: (ifaddr_proc_ipv6) label for connected_add_ipv6.
+       * interface.c: (if_addr_wakeup) Some very bogus code - sets
+         IFF_RUNNING - add comment.
+         (if_refresh)
+         (ip_address_install) Use MTYPE for ifc label.
+       * ioctl_solaris.c: (if_mangle_up) New function. Hackery to make
+         IFF_UP reflect whether any addresses are left on the
+         interface, as we get signalled for IFF_UP flags change on the 
+         primary interface only. Logical interfaces dont generate
+         IFINFO, but we do get an RTM_DELADDR.
+         (if_get_flags) Call if_mangle_up before return.
+       * kernel_socket.c: (ifam_read) Fixup calls to
+         connected_{add,delete} to match above changes. Rename gate
+         variable to brd, less confusing.
+         Pass the interface name as a label, if it is not same name 
+         as ifp->name.
+
+2005-10-11 Paul Jakma <paul.jakma@sun.com>
+
+       * connected.{c,h}: (connected_{add,delete}_ipv4) label should
+         be const qualified.
+       
+2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * zebra_vty.c: (route_type_str) Remove obsolete function: use new
+         library function zebra_route_string() instead.  Note that there
+         are a few differences: for IPv6 routes, we now get "ripng" and
+         "ospf6" instead of the old behavior ("rip" and "ospf").
+         (route_type_char) Remove obsolete function: ues new library function
+         zebra_route_char() instead.  Note that there is one difference:
+         the old function returned 'S' for a ZEBRA_ROUTE_SYSTEM route,
+         whereas the new one returns 'X'.
+         (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace
+         route_type_str() with zebra_route_string().
+         (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()
+         with zebra_route_char().
+
+2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * rt_netlink.c: (netlink_request) Use memset to clear structure
+         before calling sendto (eliminates a valgrind error message about
+         uninitialized data).
+
+2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
+
+       * zserv.c: Always provied distance for route add
+
+2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
+
+       * connected.c: flag connected_up_ipv6() and connected_down_ipv6()
+         usage with HAVE_IPV6
+
+2005-09-24 Hasso Tepper <hasso at quagga.net>
+
+       * rib.h: Add note about behaviour of rib_add_ipv[46]* functions -
+         add is treated as implicit withdraw.
+
+2005-09-21 David Young <dyoung@ojctech.com>
+
+       * zebra_rib.c: Reduce the height of some staircases. Fix
+         rib_delete_ipv6() to match routes in the RIB by their gateway as
+         well as by destination.
+
+2005-09-21 Paul Jakma <paul.jakma@sun.com>
+
+       * zebra_rib.c: (static_uninstall_ipv{4,6}) Fix regression wrt
+         removal of static routes with multiple-hops introduced with
+         the workqueue conversion. We should free the relevant
+         nexthop and then get rib_process to run, otherwise we just
+         get same static route back again (with no way to unconfigure
+          it, because its already deleted from configuration).
+          
+2005-09-12 Paul Jakma <paul.jakma@sun.com>
+
+       * (general) RTM_CHANGE and implicit withdraw on RTM_NEWADDR
+         support.
+       * connected.c: (connected_withdraw) new function. withdraw a
+         connected subnet address set from zebra, and pass information
+         along to clients.
+         (connected_announce) similar, but to announce a new connected
+         subnet address set.
+         (connected_check_ipv4) renamed to connected_check, as its
+         AFI independent.
+         (connected_add_ipv{4,6}) Remove the connected address announce
+         stuff, use connected_announce instead.
+         If connected_check indicates address is already present,
+         treat it as an implicit withdraw of the existing address, ie
+         remove the old address details and replace with the new
+         details.
+         (connected_delete_ipv{4,6}) Use connected_withdraw.
+         (connected_check_ipv6) deleted in favour of connected_check.
+       * connected.h: Rename connected_check_ipv4 to connected_check.
+         delete connected_check_ipv6.
+       * interface.c: Use connected_check rather than the AFI specific
+         symbols.
+       * kernel_socket.c: (rtm_read) RTM_CHANGE support. Create a 
+         rib delete event for the existing route, before adding route
+         again.
+         (kernel_read) we can handle RTM_CHANGE now.
+
+2005-08-27 Hasso Tepper <hasso at quagga.net>
+
+       * zebra_rib.c, rib.h: Add distance and metric arguments to the
+         rib_add_ipv6() function so that IPv6 routes in RIB can have correct
+         metric. No IPv6 routing daemon uses distance yet though.
+       * zserv.c, connected.c, kernel_socket.c, rt_netlink.c,
+         rtread_proc.c,zserv.c: Pass metric and distance info to the
+         rib_add_ipv6().
+
+2005-07-29 Paul Jakma <paul.jakma@sun.com>
+
+       * interface.c: (if_delete_update) should always be available, not
+         just on RTM_IFANNOUNCE/NETLINK systems.
+       * kernel_socket.c: (ifan_read) only call if_delete_update when
+         interface departs, dont if_delete, because we wish to retain
+         interface configuration state even when interfaces are removed.
+         (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning
+         to down state is only chance we have to clean up interface in case
+         it is deleted (eg Solaris down -> unplumb -> plumb up).
+       * redistribute.c: (zebra_interface_delete_update) should always be
+         available, we /will/ call it now on all systems, via
+         if_delete_update.
+       * zserv.c: (zsend_interface_delete) ditto
+         (zsend_interface_address) Update the call-flow diagramme, to
+         reflect that if_delete_update /is/ now called on all systems,
+         potentially.
+       * zserv.h: (zsend_interface_delete) unconditionally exported, as
+         above.
+         
+2005-06-28 Paul Jakma <paul.jakma@sun.com>
+
+       * (global) Extern and static'ification, with related fixups
+         of declarations, ensuring files include their own headers, etc.
+       * if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in
+         list loop
+       * kernel_socket.c: (RTA_{ADDR,ATTR}_GET) fix mistake, NULL check
+         should be on DEST argument
+
+2005-06-14 Paul Jakma <paul.jakma@sun.com>
+
+       * kernel_socket.c: consolidate the IFAM{ADDR,MASK}GET and 
+         RTM{ADDR,MASK}GET macros into generic rta_addrs macros,
+         RTA_{ADDR,ATTR}_GET.
+         (af_check) could use 'inline' attribute
+         (ifam_read_mesg) remove IFAM{ADDR,MASK}GET macro, change to
+         generic macro.
+         (rtm_read_mesg) similar
+
+2005-06-12 Hasso Tepper <hasso at quagga.net>
+
+       * rt_netlink.c: Remove netlink-addr socket declaration, it's not used.
+       * rt_netlink.c (netlink_parse_info): Fix debug messages - nlmsg_pid is
+         unsigned and one zlog call had swapped arguments.
+       * rt_netlink.c (netlink_route_multipath): Fix compile with disabled
+         IPv6 support.
+
+2005-05-31 Paul Jakma <paul.jakma@sun.com>
+
+       * zserv.c: (zsend_route_multipath) Fix bug if route is sent
+         with no NEXTHOP_FLAG_FIB nexthops. As ZAPI_MESSAGE_IFINDEX
+         and ZAPI_MESSAGE_NEXTHOP are always set, clients would try
+         read non-existent nexthop information and hit stream assert.
+         Zserv is still broken for multi-nexthop messages, but it always was.
+
+2005-05-06 Paul Jakma <paul.jakma@sun.com>
+
+       * zserv.h: Remove ZEBRA_PORT definition, its in lib/zebra.h now
+
+2005-04-28 Paul Jakma <paul.jakma@sun.com>
+
+       * rib.h: (struct rib) Add lock field for refcounting.
+       * zserv.h: (struct zebra_t) Add a ribq workqueue to the zebra
+         'master' struct.
+       * zserv.c: (zread_ipv4_add) XMALLOC then memset should be XCALLOC.
+       * zebra_rib.c: Clean up refcounting of route_node, make struct rib
+         refcounted and convert rib_process to work-queue. In general,
+         rib's should be rib_addnode'd and delnode'd to route_nodes, and 
+         these symmetrical functions will manage the locking of referenced
+         route_node and freeing of struct rib - rather than having users
+         manage each seperately - with much scope for bugs..
+         (newrib_free) removed and replaced with rib_lock
+         (rib_lock) new function, check state of lock and increment.
+         (rib_unlock) new function, check lock state and decrement. Free
+         struct rib if refcount hits 0, freeing struct nexthop's, as 
+         newrib_free did.
+         (rib_addnode) Add RIB to route_node, locking both.
+         (rib_delnode) Delete RIB from route_node, unlocking each.
+         (rib_process) Converted to a work-queue work function.
+         Functional changes are minimal, just arguments, comments and 
+         whitespace.
+         (rib_queue_add_qnode) Helper function to setup a ribq item.
+         (rib_queue_add) Helper function, same arguments as old
+         rib_process, to replace in callers of rib_process.
+         (rib_queue_qnode_del) ribq deconstructor.
+         (rib_queue_init) Create the ribq.
+         (rib_init) call rib_queue_init.
+         (remainder) Sanitise refcounting of route_node's. Convert to 
+         rib_queue_add, rib_addnode and rib_delnode. Change XMALLOC/memset
+         to XCALLOC. Remove calls to nexthop_delete and nexthop_free.
+         
+2005-04-10 Paul Jakma <paul@dishone.st>
+
+       * if_ioctl_solaris.c: (if_lookup_linklocal) fix order of args
+         in ALL_LIST_ELEMENTS_RO macro.
+
+2005-04-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * zserv.c (zebra_client_read): Fix bug: first read attempt should
+         read ZEBRA_HEADER_SIZE minus the number of bytes already read.
+         Improve efficiency by maintaining a calculation of the number
+         of bytes read instead of calling stream_get_endp multiple times.
+         If message length is too small, issue a warning message (not debug)
+         before closing the connection.  And also check that message length
+         is not too big.
+
+2005-04-09 Hasso Tepper <hasso at quagga.net>
+
+       * rt_netlink.c: One tiny missing comma caused pointless debug messages
+         about IPv6 nexthops.
+
+2005-04-09 Hasso Tepper <hasso at quagga.net>
+
+       * rt_netlink.c (netlink_parse_info): Fix warning. It's safe to cast
+         status to unsigned here, because we already checked that it isn't
+         negative or 0.
+       * rt_netlink.c (netlink_interface_addr): Prefix length belongs to the
+         address, not to the interface.
+       * rt_netlink.c (netlink_route_multipath): Fix debug. No useless info
+         is printed out now and IPv6 info is handeled.
+
+2005-04-05 Paul Jakma <paul@dishone.st>
+
+       * zserv.c: print more helpful errors when we fail to successfully
+         bind and listen on zserv socket. Closes bugzilla #163.
+
+2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * if_ioctl.c: (interface_list_ioctl) Use if_get_by_name_len.
+       * if_proc.c: (ifaddr_proc_ipv6) Increase size of ifname buffer to
+         avoid overflow.
+       * kernel_socket.c: (ifan_read) Use if_get_by_name_len.
+
+2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * kernel_socket.c: (ifm_read) Use new if_lookup_by_name_len function
+         to save a memcpy.
+       * if_ioctl_solaris.c: (interface_list_ioctl) Fix subtle bug with new
+         if_get_by_name_len function.
+
+2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * interface.c: (if_new_intern_ifindex) Remove obsolete function.
+         (if_delete_update) After distributing the interface deletion message,
+         set ifp->ifindex to IFINDEX_INTERNAL.
+         (if_dump_vty) Detect pseudo interface by checking if ifp->ifindex is
+         IFINDEX_INTERNAL.
+         (zebra_interface) Check return code from interface_cmd.func.
+         Do not set internal ifindex values to if_new_intern_ifindex(),
+         since we now use IFINDEX_INTERNAL for all pseudo interfaces.
+       * kernel_socket.c: (ifm_read) Fix code and comments to reflect that
+         all internal interfaces now have ifp->ifindex set to IFINDEX_INTERNAL.
+        * rt_netlink.c: (set_ifindex) New function used to update ifp->ifindex.
+         Detects interface rename events by checking if that ifindex is already
+         being used.  If it is, delete the old interface before assigning
+         the ifindex to the new interface.
+         (netlink_interface, netlink_link_change) Call set_ifindex to update
+         the ifindex.
+
+2005-03-31 Hasso Tepper <hasso at quagga.net>
+
+       * rt_netlink.c (netlink_talk_filter): Show always warning message,
+         it's not for debug.
+       * rt_netlink.c (netlink_talk): Don't assume we use netlink_cmd
+         although we do now actually.
+       * rt_netlink.c (netlink_route, netlink_route_multipath): Always use
+         netlink_cmd to send messages to the kernel.
+
+2005-03-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * irdp.h: Add prototype for irdp_sock_init, and fix protos for
+         other irdp_* functions.
+       * irdp_interface.c: (irdp_if_start) If irdp_sock is negative,
+         call irdp_sock_init to create the IRDP socket.
+         (irdp_if_init) Rename to irdp_init().
+         (get_iflist_ifp) Remove function that is a duplicate of
+         if_lookup_by_index.
+         (*) Make many functions static.  And remove superfluous "\n" from
+         several zlog messages.
+       * irdp_main.c: (irdp_init) Remove function that used to call
+         irdp_if_init() and irdp_sock_init(), since we will now create
+         the socket only upon first use.
+         (irdp_sock_init) Do not update global irdp_sock variable, just
+         return the fd and assume that the caller will do so.  If setsockopt
+         calls fail, close the socket before returning -1.
+         (*) Make many functions static.
+       * irdp_packet.c: Initialize irdp_sock to -1.
+         (irdp_read_raw) Call standard library function if_lookup_by_index
+         instead of get_iflist_ifp.
+         (irdp_recvmsg) Should be static, not global.
+
+2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * rt_netlink.c: (netlink_link_change) If the status of an
+         operative interface changes (e.g. MTU changes), the client
+         daemons should be notified by calling zebra_interface_up_update.
+         Previously, the information was being updated in zebra's
+         interface structure, but the clients were not notified of
+         changes to an operative interface.
+
+2005-03-25 Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
+       * interface.c, interface.h, rtadv.c, rtadv.h: modifications to 
+         IPv6 Neighbor Discovery according to RFC3775, section 7:
+         o 1-bit Home Agent flag management in Router Advertisement (7.1).
+         o 1-bit Router Address flag management in Prefix Information 
+           Option (7.2).
+         o Advertisement Interval Option (7.3)
+         o Home Agent Information Option (7.4)
+         o Changes to Sending Router Advertisements more frequently (7.5)
+
+2005-03-13 Hasso Tepper <hasso at quagga.net>
+
+       * zebra/interaface.c: "show interface description" command
+         implemented.
+
+2005-03-12 Paul Jakma <paul@dishone.st>
+
+       * rt_netlink.c: (netlink_route_multipath) dont set equalise flag.
+         No stock Linux kernel has ever supported it, and even if it had
+         it's not generally a good idea.
+
+2005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
+
+       * if_proc.c, ipforward_proc.c, rtread_proc.c: Fix fd leaks.
+
+2005-03-06 Hasso Tepper <hasso at quagga.net>
+
+       * interface.c: Fix CRC and frame errors statistics in Linux.
+
+2005-02-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * zserv.c: Must include network.h and buffer.h for non-blocking I/O.
+         Remove global message_queue and t_write (need separate buffering for
+         each client).
+         (zebra_server_dequeue,zebra_server_enqueue) Remove functions
+         related to old buggy buffering code.
+         (zserv_delayed_close) New thread callback function to delete a client.
+         (zserv_flush_data) New thread callback function to flush buffered
+         data to client.
+         (zebra_server_send_message) Rewritten to use buffer_write (so
+         buffering of writes and non-blocking I/O work properly).
+         (zsend_interface_add,zsend_interface_delete,zsend_interface_address,
+         zsend_interface_update) Return 0 instead of -1 if !client->ifinfo
+         (this is not really an error).  Return value from
+         zebra_server_send_message.
+         (zsend_route_multipath,zsend_ipv4_nexthop_lookup,
+         zsend_ipv4_import_lookup) Return value from zebra_server_send_message.
+         (zsend_ipv6_nexthop_lookup) Fix scope to static, and return value
+         from zebra_server_send_message.
+         (zsend_router_id_update) Must use zebra_server_send_message instead
+         of deprecated writen function.  Return 0 instead of -1 if this client
+         is not subscribed to router-id updates (since this is not really
+         an error).
+         (zread_interface_add) Change type to static int.  If
+         zsend_interface_add fails or zsend_interface_address fails, return -1
+         immediately (since the client has had an I/O error).
+         (zread_interface_delete,zread_ipv4_add,zread_ipv4_delete,
+         zread_ipv6_add,zread_ipv6_delete,zread_router_id_delete) Return 0
+         to indicate success.
+         (zread_ipv4_nexthop_lookup) Return value from
+         zsend_ipv4_nexthop_lookup.
+         (zread_ipv4_import_lookup) Return value from zsend_ipv4_import_lookup.
+         (zebra_read_ipv6) Remove unused function.
+         (zread_ipv6_nexthop_lookup) Return value from
+         zsend_ipv6_nexthop_lookup.
+         (zread_router_id_add) Return value from zsend_router_id_update.
+         (zebra_client_close) Call buffer_free(client->wb) and
+         thread_cancel(client->t_suicide).
+         (zebra_client_create) Allocate client->wb using buffer_new.
+         (zebra_client_read) Support non-blocking I/O by using stream_read_try.
+         Use ZEBRA_HEADER_SIZE instead of 3.
+         (zebra_accept) Fix bug: reset accept thread at top.  Make client
+         socket non-blocking using the set_nonblocking function.
+         (config_write_forwarding) Fix scope to static.
+         (zebra_init) Remove initialization code for old buggy write buffering.
+       * zserv.h: Add 2 new fields to struct zserv: struct buffer *wb
+         (to enable buffered writes with non-blocking I/), and 
+         struct thread *t_suicide to support delayed close on I/O
+         errors.
+       * router-id.h: Remove prototypes for zread_router_id_add and
+         zread_router_id_delete (their scope should be static to zserv.c).
+
+2005-02-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * redistribute.c: (zebra_check_addr,is_default,
+         zebra_redistribute_default,zebra_redistribute) Fix scope to be static.
+
+2005-02-20 Hasso Tepper <hasso at quagga.net>
+
+       * rt_netlink.c: Don't show messages "ignoring message type 0x001[89]"
+         if we are not debugging.
+
+2005-02-19 Paul Jakma <paul@dishone.st>
+
+       * zserv.c: (zebra_read_ipv6) replace the char * arithmetic with
+         STREAM_READABLE.
+
+2005-02-14 Paul Jakma <paul@dishone.st>
+
+       * Not all Linux netlink systems have IFLA_WIRELESS
+
+2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * 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.
+
+2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * 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.
+
+2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * rt_netlink.c: (netlink_socket,netlink_request,netlink_parse_info,
+         netlink_talk) Save errno before calling zserv_privs.change.
+
+2005-01-24 Martin Pot <mpot at martybugs.net>
+
+       * zebra/rt_netlink.c: ignore wireless newlink netlink messages.
+
+2005-01-18 Hasso Tepper <hasso at quagga.net>
+
+       * interface.c: Better statistics output in "show interface" command in
+         case of /proc being used.
+
+2005-01-17 Hasso Tepper <hasso at quagga.net>
+
+       * main.c: With --nl-bufsize argument is required.
+
+2005-01-05 Paul Jakma <paul@dishone.st>
+
+       * zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK
+          for now, as we dont actually deal with with resending.... See
+          bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).
+       * kernel_socket.c: (routing_socket) ditto.
+
+2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR
+         instead of CMSG_FIRSTHDR.
+
+2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * connected.c: (connected_add_ipv4) Limit warning about /32 addresses
+         with no peer specified to PtP interfaces only.
+
+2004-12-18 Hasso Tepper <hasso at quagga.net>
+
+       * zebra_vty.c: Fix "show ipv6 route <proto>" command help and make it
+         work for isis routes.
+
+2004-12-09  Greg Troxel  <gdt@fnord.ir.bbn.com>
+
+       * kernel_socket.c (rtmsg_debug): char * => const char *
+
+2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * *.c: Change level of debug messages to LOG_DEBUG.
+
+2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * main.c: (main) The 2nd argument to openzlog has been removed.
+         So stdout logging will no longer be enabled by default.
+       * irdp_main.c: (irdp_finish) Reduce severity of shutdown message
+         from LOG_WARNING to LOG_INFO.
+
+2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * main.c: (sigint) Use zlog_notice for termination message.
+         (main) Add a startup announcement using zlog_notice.
+
 2004-11-25 Hasso Tepper <hasso at quagga.net>
 
        * irdp_interface.c: Remove comment from DEFUN, it breaks vtysh because