+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
+
+
+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