)]}'
{
  "log": [
    {
      "commit": "3a570c8b7b56b5a3042fbc035a01c753440b927c",
      "tree": "89ee2d6845bf23c83e659f5aac43a6496e77ddf1",
      "parents": [
        "b1fc9acbbea5ed5846d46aa60f9cf49b6105763a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:27:13 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:27:13 2006 +0000"
      },
      "message": "[zebra] Display flags on their line in \u0027show interface\u0027.\n\n2006-02-02 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* interface.c: (if_dump_vty) move flags to their line, neater.\n"
    },
    {
      "commit": "5c78b3d006e6926f938796cffa08e8e14fb8e7af",
      "tree": "19f8f80511cba84e0d70ac22667321a4a7df0d60",
      "parents": [
        "590188b67db4021b9d1552238ef49482dd5f0123"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 04:31:40 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 04:31:40 2006 +0000"
      },
      "message": "[zebra/solaris] Interface state fixups for Solaris.\n\n2006-01-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) More solaris PF_ROUTE hacks. The IFF_UP mangling\n\t  for solaris was incomplete on the PF_ROUTE side. fix it.\n\t  This changeset generally uglifies things. For some future\n\t  work I\u0027d like to see the state changes seperated out from\n\t  the details of the code. Differences between systems might\n\t  then be slightly easier to implement without convoluted\n\t  hacks.\n\t  Changes should be specific to Solaris mostly, however\n\t  also tested on FreeBSD 6.\n\t* if_ioctl_solaris.c: (interface_list_ioctl) ignore ~IFF_UP\n\t  interfaces, we\u0027ll hear about them when/if interface goes up\n\t  through NEWADDR.\n\t  Update flags explicitely at end of it to kick mangling.\n\t* ioctl_solaris.c: (if_mangle_up) removed to interface.c, in\n\t  kind.\n\t  (lifreq_set_name) more convenient to take the string, than\n\t  the ifp.\n\t  (if_get_flags_direct) new convenience function, returns\n\t  the actual flags. Used during bootstrap in if_ioctl_solaris.c\n\t  to peek at flags of logical interfaces to see whether or\n\t  not to ignore them.\n\t  (if_get_flags) ENXIO means it\u0027s gone, poke out IFF_UP and\n\t  kick flags update.\n\t  (if_{un,}set_flags) flags argument should be 64bit.\n\t* ioctl.{c,h}: flags argument should be 64bit.\n\t* interface.h: Add a \u0027primary_state\u0027 flag to struct zebra_if on\n\t  SUNOS_5.\n\t  Export if_flags_update.\n\t* interface.c: (if_flags_mangle) moved over in kind from\n\t  ioctl_solaris.c. Nasty kludge to try get IFF_UP right, as\n\t  much as is possible. Also keep track of the actual IFF_UP\n\t  value for the primary interface, so we can know when the ifp\n\t  must be deleted.\n\t  (if_flags_update) Take a new interface flags value, apply it\n\t  to the interface, and take whatever actions are required due\n\t  to flag transitions.\n\t  (if_refresh) flag state change logic is moved out to\n\t  previous. Just call if_get_flags, which will end up using\n\t  previous to effect the update of flags.\n\t  (if_flag_dump_vty) IFF_IPV{4,6} aren\u0027t interesting, VIRTUAL\n\t  and NOXMIT are though.\n\t* kernel_socket.c: (ifm_read) Down-\u003eDown transitions shouldn\u0027t\n\t  create ifp, for non-IFANNOUNCE systems.\n\t  Use if_flags_update to update flags.\n\t  flag transition logic is now handled automatically through\n\t  if_flags_update.\n\t  (ifam_read) Better to call if_refresh *after* adding\n \t  connected addresses, as connected count affects IFF_UP on\n \t  IFF_UP-mangled systems.\n \t  On Solaris, Up-\u003eDown due to DELADDR means we need to delete\n\t  the ifp - the IFINFO might already have been and gone.\n\t* rt.h: include other dependent headers.\n"
    },
    {
      "commit": "0752ef0b2e9bbf6c7ab20ed0fe87840b3bd1b7f4",
      "tree": "d580aa8f809edf9a75968f7416e8415ffa72784c",
      "parents": [
        "6d45276f0c8aeec1ce53f77039ec02ec0f940ca1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 12:35:21 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 12:35:21 2005 +0000"
      },
      "message": "2005-11-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* connected.{c,h}: Include memory.h\n\t  (connected_add_ipv4) Use MTYPE for ifc label.\n\t  (connected_add_ipv6) Also should accept label. Store it in ifp.\n\t  (connected_del_ipv4) Taking label as argument is pointless.\n\t* rt_netlink.c: (netlink_interface_addr) update label usage\n\t  for connected_{add,delete} functions.\n\t* if_ioctl.c: (if_getaddrs) NULL label for connected_add_ipv6.\n\t* if_ioctl_solaris.c: (interface_list_ioctl) Pass LIFC_NOXMIT\n\t  so we also find out about NOXMIT interfaces like VNI.\n\t  Bit of hackery to turn interface names into the primary\n\t  interface name, later with routing socket messages we only\n\t  will about primary interfaces anyway, so we must normalise\n\t  the name.\n\t  (if_get_addr) take label as argument, so it can\n\t  be passed to connected_add.\n\t  If label is provided, then it is interface name to issue the\n\t  ioctl for address information on, not the ifp name.\n\t  (interface_list) List AF_UNSPEC too, just in case.\n\t* if_proc.c: (ifaddr_proc_ipv6) label for connected_add_ipv6.\n\t* interface.c: (if_addr_wakeup) Some very bogus code - sets\n\t  IFF_RUNNING - add comment.\n\t  (if_refresh)\n\t  (ip_address_install) Use MTYPE for ifc label.\n\t* ioctl_solaris.c: (if_mangle_up) New function. Hackery to make\n\t  IFF_UP reflect whether any addresses are left on the\n\t  interface, as we get signalled for IFF_UP flags change on the\n\t  primary interface only. Logical interfaces dont generate\n\t  IFINFO, but we do get an RTM_DELADDR.\n\t  (if_get_flags) Call if_mangle_up before return.\n\t* kernel_socket.c: (ifam_read) Fixup calls to\n\t  connected_{add,delete} to match above changes. Rename gate\n\t  variable to brd, less confusing.\n\t  Pass the interface name as a label, if it is not same name\n\t  as ifp-\u003ename.\n"
    },
    {
      "commit": "ca16218df74a43491e34a577db5023c89a7e79c8",
      "tree": "5aaee14da68863f7d7eb80fad46c83bebfc4fb8c",
      "parents": [
        "1f377b0202dfc4653f7717de964b628a369a9526"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 12 16:58:52 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 12 16:58:52 2005 +0000"
      },
      "message": "2005-09-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) RTM_CHANGE and implicit withdraw on RTM_NEWADDR\n\t  support.\n\t* connected.c: (connected_withdraw) new function. withdraw a\n\t  connected subnet address set from zebra, and pass information\n\t  along to clients.\n\t  (connected_announce) similar, but to announce a new connected\n\t  subnet address set.\n\t  (connected_check_ipv4) renamed to connected_check, as its\n\t  AFI independent.\n\t  (connected_add_ipv{4,6}) Remove the connected address announce\n\t  stuff, use connected_announce instead.\n\t  If connected_check indicates address is already present,\n\t  treat it as an implicit withdraw of the existing address, ie\n\t  remove the old address details and replace with the new\n\t  details.\n\t  (connected_delete_ipv{4,6}) Use connected_withdraw.\n\t  (connected_check_ipv6) deleted in favour of connected_check.\n\t* connected.h: Rename connected_check_ipv4 to connected_check.\n\t  delete connected_check_ipv6.\n\t* interface.c: Use connected_check rather than the AFI specific\n\t  symbols.\n\t* kernel_socket.c: (rtm_read) RTM_CHANGE support. Create a\n\t  rib delete event for the existing route, before adding route\n\t  again.\n\t  (kernel_read) we can handle RTM_CHANGE now.\n"
    },
    {
      "commit": "6eb8827d669b06d7b38357860d23fa33e0c0078e",
      "tree": "bab69ac40c857fd6a6e7b447166df7e9ae08989d",
      "parents": [
        "7907c6c9d34a4f19dd7d4d8d81c3c8ae5000ee07"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 29 14:36:00 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 29 14:36:00 2005 +0000"
      },
      "message": "2005-07-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* interface.c: (if_delete_update) should always be available, not\n\t  just on RTM_IFANNOUNCE/NETLINK systems.\n\t* kernel_socket.c: (ifan_read) only call if_delete_update when\n\t  interface departs, dont if_delete, because we wish to retain\n\t  interface configuration state even when interfaces are removed.\n\t  (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning\n\t  to down state is only chance we have to clean up interface in case\n\t  it is deleted (eg Solaris down -\u003e unplumb -\u003e plumb up).\n\t* redistribute.c: (zebra_interface_delete_update) should always be\n\t  available, we /will/ call it now on all systems, via\n\t  if_delete_update.\n\t* zserv.c: (zsend_interface_delete) ditto\n\t  (zsend_interface_address) Update the call-flow diagramme, to\n\t  reflect that if_delete_update /is/ now called on all systems,\n\t  potentially.\n\t* zserv.h: (zsend_interface_delete) unconditionally exported, as\n\t  above.\n"
    },
    {
      "commit": "a1ac18c4d5b4f8f4f279efb2ae12b46258f22282",
      "tree": "e37732ef4b00ae98d1be693e721b01cc2566ba39",
      "parents": [
        "94f2b3923e9663d0355a829f22e4e31cf68ee7b8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 17:17:12 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 17:17:12 2005 +0000"
      },
      "message": "2005-06-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) Extern and static\u0027ification, with related fixups\n\t  of declarations, ensuring files include their own headers, etc.\n\t  if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in\n\t  list loop\n"
    },
    {
      "commit": "1eb8ef2584833f18fb674e127d59cb5a7f771482",
      "tree": "f5b09d4781de9a9b08839fefb6530e64d2d2ec31",
      "parents": [
        "5920990fecba7e2430af3cfaa8bcbaed40d0ba1a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "message": "2005-04-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global): Fix up list loops to match changes in lib/linklist,\n\t  and some basic auditing of usage.\n\t* configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES\n\t* HACKING: Add notes about deprecating interfaces and commands.\n\t* lib/linklist.h: Add usage comments.\n\t  Rename getdata macro to listgetdata.\n\t  Rename nextnode to listnextnode and fix its odd behaviour to be\n\t  less dangerous.\n\t  Make listgetdata macro assert node is not null, NULL list entries\n          should be bug condition.\n          ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use\n          with for loop, Suggested by Jim Carlson of Sun.\n          Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the\n          \"safety\" of previous macro.\n\t  LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to\n\t  distinguish from the similarly named functions, and reflect their\n\t  effect better.\n\t  Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section\n\t  with the old defines which were modified above,\n\t  for backwards compatibility - guarded to prevent Quagga using it..\n\t* lib/linklist.c: fix up for linklist.h changes.\n\t* ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single\n\t  scan of the area list, rather than scanning all areas first for\n\t  INTER_ROUTER and then again for INTER_NETWORK. According to\n\t  16.2, the scan should be area specific anyway, and further\n\t  ospf6d does not seem to implement 16.3 anyway.\n"
    },
    {
      "commit": "d2fc88962a9a494ecb34167871bb9e7273a25d33",
      "tree": "304a1c1a744972bc10b1f677a134907c404b361d",
      "parents": [
        "386e61502d391adb985ac1487825349ec85e6a8c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\tFix problems when netlink interfaces are renamed (same ifindex used\n\tfor a new interface).  Start cleaning up some problems with the way\n\tinterface names are handled.\n\t* interface.c: (if_new_intern_ifindex) Remove obsolete function.\n\t  (if_delete_update) After distributing the interface deletion message,\n\t  set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (if_dump_vty) Detect pseudo interface by checking if ifp-\u003eifindex is\n\t  IFINDEX_INTERNAL.\n\t  (zebra_interface) Check return code from interface_cmd.func.\n\t  Do not set internal ifindex values to if_new_intern_ifindex(),\n\t  since we now use IFINDEX_INTERNAL for all pseudo interfaces.\n\t* kernel_socket.c: (ifm_read) Fix code and comments to reflect that\n\t  all internal interfaces now have ifp-\u003eifindex set to IFINDEX_INTERNAL.\n        * rt_netlink.c: (set_ifindex) New function used to update ifp-\u003eifindex.\n\t  Detects interface rename events by checking if that ifindex is already\n\t  being used.  If it is, delete the old interface before assigning\n\t  the ifindex to the new interface.\n\t  (netlink_interface, netlink_link_change) Call set_ifindex to update\n\t  the ifindex.\n\t* if.h: Remove define for IFINDEX_INTERNBASE and add define\n\t  IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-\n\t  interfaces should have ifindex set to 0.\n\t  (if_new) Remove function.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (ifname2ifindex) New function.\n\t* if.c: (if_new) Remove function (absorb into if_create).\n\t  (if_create) Replace function if_new with call to calloc.\n\t  Set ifp-\u003eifindex to IFINDEX_INTERNAL.  Fix off-by-one error\n\t  in assert to check length of interface name.  Add error message\n\t  if interface with this name already exists.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (if_delete) Implement with help of if_delete_retain.\n\t  (ifindex2ifname) Reimplement using if_lookup_by_index.\n\t  (ifname2ifindex) New function to complement ifindex2ifname.\n\t  (interface) The interface command should check the name length\n\t  and fail with a warning message if it is too long.\n\t  (no_interface) Fix spelling in warning message.\n\t  (if_nametoindex) Reimplement using if_lookup_by_name.\n\t  (if_indextoname, ifaddr_ipv4_lookup) Reimplement using\n\t  if_lookup_by_index.\n\t* bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t* isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead\n\t  of if_delete, since it is generally not safe to remove interface\n\t  structures.  After deleting, set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Tighten up code.\n\t* ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function\n\t  was commented out.  But this is not safe: we should at least update\n\t  the ifindex when the interface is deleted.  So the new version\n\t  updates the interface status and sets ifp-\u003eifindex to\n\t  IFINDEX_INTERNAL.\n\t  (ospf6_zebra_route_update) Use if_indextoname properly.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Show ifindex and interface\n\t  flags to help with debugging.\n\t* ospf_zebra.c: (ospf_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Make function static.  Tighten up code.\n\t* rip_interface.c: (rip_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t* ripng_interface.c: (ripng_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n"
    },
    {
      "commit": "7cee1bb15089e4e994958651bd45a6f81c4215aa",
      "tree": "2f7d9b8a24411d06c80dbeb023069c1e3a2f4c2e",
      "parents": [
        "29c4c9bd11aaf36a0b3ed2414c816cdb8d4178bd"
      ],
      "author": {
        "name": "vincent",
        "email": "vincent",
        "time": "Fri Mar 25 13:08:53 2005 +0000"
      },
      "committer": {
        "name": "vincent",
        "email": "vincent",
        "time": "Fri Mar 25 13:08:53 2005 +0000"
      },
      "message": "2005-03-25 Jean-Mickael Guerin \u003cjean-mickael.guerin@6wind.com\u003e\n\t* interface.c, interface.h, rtadv.c, rtadv.h: extensions to Neighbor\n\t  discovery for Mobile IPv6.\n"
    },
    {
      "commit": "ed9bb6d524301cb7d1902ed94753ffa3c6dabf1e",
      "tree": "8ef411ef124f5bd6ae9689a5461474066821836a",
      "parents": [
        "afd8a129fe140efdb6f743df0ca43d8c150c25bb"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Mar 13 19:17:21 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Mar 13 19:17:21 2005 +0000"
      },
      "message": "\t* zebra/interaface.c: \"show interface description\" command\n\t  implemented.\n"
    },
    {
      "commit": "3452d4752490516c3228da3700c93e2089e30083",
      "tree": "46ba333a050deaef1cf933afab28b7eca9310fad",
      "parents": [
        "c1ba9e8a8ac0447e6f33d50b4b9e7a1e68307bf1"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Mar 06 13:42:05 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Mar 06 13:42:05 2005 +0000"
      },
      "message": "\t* interface.c: Fix CRC and frame errors statistics in Linux.\n"
    },
    {
      "commit": "6f2c27af2189794187e4c30ee70fcb9cc6cb1a3b",
      "tree": "43e2830ca4d832b3d68bb9f5ddaa6cf9328c0a14",
      "parents": [
        "239c26fdeae4dbccb43da359f9ea034041440831"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:44:35 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:44:35 2005 +0000"
      },
      "message": "\t* interface.c: Better statistics output in \"show interface\" command in\n\t  case of /proc being used. I don\u0027t have others to test with at the\n\t  moment.\n"
    },
    {
      "commit": "b6178002270192fe3ab2403dafac12e5babe11e6",
      "tree": "6b9c352d814185e16a353d17752059eb995019e0",
      "parents": [
        "8ddca7040da413cd283a4beba4634744f4e61ac8"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 21:12:56 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 21:12:56 2004 +0000"
      },
      "message": "2004-12-07 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* *.c: Change level of debug messages to LOG_DEBUG.\n"
    },
    {
      "commit": "6099b3b56956322567323c11fd698b2328c6826b",
      "tree": "fa537bd0eaa9f7d824f39445eabc928db59050ca",
      "parents": [
        "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c\n\t  needs to include \"log.h\" to pick up the declaration.\n"
    },
    {
      "commit": "6bd7c6aec24957ccf9583d17320205786b5dcc7b",
      "tree": "07b42ba33a414ab076f91292e9f2f01884cbb0fa",
      "parents": [
        "8dceb820def41f3bfa2754932d46157e86c5a362"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 28 17:32:27 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 28 17:32:27 2004 +0000"
      },
      "message": "Remove dead \"ip tunnel\" command.\n"
    },
    {
      "commit": "3fb9cd6ef456959b6eff939d5c316f6785c2dda4",
      "tree": "e350cb3ef7b20b8bbccfb1aa9309152311e845bd",
      "parents": [
        "5ae35f45f1292dce3a01f241accafeb2e59b10cc"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 19 19:44:43 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 19 19:44:43 2004 +0000"
      },
      "message": "OK. Here it is - PtP patch from Andrew J. Schorr. No problems with ospfd,\nripd might need some more testing though.\n"
    },
    {
      "commit": "39db97e4e02eae08a1e18528367b6e9b07eb6a93",
      "tree": "2fb3a0269f4f2fe235ef722e3ad9cc8e6005bb6c",
      "parents": [
        "39ff11dc92d004b59d1ec786fd54b27111fee0b5"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 20:50:58 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 20:50:58 2004 +0000"
      },
      "message": "Some compiler warnings fixes and fix for bugzilla #119.\n"
    },
    {
      "commit": "eef1fe11b89c5ec3c035ff6e4a9acfbc5780b539",
      "tree": "82f80b9b898ede1b5293fc52adb2bee9b138e46c",
      "parents": [
        "18a6dce6f83dd20caf1f36c8e840868ff0bf6dbd"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:46:08 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:46:08 2004 +0000"
      },
      "message": "New way to handle secondary addresses from Gilad Arnold.\n"
    },
    {
      "commit": "52dc7ee65f8d887b0730abc0a5d44d27fc6ecafd",
      "tree": "a557339540c56dd3953c29a50ca0e48c1911efc8",
      "parents": [
        "44983cf8a9c587dfbcad294b9dfe4dccbb68ba98"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "message": "Remove usage of evil list and listnode typedefs.\n"
    },
    {
      "commit": "5b73a671aac22a75cc90657aa4a924d199f2284b",
      "tree": "8716d34430c239cb994ba286db18efb24eb09319",
      "parents": [
        "1470bafb7aa179dad7dc4bdc998d68c14752f824"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:26:14 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:26:14 2004 +0000"
      },
      "message": "2004-07-23 Sowmini Varadhan \u003cSowmini.Varadhan@Sun.COM\u003e\n\n        * if_ioctl_solaris.c: HAVE_IPV6 ifdef fixups\n        * zserv.c: ditto\n        * ioctl_solaris.c: ditto.\n        * interface.c: cast for LLADDR\n        * interface.h: Add guards, include redistribute.h and remove\n          extraneous definitions of zebra_interface_{up,down}_update\n        * ioctl.h: Add AF_IOCTL define for non SOLARIS_IPV6\n        * redistribute.h: include dependent header, zserv.h\n        * zserv.h: include dependent header, rib.h\n"
    },
    {
      "commit": "ca7769881ffb700c86b606ead5f4177df3c0b2a1",
      "tree": "b3a199ce94246b34b10d8d20030d27d2f4c5197f",
      "parents": [
        "02ff83c52592427623db0d8367ca9b3395fa321f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jun 12 14:33:05 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jun 12 14:33:05 2004 +0000"
      },
      "message": "OK, here it is - irdp support. But don\u0027t expect me to fix any bugs in it.\n"
    },
    {
      "commit": "44145db3ae79d54da58c967d96cf059421dbf9eb",
      "tree": "ac57bd081e8f93317676875aa73eaf2e7a45aa49",
      "parents": [
        "b9df2d25fc8d06ca63fa792d162d97656361338b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 09 11:00:23 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 09 11:00:23 2004 +0000"
      },
      "message": "2004-05-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ioctl.c: (if_get_mtu) set mtu6 to mtu\n\t* mtu_kvm.c: (if_kvm_get_mtu) set mtu6 to mtu\n\t* rt_netlink.c: (netlink_interface) set mtu6 to mtu\n\t  (netlink_link_change) ditto\n\n2004-05-09 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n\t* interface.c: (if_delete_update) only used with HAVE_NETLINK\n\t  and RTM_IFANNOUNCE.\n\t  (if_flag_dump_vty) Solaris IFF_IPV4 and IFF_IPV6 if flags\n\t  (if_dump_vty) print mtu6 if not same as mtu\n"
    },
    {
      "commit": "f1d92e17ab5f1475018e353ce72e94ebe7a81a44",
      "tree": "1e5f7e1f785fc6f3277c765d42e605921ed31b77",
      "parents": [
        "da9c9a24d09071c77843ce39f0470ba487c300bf"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 18 15:40:33 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 18 15:40:33 2004 +0000"
      },
      "message": "Temorary secondary-label fix. Real fix from Gilad will follow after release.\n"
    },
    {
      "commit": "e23949c0e79d0e5f9ae662b4c661e838f35681ef",
      "tree": "3463d525c83e1defe4815c0e0688294877ebd0d9",
      "parents": [
        "00b0bbcd5ca015a25142cc33ac035e9d75f2417e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 11 15:54:02 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 11 15:54:02 2004 +0000"
      },
      "message": "Fix help. \"ipv6 ...\" commands are for IPv6.\n"
    },
    {
      "commit": "bfc135325e9b0768c78b51c9495eb0fbabc59db6",
      "tree": "c754c2132248a7436ca8012d383a73f89fcc66ef",
      "parents": [
        "fd2dfce21bb21cc2f3d6de723812875ec7abc1f5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 24 06:40:04 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 24 06:40:04 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n\nensure only interfaces that are inactive or do not exist can be deleted\n"
    },
    {
      "commit": "32d2463ca26529ad4700af6d5748f927e1305694",
      "tree": "9f8dc5d94e1fb11a86585864e45401f552ecf2dd",
      "parents": [
        "7515cffe5e11fdfbc437c02b7af8b0f7b4d36fce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:25:20 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:25:20 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n\nAdd the \u0027no interface\u0027 command to all the daemons and vtysh. now it\u0027s\npossible to delete interface from routeing daemons as well only if it\ndoesn\u0027t exist in os.\n\nhttp://hasso.linux.ee/zebra/ht-no_interface_fix.patch\n"
    },
    {
      "commit": "7515cffe5e11fdfbc437c02b7af8b0f7b4d36fce",
      "tree": "9acbaf0a01080920f25cf1107465a7f79ee7e2f8",
      "parents": [
        "1921e6f8965701040fe1b4f27619b2d7f3fec254"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:21:46 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:21:46 2003 +0000"
      },
      "message": "Undo Hasso last patch, about to apply a slightly updated patch.\n"
    },
    {
      "commit": "68f43848fa0f8ac16c768bafb8891495dcf232ae",
      "tree": "8121fe0ee7c19001dd3c37c798e8368681a59493",
      "parents": [
        "8d6b00e4f34dfb6f627b49713bf80b0745b50abc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 06:58:44 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 06:58:44 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n\nhttp://hasso.linux.ee/zebra/ht-no_interface-23052003.patch\n\nAdd the \u0027no interface\u0027 command to all the daemons and vtysh.\n"
    },
    {
      "commit": "b571e7fc5f95aae3c790e7edba46358635b59f10",
      "tree": "42d80e5799839dc487b6fb038d9cb140de163ab7",
      "parents": [
        "960182aaf05c2f11415789b2edcdc53ac3858f01"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 09 07:16:59 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 09 07:16:59 2003 +0000"
      },
      "message": "Amir - rev 198\nLog:\nRemoved unused variable in interface.c\n"
    },
    {
      "commit": "2e3b2e474ed5ba04744b167132a84f9954485af4",
      "tree": "cc07fb34a1bf21ead5cc3ad69e4a9dfde2b43b0e",
      "parents": [
        "7afa08da2d3690baee1739da400775f8543f5863"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:03:13 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:03:13 2002 +0000"
      },
      "message": "zebra link state detection support\n"
    },
    {
      "commit": "48b33aaf706367aa9d647e2893f974a7f5740a6b",
      "tree": "3c992dd22b17159d6f3abf657c58470b13820db9",
      "parents": [
        "727d104b15d6293d7223e7830f2e37ae98022cac"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:52:52 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:52:52 2002 +0000"
      },
      "message": "patch from Frank van Maarseveen \u003cF.vanMaarseveen@inter.NL.net\u003e\n[zebra 14599] PATCH: permit [no]multicast command for (yet) inactive interfaces\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
