)]}'
{
  "log": [
    {
      "commit": "6379b96117a50803236fe698e4e27d9849f3a3bc",
      "tree": "2b01eef69470adb3ea4b10c309b553bf44357403",
      "parents": [
        "eb820afe3b53321624317cfa6b426ecae1392f24"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 14:00:09 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 14:00:09 2005 +0000"
      },
      "message": "2004-09-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* heavy-wq.c: (slow_func_del,slow_func_err) make them take\n\t  void * argument to shut up silly gcc warning.\n"
    },
    {
      "commit": "eb820afe3b53321624317cfa6b426ecae1392f24",
      "tree": "55557a19a1918bdca547c3a3d0e7f6c7802b78b4",
      "parents": [
        "c89c05dd04d097bd8213125a42d67204bb681de5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 11:54:13 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 11:54:13 2005 +0000"
      },
      "message": "2005-09-05 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* command.c: (install_element) be more robust. Eg, cmd_init\n\t  need not have been called, some applications may use other\n\t  library subsystems, which call install_element, without the\n          application wanting commands and hence not calling cmd_init.\n"
    },
    {
      "commit": "c89c05dd04d097bd8213125a42d67204bb681de5",
      "tree": "b8bde80fab9ea45f035edcb71ce1795abcb039c8",
      "parents": [
        "c0fb2a52150ece6042181ab49fafc12b3ba07870"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 04 21:36:36 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 04 21:36:36 2005 +0000"
      },
      "message": "\t* *.c: Try to be less verbose by default (without any debug options\n\t  on).\n\t* isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of\n\t  touching endp directly.\n\t* isis_lsp.c (lsp_build_pseudo): Ditto.\n"
    },
    {
      "commit": "c0fb2a52150ece6042181ab49fafc12b3ba07870",
      "tree": "bb150096a736c9800816dbeccd35fd7669151dd1",
      "parents": [
        "be7d65d976f3e6f9d24b0e77064444ae69b74e1d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Sep 03 16:29:40 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Sep 03 16:29:40 2005 +0000"
      },
      "message": "\t* isis_lsp.c: Yet another regression introduced by stream cleanup.\n\t  Similar fix to the one commited to lsp_build_nonpseudo() some days\n\t  ago.\n"
    },
    {
      "commit": "be7d65d976f3e6f9d24b0e77064444ae69b74e1d",
      "tree": "a71758e3b3ad796ae62823ea8aa16f6eb55e952c",
      "parents": [
        "29e50b23530f37df9073808fe78a6c22f00beeea"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 02 01:38:16 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 02 01:38:16 2005 +0000"
      },
      "message": "\t* isis_lsp.c: Less TLV leaking.\n"
    },
    {
      "commit": "29e50b23530f37df9073808fe78a6c22f00beeea",
      "tree": "c6461b12ec92d0ba5dc776a16510dc2695c6587a",
      "parents": [
        "aac372f4f5b617a579dafeab31fb486a5d69d65d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 01 18:18:47 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 01 18:18:47 2005 +0000"
      },
      "message": "\t* random.c, spgrid.[ch]: Fix warnings with hope that I didn\u0027t broke\n\t  anything. These floats to longs and vice versa casts are starnge\n\t  indeed.\n\t* isis_pdu.c: As we don\u0027t use %z for size_t for now because we support\n\t  older compilers, cast them to unsigned long.\n\n\tAlso fix previous changelog entry. Isisd compiles cleanly now again.\n"
    },
    {
      "commit": "aac372f4f5b617a579dafeab31fb486a5d69d65d",
      "tree": "9aac3362db19f195238b8508761e82f2d6b8a370",
      "parents": [
        "deba35508e28a3861bb182218bb51af6769b2581"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 01 17:52:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 01 17:52:33 2005 +0000"
      },
      "message": "\t* isis_adjacency.c, isis_lsp.c, isisd.c: Replace XMALLOC \u0026\u0026 memset\n\t  with XCALLOC.\n\t* isis_lsp.c (lsp_build_pseudo): Fix adding ES neighbour.\n\t* isis_tlv.c: More compact free_tlvs() function.\n\t* isis_lsp.c (lsp_build_nonpseudo) : Try to fix one more regression\n\t  introduced by stream cleanup. Seek enp to the right place before\n\t  starting to fill stream with TLVs.\n"
    },
    {
      "commit": "deba35508e28a3861bb182218bb51af6769b2581",
      "tree": "04613ed5ea108b58fcc83bf6abd403ed6b841f2f",
      "parents": [
        "be61c4eb59b8df1aab496176d87bb2e1763f185e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:19:39 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:19:39 2005 +0000"
      },
      "message": "\t* ripng_zebra.c, ripngd.[ch]: Pass metric info to the zebra daemon.\n\n\tForwardport from stable branch.\n"
    },
    {
      "commit": "be61c4eb59b8df1aab496176d87bb2e1763f185e",
      "tree": "063e8baa7cd4a863e72d246d7c14f14842cbb604",
      "parents": [
        "b7395791a31f7b734094d032998ab632136f36f1"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:05:47 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:05:47 2005 +0000"
      },
      "message": "\t* zebra_rib.c, rib.h: Add distance and metric arguments to the\n\t  rib_add_ipv6() function so that IPv6 routes in RIB can have correct\n\t  metric. No IPv6 routing daemon uses distance yet though.\n\t* zserv.c, connected.c, kernel_socket.c, rt_netlink.c,\n\t  rtread_proc.c,zserv.c: Pass metric and distance info to the\n\t  rib_add_ipv6().\n\n\tForwardport from stable branch.\n"
    },
    {
      "commit": "b7395791a31f7b734094d032998ab632136f36f1",
      "tree": "8b8e5efb0c0082b882f8a5a9db9eabd3aa9841e7",
      "parents": [
        "a969459c92d6b6cc557a0961aca14059e791bc08"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 26 12:58:38 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 26 12:58:38 2005 +0000"
      },
      "message": "\t* bgp_route.c: Third (?) attempt to fix best selection breakage\n\t  introduced long time ago with route server patch. Hopefully\n\t  it\u0027s last case to fix - route-server client not in peer group.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "a969459c92d6b6cc557a0961aca14059e791bc08",
      "tree": "97ad6dcb79caf159e67b39252095c6724c45c416",
      "parents": [
        "c0689394aef68bcafacd570e4c9163d478131e76"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 25 14:50:05 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 25 14:50:05 2005 +0000"
      },
      "message": "2005-08-25 Paul Jakma \u003cpaul@jakma.org\u003e\n\n\t* configure.ac: Add -fno-omit-frame-pointer after -Os in default\n\t  cflags, just to be sure.\n\t  Fedora\u0027s readline library does not itself link to termcap, hence\n\t  we must pass the result of termcap tests in via OTHER-LIBRARIES\n\t  argument, otherwise the test of main in readline will fail due to\n\t  missing termcap systems. On systems like Debian, -ltermcap\n\t  is not needed for the readline test, because libreadline already\n\t  links to it.\n"
    },
    {
      "commit": "c0689394aef68bcafacd570e4c9163d478131e76",
      "tree": "c85182d1fb1d4d4e65f9d3a6f9ca42bc93fb79fc",
      "parents": [
        "57b5b7ed079c08dd7670aaef988ecfb650c6b1d2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 25 12:00:58 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 25 12:00:58 2005 +0000"
      },
      "message": "\t* configure.ac, vtysh/Makefile.am: Only vtysh needs to be linked\n\t  against libreadline and friends.\n"
    },
    {
      "commit": "57b5b7ed079c08dd7670aaef988ecfb650c6b1d2",
      "tree": "fe2f62ddc88682bfca555e92742859345e16810b",
      "parents": [
        "25ffbdc1d72682dea1f5254d7c12e400215e0f1e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:44:29 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:44:29 2005 +0000"
      },
      "message": "2005-08-22 Hugo Santos \u003chsantos@av.it.pt\u003e\n\n\t* vtysh.c: Add support for BGP_IPV6M_NODE\n"
    },
    {
      "commit": "25ffbdc1d72682dea1f5254d7c12e400215e0f1e",
      "tree": "f0a1c3a7fd8b384e71c49a27b4c3c7508ee7b163",
      "parents": [
        "1e83659026e5b9c5876273c83e86fd229dd98c88"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:42:08 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:42:08 2005 +0000"
      },
      "message": "2005-08-22 Hugo Santos \u003chsantos@av.it.pt\u003e\n\n\t* bgp_vty.c: (general) Add support for BGP IPv6 Multicast SAFI\n\t  commands and BGP_IPV6M_NODE.\n"
    },
    {
      "commit": "1e83659026e5b9c5876273c83e86fd229dd98c88",
      "tree": "cad15dd7ea31d3c0e18f1c0cd868168a3391e01e",
      "parents": [
        "b40d939b477a08d79dbee947aea42ac652090f85"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:39:56 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:39:56 2005 +0000"
      },
      "message": "2005-08-22 Hugo Santos \u003chsantos@av.it.pt\u003e\n\n\t* command.h: (enum node_type) Add BGP_IPV6M_NODE\n\t* command.c: (node_parent) Handle BGP_IPV6M_NODE node\n\t  (config_exit, config_end) ditto\n\t* vty.c: (vty_end_config) Handle BGP_IPV6M_NODE node\n"
    },
    {
      "commit": "b40d939b477a08d79dbee947aea42ac652090f85",
      "tree": "fe160cd4514218baea57c2566e318fc66ea9a6ef",
      "parents": [
        "bb5b7552cc4f067fbb25f7a8f0c4fe558a508f3f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:34:41 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:34:41 2005 +0000"
      },
      "message": "2005-08-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.h: (struct bgp_info) add a new flag, BGP_INFO_REMOVED.\n\t  BGP_INFO_VALID is already overloaded, don\u0027t care to do same thing\n\t  to STALE or HISTORY.\n\t* bgpd.h: (BGP_INFO_HOLDDOWN) Add INFO_REMOVED to the macro, as a\n\t  route which should generally be ignored.\n\t* bgp_route.c: (bgp_info_delete) Just set the REMOVE flag, rather\n\t  than doing actual work, so that bgp_process (called directly,\n\t  or indirectly via the scanner) can catch withdrawn routes.\n\t  (bgp_info_reap) Actually remove the route, what bgp_info_delete\n\t  used to do, only for use by bgp_process.\n\t  (bgp_best_selection) reap any REMOVED routes, other than the old\n\t  selected route.\n\t  (bgp_process_rsclient) reap the old-selected route, if appropriate\n\t  (bgp_process_main) ditto\n\t  (bgp_rib_withdraw, bgp_rib_remove) make them more consistent with\n\t  each other. Don\u0027t play games with the VALID flag, bgp_process\n\t  is async now, so it didn\u0027t make a difference anyway.\n\t  Remove the \u0027force\u0027 argument from bgp_rib_withdraw, withdraw+force\n\t  is equivalent to bgp_rib_remove. Update all its callers.\n\t  (bgp_update_rsclient) bgp_rib_withdraw and force set is same as\n\t  bgp_rib_remove.\n\t  (route_vty_short_status_out) new helper to print the leading\n\t  route-status string used in many command outputs. Consolidate.\n\t  (route_vty_out, route_vty_out_tag, damp_route_vty_out,\n\t   flap_route_vty_out) use route_vty_short_status_out rather than\n\t  duplicate.\n\t  (route_vty_out_detail) print state of REMOVED flag.\n\t  (BGP_SHOW_SCODE_HEADER) update for Removed flag.\n"
    },
    {
      "commit": "bb5b7552cc4f067fbb25f7a8f0c4fe558a508f3f",
      "tree": "67adaa204f37ea8c57ef8b0c893ed1e21b7d52bb",
      "parents": [
        "54bedb55d9f4185e35307a4178ad8d73a9a8857d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Aug 21 20:01:15 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Aug 21 20:01:15 2005 +0000"
      },
      "message": "\t* ospf_vty.c: Make \"show ip ospf neighbor xxx\" commands work.\n\t  Interface should be specified by name now.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "54bedb55d9f4185e35307a4178ad8d73a9a8857d",
      "tree": "9cccbd6d9ed8d0e612a76817ced6cd24dbb8e2a0",
      "parents": [
        "56b24f4c33d2dc093922945319da02c7cbdadd2b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 17 13:31:47 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 17 13:31:47 2005 +0000"
      },
      "message": "\t* ospf_vty.c: Check carefully if interface exists before trying to\n\t  print info about it.\n\n\tFixes bugzilla #213. [backport candidate]\n"
    },
    {
      "commit": "56b24f4c33d2dc093922945319da02c7cbdadd2b",
      "tree": "c04bb9cc0ecaffd0b03fb8b9a3044b62a1b6037b",
      "parents": [
        "7d7d0f3848283fea7efd6cfeddcfa588c229fb3a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Aug 16 20:58:12 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Aug 16 20:58:12 2005 +0000"
      },
      "message": "\t* isis_misc.[ch]: Fix some warnings, making some strings const.\n"
    },
    {
      "commit": "7d7d0f3848283fea7efd6cfeddcfa588c229fb3a",
      "tree": "73ca22e74ed6896d75c14b3aa3b74c079439ab61",
      "parents": [
        "2c61ae37821f4ece2b2f22d716ac8a135808e70c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 16 17:23:15 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 16 17:23:15 2005 +0000"
      },
      "message": "2005-08-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* README.txt: point to the opensolaris.org sources for the SMF\n\t  manifest class scripts. Make step 3 slightly more explicit about\n\t  what \u0027this directory\u0027 is.\n"
    },
    {
      "commit": "2c61ae37821f4ece2b2f22d716ac8a135808e70c",
      "tree": "2ef1ae310612294f9a8ec16bb94d7858070c757b",
      "parents": [
        "60f0651c32e6ee35da5f2d227dc471427568ff45"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 16 15:22:14 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 16 15:22:14 2005 +0000"
      },
      "message": "2005-08-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripd.c: (general) Fix previous commit, broke multicast bind and\n\t  hence setting of source port, which broke communication with\n\t  non-borken ripd. Fix removes more stuff from rip_interface.c\n\t  than it adds to ripd.c ;)\n\t  (rip_create_socket) the to argument really is a from argument,\n\t  rename it. Set the source port to RIP port unconditionally, it\u0027s\n\t  required.\n\t  (rip_send_packet) Set from address correctly for multicast.\n\t  (rip_output_process) trivial: num can be BSS specified, rather\n\t  than in body.\n\t* rip_interface.c: (rip_interface_multicast_set) strip out\n\t  redundant stuff related to bind, which rip_create_socket does.\n\t  Just make it set the multicast socket option, as per the\n\t  interface concerned, no more.\n"
    },
    {
      "commit": "60f0651c32e6ee35da5f2d227dc471427568ff45",
      "tree": "bc3bbe1d94aa2126cb7f8d7088d230fed64e19c2",
      "parents": [
        "47828747f48ea6739d0af6555648759016462703"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Aug 13 13:42:38 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Aug 13 13:42:38 2005 +0000"
      },
      "message": "2005-08-13 Paul Jakma \u003cpaul@jakma.org\u003e\n\n\t* Makefile.am: (EXTRA_DIST) Add the trailing slash back in which\n\t  greg left out - tools bits weren\u0027t being included in dist,\n\t  which broke rpm builds :).\n"
    },
    {
      "commit": "47828747f48ea6739d0af6555648759016462703",
      "tree": "468a87c6176070819c6b43683d1ce46389cd6897",
      "parents": [
        "1dab30f421d9e6909d498961294fa1f44c76b207"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 10 15:46:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 10 15:46:11 2005 +0000"
      },
      "message": "2005-08-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf6_asbr.c: (ospf6_asbr_redistribute_add) Fix sense of testing\n\t  of route_map_apply return code, it can return many things other\n\t  than RMAP_MATCH which do not indicate DENY. Should test explicitly\n\t  for equality to RMAP_DENYMATCH instead.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "1dab30f421d9e6909d498961294fa1f44c76b207",
      "tree": "185c6579ea9a8b58e07cf90d47c75d275f1708f5",
      "parents": [
        "6204c7fb9e6bc2ca1ec72b46af4e3f575d5dd41c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 15:11:21 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 15:11:21 2005 +0000"
      },
      "message": "add INSTALL.quagga.txt to the distribution, so that people who apply\npatches and lose because of old autoconf/automake versions have the\nopportunity to find tout what to do.\n"
    },
    {
      "commit": "6204c7fb9e6bc2ca1ec72b46af4e3f575d5dd41c",
      "tree": "8170eecbd840d858efb3cad0fae2290d0249955e",
      "parents": [
        "e0170882dbfa33b86316d38e8024e1114fa1db0a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 10 15:08:21 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 10 15:08:21 2005 +0000"
      },
      "message": "\t* topology/spgrid.c: MAXLONG is deprecated, use LONG_MAX instead.\n\t  values.h, where MAXLONG is defined, is deprecated as well.\n\n\tThanks to Greg for noticing and to Rivo for fix.\n"
    },
    {
      "commit": "e0170882dbfa33b86316d38e8024e1114fa1db0a",
      "tree": "3a261261cc4d36d83a6d4cf2bd279eaed52ef211",
      "parents": [
        "0312f0cd92e26d8097145d00dfad4638ed687f02"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 15:07:02 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 15:07:02 2005 +0000"
      },
      "message": "rework\n\nclarify make (BSD make not working is a bug, and GNU make not working\nis a really serious bug)\n\ndeclare POSIX.2 as a semi-requirement, with notion that workarounds\nfor non-posix must be clean.\n\nlist OS versions for which not working is a bug.\n\nadd instructions for using info and emacs/info, and remove admonition\nto use pinfo\n\nadd note about GNU awk (really needed?  BSD awk)\n\nNote that NetBSD 2.99.15 has texinfo 4.7\n"
    },
    {
      "commit": "0312f0cd92e26d8097145d00dfad4638ed687f02",
      "tree": "0eb8c8b39c1b20cbac4690f85d5b7d4846d78b7e",
      "parents": [
        "01018ce479cce0af61d3797e5200cc340fe6ec0e"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 13:20:03 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Aug 10 13:20:03 2005 +0000"
      },
      "message": "2005-08-10  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n        * getopt.h: Don\u0027t declare getopt (rather than getopt_long), since\n        quagga doesn\u0027t need it.\n        * getopt.c (getopt): Don\u0027t define getopt.\n\n\nFixes build breakage on NetBSD, and seems likely to work on most\nplatforms since it avoids the entire issue of system getopt\ndeclarations and whether they conform to POSIX.2.  Note that this\nchange doesn\u0027t address system getopt_long declarations, but also\ndoesn\u0027t change anything about getopt_long.\n"
    },
    {
      "commit": "01018ce479cce0af61d3797e5200cc340fe6ec0e",
      "tree": "0d497a18a8848231be1e4a9806394769bf855525",
      "parents": [
        "e279c7a6f35a211453ec52fdd16ab78535f5d727"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 05 07:40:15 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 05 07:40:15 2005 +0000"
      },
      "message": "\t* ospf_zebra.c: Don\u0027t assert/stop before type \u003d\u003d ZEBRA_ROUTE_MAX if\n\t  dealing with routemaps. There is ospf-\u003eroute_map[ZEBRA_ROUTE_MAX]\n\t  for default-information.\n\n\tFixes bugzilla #208.\n\t[backport candidate]\n"
    },
    {
      "commit": "e279c7a6f35a211453ec52fdd16ab78535f5d727",
      "tree": "45f72efa37416835c10bca1f1fef07fcee717c37",
      "parents": [
        "6eb8827d669b06d7b38357860d23fa33e0c0078e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 03 17:23:20 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 03 17:23:20 2005 +0000"
      },
      "message": "\t* bgp_routemap.c: Revert part of leaking communities fix commited in\n\t  2005-05-27. While ecommunity fix seems to be correct, community case\n\t  isn\u0027t.\n\n\tFixes bugzilla #209.\n\t[backport candidate]\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": "7907c6c9d34a4f19dd7d4d8d81c3c8ae5000ee07",
      "tree": "c57450ba246a26d4c37f1c2339b977d8293ee04d",
      "parents": [
        "330009f7b3742462ebd90f9c16f1ab734344b68c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jul 26 19:55:31 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jul 26 19:55:31 2005 +0000"
      },
      "message": "2005-07-26 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\t* prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new\n\t  to allocate the memory to make sure that all struct prefix pointers\n\t  point to objects of the same length (avoids memory overruns\n\t  on struct prefix assignments).\n\t  (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free.\n\t  It is interesting to note that these functions are never actually\n\t  called anywhere in the code.  Instead prefix_free was already\n\t  being called directly, despite the previous MTYPE incompatibility.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "330009f7b3742462ebd90f9c16f1ab734344b68c",
      "tree": "9d3ddbf26da3205989e136cd2b3858c65584ef94",
      "parents": [
        "c898775c95a2aad505911eccb6a70a12d4e49f1d"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jul 26 14:35:37 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jul 26 14:35:37 2005 +0000"
      },
      "message": "2005-07-26 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* prefix.c: (ip_masklen) While loop should test that \u0027pnt\u0027 pointer is\n\t  in range before dereferencing it.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "c898775c95a2aad505911eccb6a70a12d4e49f1d",
      "tree": "ebfcfb61d9ae79ee135e2900580575852b806a86",
      "parents": [
        "d57834f6e5f060924b92b9544070ecf5f145848a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 26 06:07:22 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 26 06:07:22 2005 +0000"
      },
      "message": "2005-07-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_abr.c: (ospf_abr_announce_network_to_area) SET_FLAG\n\t  should be on lsa not old, which may be freed for one thing,\n\t  obviously.\n"
    },
    {
      "commit": "d57834f6e5f060924b92b9544070ecf5f145848a",
      "tree": "25f7312efa2f711b2ebf1b17521e0aea9d83c10f",
      "parents": [
        "e37821068873e4256a5d44d6c81babe39befc8e7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 20:04:22 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 20:04:22 2005 +0000"
      },
      "message": "2005-07-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospfd.h: add OSPF_ABR_DEFAULT for convenience, make\n\t  OSPF_ABR_CISCO be the default ABR type.\n\t* ospfd.c: (ospf_new) initialise abr_type to OSPF_ABR_DEFAULT\n\t* ospf_vty.c: (no_ospf_abr_type_cmd) add standard as a negatable\n\t  abr_type. default abr_type should be OSPF_ABR_DEFAULT.\n\t  (ospf_config_write) test whether default abr_type against\n\t  OSPF_ABR_DEFAULT, rather than any specific ABR_TYPE.\n"
    },
    {
      "commit": "e37821068873e4256a5d44d6c81babe39befc8e7",
      "tree": "a86dd3f07162fef1d7e44fd4a935321e5f9d3724",
      "parents": [
        "b899408509440ee1415c895600c9a20e406cded0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 16:47:01 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 16:47:01 2005 +0000"
      },
      "message": "- Fix ChangeLog entry to properly refer to problem being Linux/ARM, not\n  ARM in general.\n"
    },
    {
      "commit": "b899408509440ee1415c895600c9a20e406cded0",
      "tree": "338dc4faffd3e0600531bc14872281bde184ebe3",
      "parents": [
        "850d39f3409fd9f942a9796dbe95b9e1f3c8ac5b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 15:15:02 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 15:15:02 2005 +0000"
      },
      "message": "2005-07-12 Christian Hammers \u003cch@debian.org\u003e\n\n\t* vtysh_user.c: rename struct user to struct vtysh_user to avoid\n\t  clashes with sys/user.h on ARM.\n"
    },
    {
      "commit": "850d39f3409fd9f942a9796dbe95b9e1f3c8ac5b",
      "tree": "cad92e8910bdb3c1f44ed40c59137b38aadb048c",
      "parents": [
        "ea6f82b979c21e67a8aeff17d2afaf9fda00ff9f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jun 30 13:52:20 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jun 30 13:52:20 2005 +0000"
      },
      "message": "\t* configure.ac: Actually test whether libc has IPv6 support.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "ea6f82b979c21e67a8aeff17d2afaf9fda00ff9f",
      "tree": "c5b59c7d3095ef72880024faa837e3e433c4f84b",
      "parents": [
        "a1ac18c4d5b4f8f4f279efb2ae12b46258f22282"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 17:20:26 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 17:20:26 2005 +0000"
      },
      "message": "2005-06-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: (RTA_{ADDR,ATTR}_GET) fix mistake, NULL check\n\t  should be on DEST argument\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": "94f2b3923e9663d0355a829f22e4e31cf68ee7b8",
      "tree": "59c0291a76b1c97fbb089abb479307f19cdfd4c1",
      "parents": [
        "7cad40007b9714dba65065916ea68577f9d3d6dd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 12:44:16 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 12:44:16 2005 +0000"
      },
      "message": "2005-06-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) The great bgpd extern and static\u0027ification.\n\t* bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code\n\t  (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison\n\t  warnings.\n\t* bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these\n\t  used by various files which had their own private declarations,\n\t  in the case of mplsvpn - incorrect.\n"
    },
    {
      "commit": "7cad40007b9714dba65065916ea68577f9d3d6dd",
      "tree": "bc427020c8443d0ef3dab505a220787d6c934699",
      "parents": [
        "34956b31234b4ca562cb2e27c4d9838c61222ace"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 00:19:48 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 28 00:19:48 2005 +0000"
      },
      "message": "2005-06-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* INSTALL.quagga.txt: GNU make is required now, because of manual\n\t  automatic rules in solaris/Makefile.am. (If someone knows how\n\t  to do these in a better way..).\n\t  GNU AWK is required for CVS checkout builds.\n"
    },
    {
      "commit": "34956b31234b4ca562cb2e27c4d9838c61222ace",
      "tree": "9cdb21958660a7f15dd502f4a5f3e7b736b266dd",
      "parents": [
        "7b6ae028f96b8a894d56b46dd9e2206bf996c781"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:44:02 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:44:02 2005 +0000"
      },
      "message": "\t* ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)\n\t  support and area import and export lists support.\n"
    },
    {
      "commit": "7b6ae028f96b8a894d56b46dd9e2206bf996c781",
      "tree": "7a00dd9710b71b9a037415c9bbac5975ad1e8d56",
      "parents": [
        "3e834b122b982d459e7a273c049a07050794e46a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:17:51 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:17:51 2005 +0000"
      },
      "message": "\t* ospf6_message.c: Changed to be insensitive to changes of neighbors\u0027\n\t  IP source address in the OSPF packets. It was sometimes problematic\n\t  in actual operation (needed some operational cost: restarting\n\t  all-neighbor routers when I/F NIC was changed). Due to this change,\n\t  a previously safe case, attaching multiple interface to the same\n\t  link will now be dengerous and will not work. Remedy to that should\n\t  be applied later.\n\n\t[port from GNU Zebra]\n"
    },
    {
      "commit": "3e834b122b982d459e7a273c049a07050794e46a",
      "tree": "7261b957274b6249189cf0deb7b5dfaf9b90c127",
      "parents": [
        "510e209d26c6f1a0fd7f7005f05a98ac71ae1832"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 07:50:12 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 07:50:12 2005 +0000"
      },
      "message": "\t* ospf6_interface.c: fix the way inactivity_timer is called. Because\n\t  inactivity_timer() deletes the neighbor from the neighbor_list, it\n\t  cannot be called by thread_execute() from inner side of the\n\t  neighbor_list for-loop.\n\t  (Although crash was already fixed in Quagga, it\u0027s better follow the\n\t  GNU Zebra logic).\n\n\t[port from GNU Zebra]\n"
    },
    {
      "commit": "510e209d26c6f1a0fd7f7005f05a98ac71ae1832",
      "tree": "2f19320763222efda4a26b46c8b97013400f0e30",
      "parents": [
        "8469bd7552843333f299e0607f0a2efb7ca056f6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 24 01:20:25 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 24 01:20:25 2005 +0000"
      },
      "message": "2005-06-24 Pawel Worach \u003cpawel.worach@gmail.com\u003e\n\n\t* getopt.h: add further tests for full getopt declaration on\n\t  various systems.\n"
    },
    {
      "commit": "8469bd7552843333f299e0607f0a2efb7ca056f6",
      "tree": "82c509d502790f590e1920e1da61a94b0c13067c",
      "parents": [
        "f4833e9f47c0f2f4f5b9a4c020f751055cdd1e20"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:50:10 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:50:10 2005 +0000"
      },
      "message": "Fix date.\n"
    },
    {
      "commit": "f4833e9f47c0f2f4f5b9a4c020f751055cdd1e20",
      "tree": "a91a6d303407dc3fddcb47530ffb38d644499d48",
      "parents": [
        "354f3b66355f7b658d4cc5e8681c80326af13ee7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:42:26 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:42:26 2005 +0000"
      },
      "message": "\t* ospf_nsm.c: Make database exchange for NSSA database work.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "354f3b66355f7b658d4cc5e8681c80326af13ee7",
      "tree": "f74cca8d76ab62803bfae09ed3dded1a95b16c14",
      "parents": [
        "e210cf9fd09c938b92dc1a993b254d8d5a8b312c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jun 18 16:55:20 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jun 18 16:55:20 2005 +0000"
      },
      "message": "2005-06-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memtypes.h: update autobuilt file to match memtypes.c changes\n"
    },
    {
      "commit": "e210cf9fd09c938b92dc1a993b254d8d5a8b312c",
      "tree": "635e23a3f56c05f3cc89bddb5b7030ef0b7d13bc",
      "parents": [
        "245a2b29a501bad850c5399ac1c1da2fddf0572a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 19:15:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 19:15:35 2005 +0000"
      },
      "message": "2005-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.c: (bgp_terminate) workqueue\u0027s are lazy allocated and its\n\t  possible to terminate bgpd before workqueues were setup, causing\n\t  an abort/crash. Reported by Ashish Mehta of Sun.\n"
    },
    {
      "commit": "245a2b29a501bad850c5399ac1c1da2fddf0572a",
      "tree": "b183b49babf70601bfb0018aead875c73bffb7bb",
      "parents": [
        "9b78d0528ad6756b051d82faddfa2c3422403a2e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 11:24:44 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 11:24:44 2005 +0000"
      },
      "message": "2005-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* README.txt: updated to match changed SMF manifest and\n\t  its changed service, instance and property group names.\n"
    },
    {
      "commit": "9b78d0528ad6756b051d82faddfa2c3422403a2e",
      "tree": "566594eea017950238265f3636860e3aaf2f68e5",
      "parents": [
        "62debbbe836d4c96402756ccfead01b09d903428"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 11:00:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 15 11:00:11 2005 +0000"
      },
      "message": "2005-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.xml.in: Pass the FMRI to the method, removing need for\n\t  daemon_name property and deducing the FMRI.\n\t  remove the empty config_file and pid_file definitions, they just\n\t  make things difficult in the method script, cause it then has to\n\t  deal with svcprop returning \"\" for defined empty properties.\n\t  Remove daemon_name everywhere.\n\t* quagga.init.in: Take the FMRI as an argument\n\t  Remove deducing the FMRI from the defunct daemon_name property.\n\t  Use svcprop -q to test for presence of a property first.\n\t  Default vty_port to 0 and vty_addr to 127.1 if equivalent\n\t  SMF properties are not set.\n\t  Deduce the pid_file, we can infer it from @quagga_statedir@ I\n\t  think, it\u0027s probably not useful to allow it to be configurable\n\t  as a property anyway.\n\t  /var/run/ is on tmpfs on Solaris, so we probably will need\n\t  to create @quagga_statedir@ first run after boot.\n\t  Use @sbindir@, not /usr/local/sbin.\n"
    },
    {
      "commit": "62debbbe836d4c96402756ccfead01b09d903428",
      "tree": "fefc2be88f05b7679f383e89bd93fdf6838bfa31",
      "parents": [
        "7461d4594aad716f24690c68c5f82bd865cf9c25"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 14 14:07:07 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jun 14 14:07:07 2005 +0000"
      },
      "message": "2005-06-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: consolidate the IFAM{ADDR,MASK}GET and\n\t  RTM{ADDR,MASK}GET macros into generic rta_addrs macros,\n\t  RTA_{ADDR,ATTR}_GET.\n\t  (af_check) could use \u0027inline\u0027 attribute\n\t  (ifam_read_mesg) remove IFAM{ADDR,MASK}GET macro, change to\n\t  generic macro.\n\t  (rtm_read_mesg) similar\n"
    },
    {
      "commit": "7461d4594aad716f24690c68c5f82bd865cf9c25",
      "tree": "9a65d1ec29bf635122177b87caa86115d9028d78",
      "parents": [
        "1ada81981da3e6422a59d3052d32696fc93cdea1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 13 13:57:16 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 13 13:57:16 2005 +0000"
      },
      "message": "2005-06-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: Try get more information on a SEGV under\n\t  ospf_spf_vertex_add_parent.\n\t  (ospf_vertex_free) NULL out the child and nexthop lists\n\t  (ospf_vertex_add_parent) nexthop and child can not be NULL\n\t  vertex_nexthop\u0027s parent-\u003echild list can not be NULL\n\t  (ospf_spf_next) w and cw are per-loop iteration variables, move\n\t  declarations into loop body.\n"
    },
    {
      "commit": "1ada81981da3e6422a59d3052d32696fc93cdea1",
      "tree": "d207d2b0d92a7386bb05647ab9810db699de6e5b",
      "parents": [
        "1ddd729e6f20b93a635caece8c34ee1b7021fe26"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 12 11:28:18 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 12 11:28:18 2005 +0000"
      },
      "message": "\t* rt_netlink.c: Remove unused netlink-addr socket declaration.\n\t* rt_netlink.c (netlink_parse_info): Fix debug messages - nlmsg_pid is\n\t  unsigned and one zlog call had swapped arguments.\n\t* rt_netlink.c (netlink_route_multipath): Fix compile with disabled\n\t  IPv6 support.\n\n\t[backport candidate] - with stuff commited to rt_netlink.c before to\n\tfix logging in netlink_route_multipath().\n"
    },
    {
      "commit": "1ddd729e6f20b93a635caece8c34ee1b7021fe26",
      "tree": "e9bbe394bf37b142a6febb4b3097074a371764a6",
      "parents": [
        "f69bd9da8b1f7e0f297d4ffb370552fc41af3c81"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jun 07 19:54:04 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jun 07 19:54:04 2005 +0000"
      },
      "message": "\t* ospf_apiserver.c: Fix obvious error in notifying clients about ISM\n\t  changes - oi-\u003eifp-\u003estatus doesn\u0027t give to us info about ISM,\n\t  oi-\u003estate does.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "f69bd9da8b1f7e0f297d4ffb370552fc41af3c81",
      "tree": "02352cf7c23e0f6feca56b39de18a11c66bea84b",
      "parents": [
        "a4e987e0b0b264bd3898f567cb7efec9b155d740"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 03 18:01:50 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 03 18:01:50 2005 +0000"
      },
      "message": "2005-06-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripd.c: (rip_create_socket) Make it static.\n\t  Remove the getservbyname stuff, as RFC2453 3.9.2 says non-RIP\n\t  port messages should be discarded, quagga doesnt accept them,\n\t  no need to lookup port.\n\t  Take a \u0027to\u0027 argument, if socket should be bound to something else.\n\t  setsockopt_so_recvbuf might need privs, move it to the raised\n\t  privileges section.\n\t  dont forget to close the socket if bind fails.\n\t  (rip_send_packet) use strncpy, just in case (address is under\n\t  our control anyway, but still).\n\t  dont duplicate rip_create_socket - just use it.\n\t  (rip_create) rip_create_socket takes an argument now, modify.\n"
    },
    {
      "commit": "a4e987e0b0b264bd3898f567cb7efec9b155d740",
      "tree": "42ec82321bcabe0829090710206556155dd89db9",
      "parents": [
        "a6570ee42f9d3a597c33b73931da5294b43b71ba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 03 17:46:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 03 17:46:49 2005 +0000"
      },
      "message": "2005-06-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripd.c: (rip_create_socket) move it up so rip_send_packet\n\t  can use it too.\n"
    },
    {
      "commit": "a6570ee42f9d3a597c33b73931da5294b43b71ba",
      "tree": "45fa35ceec8e6ce3fa610c63edfa50ba9c11be91",
      "parents": [
        "7085641750bb5ec9b1a73085d9d94ddd9eca7922"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 16:33:53 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 16:33:53 2005 +0000"
      },
      "message": "2005-06-02 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.xml.in: Fix mistake in bgpd definition. Change dependency\n\t  on zebra to optional. Remove the duplicated stability statements.\n\t* quagga.init.in: svcprop should check PACKAGE_TARNAME, not _NAME.\n\t  no need to check for config file either, there\u0027s already a\n\t  dependency in the manifest.\n"
    },
    {
      "commit": "7085641750bb5ec9b1a73085d9d94ddd9eca7922",
      "tree": "a965825679588da6c8810c72be4faf11eeed1f78",
      "parents": [
        "7755a8c28388f7583c184fc1dcdd6225d75553bf"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 08:22:47 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 08:22:47 2005 +0000"
      },
      "message": "2005-06-01 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* NEWS: bgpd work queues and ripd auth-mode change\n"
    },
    {
      "commit": "7755a8c28388f7583c184fc1dcdd6225d75553bf",
      "tree": "522039e13af4a901525438e007130f3583f6a214",
      "parents": [
        "7e440869b51dde1da44f6ffc26643838a1e2b36d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 08:20:53 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 02 08:20:53 2005 +0000"
      },
      "message": "2005-06-01 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* rip_interface.c: Fix authentication, no-auth impossible to specify\n\t  (rip_interface_new) default to RIP_NO_AUTH\n\t  (rip_interface_reset) ditto\n\t  (rip_interface_config_write) write out config for simple\n"
    },
    {
      "commit": "7e440869b51dde1da44f6ffc26643838a1e2b36d",
      "tree": "7d6f74f4b4be26f7bedc02faed6b410d16599a58",
      "parents": [
        "200df115ea0ba6f54151d60fe5e9a7f6948de7c3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 01 11:20:51 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 01 11:20:51 2005 +0000"
      },
      "message": "2005-06-01  Akihiro Mizutani  \u003cmizutani@net-chef.net\u003e\n\n\t* ospf_ism.c (ospf_elect_bdr/ospf_elect_dr): Fix DR election bug.\n"
    },
    {
      "commit": "200df115ea0ba6f54151d60fe5e9a7f6948de7c3",
      "tree": "2aedc0af80d2e805cdf2cefd50432423d2871216",
      "parents": [
        "b31b813671d96ea9e96801508442a90f0ef503fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 01 11:17:05 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 01 11:17:05 2005 +0000"
      },
      "message": "2005-06-01 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd/(general) refcount struct peer and bgp_info, hence allowing us\n\t  add work_queues for bgp_process.\n\t* bgpd/bgp_route.h: (struct bgp_info) Add \u0027lock\u0027 field for refcount.\n\t  Add bgp_info_{lock,unlock} helper functions.\n\t  Add bgp_info_{add,delete} helpers, to remove need for\n\t  users managing locking/freeing of bgp_info and bgp_node\u0027s.\n\t* bgpd/bgp_table.h: (struct bgp_node) Add a flags field, and\n\t  BGP_NODE_PROCESS_SCHEDULED to merge redundant processing of\n\t  nodes.\n\t* bgpd/bgp_fsm.h: Make the ON/OFF/ADD/REMOVE macros lock and unlock\n\t  peer reference as appropriate.\n\t* bgpd/bgp_damp.c: Remove its internal prototypes for\n\t  bgp_info_delete/free. Just use bgp_info_delete.\n\t* bgpd/bgpd.h: (struct bgp_master) Add work_queue pointers.\n\t  (struct peer) Add reference count \u0027lock\u0027\n\t  (peer_lock,peer_unlock) New helpers to take/release reference\n\t  on struct peer.\n\t* bgpd/bgp_advertise.c: (general) Add peer and bgp_info refcounting\n\t  and balance how references are taken and released.\n\t  (bgp_advertise_free) release bgp_info reference, if appropriate\n\t  (bgp_adj_out_free) unlock peer\n\t  (bgp_advertise_clean) leave the adv references alone, or else\n\t  call bgp_advertise_free cant unlock them.\n\t  (bgp_adj_out_set) lock the peer on new adj\u0027s, leave the reference\n\t  alone otherwise. lock the new bgp_info reference.\n\t  (bgp_adj_in_set) lock the peer reference\n\t  (bgp_adj_in_remove) and unlock it here\n\t  (bgp_sync_delete) make hash_free on peer conditional, just in\n\t  case.\n\t* bgpd/bgp_fsm.c: (general) document that the timers depend on\n\t  bgp_event to release a peer reference.\n\t  (bgp_fsm_change_status) moved up the file, unchanged.\n\t  (bgp_stop) Decrement peer lock as many times as cancel_event\n\t  canceled - shouldnt be needed but just in case.\n\t  stream_fifo_clean of obuf made conditional, just in case.\n\t  (bgp_event) always unlock the peer, regardless of return value\n\t  of bgp_fsm_change_status.\n\t* bgpd/bgp_packet.c: (general) change several bgp_stop\u0027s to BGP_EVENT\u0027s.\n\t  (bgp_read) Add a mysterious extra peer_unlock for ACCEPT_PEERs\n\t  along with a comment on it.\n\t* bgpd/bgp_route.c: (general) Add refcounting of bgp_info, cleanup\n\t  some of the resource management around bgp_info. Refcount peer.\n\t  Add workqueues for bgp_process and clear_table.\n\t  (bgp_info_new) make static\n\t  (bgp_info_free) Ditto, and unlock the peer reference.\n\t  (bgp_info_lock,bgp_info_unlock) new exported functions\n\t  (bgp_info_add) Add a bgp_info to a bgp_node in correct fashion,\n\t  taking care of reference counts.\n\t  (bgp_info_delete) do the opposite of bgp_info_add.\n\t  (bgp_process_rsclient) Converted into a work_queue work function.\n\t  (bgp_process_main) ditto.\n\t  (bgp_processq_del) process work queue item deconstructor\n\t  (bgp_process_queue_init) process work queue init\n\t  (bgp_process) call init function if required, set up queue item\n\t  and add to queue, rather than calling process functions directly.\n\t  (bgp_rib_remove) let bgp_info_delete manage bgp_info refcounts\n\t  (bgp_rib_withdraw) ditto\n\t  (bgp_update_rsclient) let bgp_info_add manage refcounts\n\t  (bgp_update_main) ditto\n\t  (bgp_clear_route_node) clear_node_queue work function, does\n\t  per-node aspects of what bgp_clear_route_table did previously\n\t  (bgp_clear_node_queue_del) clear_node_queue item delete function\n\t  (bgp_clear_node_complete) clear_node_queue completion function,\n\t  it unplugs the process queues, which have to be blocked while\n\t  clear_node_queue is being processed to prevent a race.\n\t  (bgp_clear_node_queue_init) init function for clear_node_queue\n\t  work queues\n\t  (bgp_clear_route_table) Sets up items onto a workqueue now, rather\n\t  than clearing each node directly. Plugs both process queues to\n\t  avoid potential race.\n\t  (bgp_static_withdraw_rsclient) let bgp_info_{add,delete} manage\n\t  bgp_info refcounts.\n\t  (bgp_static_update_rsclient) ditto\n\t  (bgp_static_update_main) ditto\n\t  (bgp_static_update_vpnv4) ditto, remove unneeded cast.\n\t  (bgp_static_withdraw) see bgp_static_withdraw_rsclient\n\t  (bgp_static_withdraw_vpnv4) ditto\n\t  (bgp_aggregate_{route,add,delete}) ditto\n\t  (bgp_redistribute_{add,delete,withdraw}) ditto\n\t* bgpd/bgp_vty.c: (peer_rsclient_set_vty) lock rsclient list peer\n\t  reference\n\t  (peer_rsclient_unset_vty) ditto, but unlock same reference\n\t* bgpd/bgpd.c: (peer_free) handle frees of info to be kept for lifetime\n\t  of struct peer.\n\t  (peer_lock,peer_unlock) peer refcount helpers\n\t  (peer_new) add initial refcounts\n\t  (peer_create,peer_create_accept) lock peer as appropriate\n\t  (peer_delete) unlock as appropriate, move out some free\u0027s to\n\t  peer_free.\n\t  (peer_group_bind,peer_group_unbind) peer refcounting as\n\t  appropriate.\n\t  (bgp_create) check CALLOC return value.\n\t  (bgp_terminate) free workqueues too.\n\t* lib/memtypes.c: Add MTYPE_BGP_PROCESS_QUEUE and\n\t  MTYPE_BGP_CLEAR_NODE_QUEUE\n"
    },
    {
      "commit": "b31b813671d96ea9e96801508442a90f0ef503fa",
      "tree": "2e5e369667da72c91e9e3dacacefb1eca1d5a59c",
      "parents": [
        "cf333c7ac1ce752369ffe7ddd6edeb10f0d9c9f7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 10:24:28 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 10:24:28 2005 +0000"
      },
      "message": "\t* ospf6d.c: No need for double \u0027;\u0027. Fixes parsing \"show ipv6 ospf6\n\t  database ...\" commands for vtysh by extract.pl. Remove duplicate\n\t  install_element calls.\n\n\tFixes bugzilla #194. [backport candidate]\n"
    },
    {
      "commit": "cf333c7ac1ce752369ffe7ddd6edeb10f0d9c9f7",
      "tree": "d87764320171b26332955f47bad6eb857e32c046",
      "parents": [
        "1dcb51729b4a8bd7ed21126c7e5e61bc096f8674"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 09:18:25 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 09:18:25 2005 +0000"
      },
      "message": "Ignore generated prototype.smf.\n"
    },
    {
      "commit": "1dcb51729b4a8bd7ed21126c7e5e61bc096f8674",
      "tree": "751f35fe2742a037d9f5b4651cd3a8c53a9453d1",
      "parents": [
        "0cb8a01c38284a5a3f4ee4b017b69cd5f3e39f9a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 31 08:38:50 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 31 08:38:50 2005 +0000"
      },
      "message": "2005-05-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zserv.c: (zsend_route_multipath) Fix bug if route is sent\n\t  with no NEXTHOP_FLAG_FIB nexthops. As ZAPI_MESSAGE_IFINDEX\n\t  and ZAPI_MESSAGE_NEXTHOP are always set, clients would try\n\t  read non-existent nexthop information and hit stream assert.\n\t  Zserv is still broken for multi-nexthop messages, but it always was.\n"
    },
    {
      "commit": "0cb8a01c38284a5a3f4ee4b017b69cd5f3e39f9a",
      "tree": "c3630492d44c8a9f45eed668e960d644f322f595",
      "parents": [
        "033e861222f07d68697aa883d9391a30c3e011c6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 29 11:27:24 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 29 11:27:24 2005 +0000"
      },
      "message": "2005-05-29 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ripd.c: (rip_output_process) fix error which crept in my\n\t  previous rip auth untanglement commit - it had become impossible\n\t  to not have authentication (even for v1).\n"
    },
    {
      "commit": "033e861222f07d68697aa883d9391a30c3e011c6",
      "tree": "e21f614e529e61e4de6ed8c3d64cae12ed20c9c2",
      "parents": [
        "70601e0691e178ca23f14fdc666a97efce26897f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 28 04:50:54 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 28 04:50:54 2005 +0000"
      },
      "message": "Sync bgpd and ripd set_metric_addsub_cmd commands. Fixes bugzilla #192.\n[backport candidate]\n"
    },
    {
      "commit": "70601e0691e178ca23f14fdc666a97efce26897f",
      "tree": "02e822953d578b96c53a053b97573f6c009c6461",
      "parents": [
        "54a6ed38ac38777f5c2966f74a85cc12659efc87"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri May 27 03:26:57 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri May 27 03:26:57 2005 +0000"
      },
      "message": "\t* bgp_routemap.c: Stop leaking communities.\n\n\tFixes bugzilla #89. [backport candidate]\n"
    },
    {
      "commit": "54a6ed38ac38777f5c2966f74a85cc12659efc87",
      "tree": "d38112804dd53e9305514feb3d570a5214085745",
      "parents": [
        "500e418921b0a2141e182a346f8d32864516236d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 22:12:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 22:12:33 2005 +0000"
      },
      "message": "\t* bgpd.c: Deleting bgp-\u003ersclient list needs fix similar to pree-groups\n\t  deleting fix. Avoid leaking bgp-\u003egroup, bgp-\u003epeer and bgp-\u003ersclient\n\t  lists.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "500e418921b0a2141e182a346f8d32864516236d",
      "tree": "e5a67868972b4807506c8fd1a721347f4bdb8c89",
      "parents": [
        "e7fe02fd717a4c62373f3c46a4439e28b43c7dab"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 26 17:11:13 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 26 17:11:13 2005 +0000"
      },
      "message": "2005-05-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_abr.c: (ospf_abr_update_aggregate) Fix comment, cost bug itself\n\t  had been fixed long ago by Sowmini.\n"
    },
    {
      "commit": "e7fe02fd717a4c62373f3c46a4439e28b43c7dab",
      "tree": "3ba9923c9cab86808a226f15f9a6c1481f9e433e",
      "parents": [
        "b6b7cff22df912938f6cfd755dcad8cf915be2d0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 11:30:38 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 11:30:38 2005 +0000"
      },
      "message": "\t* isis_dr.c: Fix copy\u0026paste error in isis_dr_resign().\n\n\t[backport candidate]\n"
    },
    {
      "commit": "b6b7cff22df912938f6cfd755dcad8cf915be2d0",
      "tree": "26599303f4a7b7364d8d2750f3126b013d78b781",
      "parents": [
        "dc625e86063125f8ecaaa1502c3cf53f44d76eff"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 08:29:07 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 08:29:07 2005 +0000"
      },
      "message": "\t* bgpd.c: Don\u0027t crash while deleting list of peer-groups.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "dc625e86063125f8ecaaa1502c3cf53f44d76eff",
      "tree": "243a52620109d888335b26cf8fdf98052b62e801",
      "parents": [
        "cf96db1cef3e039f3a87c0bc36206b882e804949"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 06:26:40 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 26 06:26:40 2005 +0000"
      },
      "message": "\t* rip_routemap.c: In case of \u00270.0.0.0\u0027 used as \u0027nexthop\u0027, use sender\n\t  address as nexthop in routemap.\n\n\tFixes bugzilla #186. [backport candidate]\n"
    },
    {
      "commit": "cf96db1cef3e039f3a87c0bc36206b882e804949",
      "tree": "10c9cb9bae5772bdfb340ae263b59a3d4deb3ce4",
      "parents": [
        "b5f29603399070041289729e175fbec085e8e904"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 25 21:15:32 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 25 21:15:32 2005 +0000"
      },
      "message": "\t* rip_routemap.c: Make \"match interface\" routemap command match both -\n\t  in and out interfaces.\n\n\tFixes bugzilla #185. [backport candidate]\n"
    },
    {
      "commit": "b5f29603399070041289729e175fbec085e8e904",
      "tree": "320e22b39f6e0ff1f689f089898cb7b2ffc1cbf9",
      "parents": [
        "92c9f2229fea8fdef31a701d36d7df91f3e9905d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 25 21:00:28 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 25 21:00:28 2005 +0000"
      },
      "message": "\t* bgpd.c: Fix obvious (routeserver patch) merge error. This makes \"no\n\t  neighbor x.x.x.x routemap [export|import] commands work again.\n\n\tFixes bugzilla #184. [backport candidate]\n"
    },
    {
      "commit": "92c9f2229fea8fdef31a701d36d7df91f3e9905d",
      "tree": "66c1c5df86c8d7bf1ef05e39505898eaf3919f98",
      "parents": [
        "8176c19f6104c6fa6bee88618b41719938fb42cc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 25 12:21:13 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 25 12:21:13 2005 +0000"
      },
      "message": "2005-05-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* isisd.c: (show_isis_generated_topology) change to _RO version\n\t  of list macro. remove the extra listnode variable. one of the\n\t  macros had had incorrect number of arguments.\n"
    },
    {
      "commit": "8176c19f6104c6fa6bee88618b41719938fb42cc",
      "tree": "8344d38d4578eba51862a265c69cf04d1b6f63d8",
      "parents": [
        "00d252cb5ff21ecc537ab40385316b41622a95e2"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 24 09:33:52 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 24 09:33:52 2005 +0000"
      },
      "message": "2005-05-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* memtypes.h: update this auto-built file. (maybe we should just\n\t  remove it, is GNU awk a terrible dependency to have?)\n"
    },
    {
      "commit": "00d252cb5ff21ecc537ab40385316b41622a95e2",
      "tree": "c0132f4be53d8ae251ecb1dd8c39816f8734d08f",
      "parents": [
        "269d74fdc39a612da8f627bf97628c68d25a16ab"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 14:19:54 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 14:19:54 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_fsm.h: Add extern qualifier to exported functions\n\t* bgp_nexthop.c: add static to nexthop specific globals\n\t* *.h: Add guard defines\n"
    },
    {
      "commit": "269d74fdc39a612da8f627bf97628c68d25a16ab",
      "tree": "8add14e852e83369123ee576a995b28f006800d4",
      "parents": [
        "a94feb380df46bdfc742257648c9825e8e7b17c0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 13:42:46 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 13:42:46 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* workqueue.h: Add a WQ_QUEUE_BLOCKED item_status return code,\n\t  to allow a queue function to indicate the queue is not\n\t  ready/blocked - rather than any problem with the item at hand.\n\t  Add a notion of being able to \u0027plug\u0027 and \u0027unplug\u0027 a queue.\n\t  Add helpers to plug/unplug a queue.\n\t  Add a completion callback, to be called when a queue is emptied.\n\t* workqueue.c: (work_queue_new) remove useless list_free.\n\t  (work_queue_schedule) new internal helper function to schedule\n\t  queue, if appropriate.\n\t  (work_queue_add) use work_queue_schedule\n\t  (show_work_queues) Print \u0027P\u0027 if queue is plugged.\n\t  (work_queue_plug) new API function, plug a queue - ie prevent it\n\t  from \u0027drained\u0027 / processed / scheduled.\n\t  (work_queue_unplug) unplug a queue, allowing it to be drained\n\t  / scheduled / processed again.\n\t  (work_queue_run) Add support for WQ_QUEUE_BLOCKED.\n\t  Add comment for RETRY_NOW case.\n\t  Make hysteris more aggresive in ramping up granularity, improves\n\t  performance significantly.\n\t  Add support for calling completion callback when queue is emptied,\n\t  possibly useful for knowing when to unplug a queue.\n"
    },
    {
      "commit": "a94feb380df46bdfc742257648c9825e8e7b17c0",
      "tree": "1b79a4bb5dcab782036a57cb684ee7c392ef13b3",
      "parents": [
        "d4f0960cb23abc7528d7282fa08c68131eae5f93"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 13:17:29 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 13:17:29 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_routemap.c: add semi-colons to VTY_GET_* to match vty.h change\n"
    },
    {
      "commit": "d4f0960cb23abc7528d7282fa08c68131eae5f93",
      "tree": "8a1bc8eac474c49ca76f27971c65f74fd5a74c89",
      "parents": [
        "d5c925396629ef93cb38c2a63c3ac63911a341a6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 12:43:34 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 12:43:34 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* routemap.c: (rmap_onmatch_goto) fix crash if \u0027continue\u0027 command\n\t  is used, which does not supply an argv[0].\n\t  this is a backport candidate /iff/ the trailing ; is removed\n\t  from VTY_GET_INTEGER_RANGE\n\t* vty.h: fix the VTY_GET macros, do {..} while(0) so they have\n\t  correct function like syntax in usage.\n"
    },
    {
      "commit": "d5c925396629ef93cb38c2a63c3ac63911a341a6",
      "tree": "9bc19245fec73ec4e1f488775483f51b143e3b67",
      "parents": [
        "e387e6654fe75a5f043ea21b483e78bf0f3d4447"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 12:33:58 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 23 12:33:58 2005 +0000"
      },
      "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* memtypes.awk: use character classes, which work correctly in\n\t  all LC_COLLATE environments, unlike A-Z, which doesnt work in\n\t  eg estonian collate order. Reported by Hasso.\n"
    },
    {
      "commit": "e387e6654fe75a5f043ea21b483e78bf0f3d4447",
      "tree": "928bed31a8597bf7c52dcedc51e02a7f5b063e1d",
      "parents": [
        "e83e2080cecffa86267c07b46bbb5a9677b37996"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 02:13:28 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 02:13:28 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* memtypes.c: (memory_list_bgp) add MTYPE_BGP_PEER_HOST\n"
    },
    {
      "commit": "e83e2080cecffa86267c07b46bbb5a9677b37996",
      "tree": "4523977a4fea76bdf2609ecb656a175aeaa4032f",
      "parents": [
        "22db9dec63766cdf6dcd3ecb4b48177fb0e48143"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 02:12:25 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 02:12:25 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_network.c: (bgp_accept) use XSTRDUP\n\t* bgpd.c: (peer_delete) XFREE the correct memtype, not free.\n\t  (peer_create) use XSTRDUP\n\t* bgp_packet.c: (bgp_stream_dup) deleted, stream_dup should be used\n\t  (various) update -\u003e s/bgp_stream_dup/stream_dup\n"
    },
    {
      "commit": "22db9dec63766cdf6dcd3ecb4b48177fb0e48143",
      "tree": "3de4512bd147a2822c3af46aacc8822ea1083e78",
      "parents": [
        "2ba9a37add807b1fbd103424b1365fac8fb2b78f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:50:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:50:11 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_fsm.c: (bgp_stop) use sockunion_free, not XFREE..\n\t* bgp_network.c: (bgp_getsockname) ditto\n\t* bgp_routemap.c: (route_match_peer) ditto, als use a ret value and\n\t  remove one sockunion_free.\n\t* bgpd.c: (peer_delete) ditto\n"
    },
    {
      "commit": "2ba9a37add807b1fbd103424b1365fac8fb2b78f",
      "tree": "5b9143db0816baf0a02db384c6dab0dcde5dda6d",
      "parents": [
        "dc81807a5b2b3dc8138d74e23ece71402a6c03b4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:37:50 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:37:50 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockunion.c: (sockunion_getsockname) use MTYPE_SOCKUNION, not TMP\n\t  (sockunion_getpeername) ditto\n"
    },
    {
      "commit": "dc81807a5b2b3dc8138d74e23ece71402a6c03b4",
      "tree": "7f2850cf793ea8c5241b85b18e971bd763707f14",
      "parents": [
        "a3387a4488c35d322d3c78973c967b2be5967b6e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:30:53 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 19 01:30:53 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* thread.c: (thread_cancel_event) the number of pending events\n\t  cancelled is potentially useful information, dont throw it away,\n\t  pass it back to the caller.\n"
    },
    {
      "commit": "a3387a4488c35d322d3c78973c967b2be5967b6e",
      "tree": "678da23a64c1bb41c2c6c87b362f62f9db22de03",
      "parents": [
        "024a7f06979b467299a85e915b78af456a89e3a6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 18 23:29:57 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 18 23:29:57 2005 +0000"
      },
      "message": "2005-05-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_interface.c: (ospf_if_table_lookup) Fix a serious bug\n\t  a less serious one.\n\t  1: this function is supposed to lookup\n\t  entries in the oifs ospf_interface route_table and return either\n\t  an existing oi or NULL to indicate not found, its caller depends\n\t  on this, yet this function uses route_node_get which /always/\n\t  returns a route_node - one is created if none exists. Use\n\t  route_node_lookup instead. This should fix root cause of the\n\t  reports of the (ospf_add_to_if) assert being hit.\n\t  2: oi\u0027s are inserted into this table with prefixlength set to\n\t  /32 (indeed, it should be a hash table, not a route_table),\n\t  however prefixlength to lookup was not changed, if no valid entry\n\t  can be inserted other than /32, then nothng but /32 should be\n\t  looked up. This possibly only worked by fluke..\n\t  Fix confirmed by 2 reporters (one list, one IRC), definitely a\n\t  backport candidate once it has been incubated in HEAD for a while.\n\t  Thanks to Patrick Friedel and Ivan Warren for testing.\n"
    },
    {
      "commit": "024a7f06979b467299a85e915b78af456a89e3a6",
      "tree": "e9c28719f8812dd808699dd6108532d9526a476b",
      "parents": [
        "14c1f187acdca1278e035e30d4c036d6eacf9721"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 15 14:25:08 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 15 14:25:08 2005 +0000"
      },
      "message": "2005-05-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* getopt.h: It\u0027s not just __GNU_LIBRARY__ which defines\n\t  getopt, eg __EXTENSIONS__ does too on SunOS. It still seems\n\t  awfully fragile though.\n\t* getopt.c: include zebra.h after config.h, before including\n\t  getopt.h so that things at least are consistent..\n\t* getopt1.c: ditto\n"
    },
    {
      "commit": "14c1f187acdca1278e035e30d4c036d6eacf9721",
      "tree": "596fcb876e4395785399465e15ec2d922d0f37c8",
      "parents": [
        "65c1cafd3a23ee877d184f03b1c36f0bf5a9db01"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 20:11:53 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 20:11:53 2005 +0000"
      },
      "message": "- revert the commenting of touch doc/quagga.info, wont work because\n  defines.texi is autogenerated every configure time so it will always\n  be newer than quagga.info, and hence require quagga.info to be built. drat.\n"
    },
    {
      "commit": "65c1cafd3a23ee877d184f03b1c36f0bf5a9db01",
      "tree": "1427c6bc6ee903b1bfc125f72de5215ee8bfb49c",
      "parents": [
        "cbc6d742aeb8b31580fca1e7e959da4e06e3e468"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:26:07 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:26:07 2005 +0000"
      },
      "message": "2005-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* prototype.daemons.in: Move the Solaris 10 SMF specific stuff to\n\t  a seperate package.\n\t* depend.smf: dependencies for smf package\n\t* pkginfo.smf.tmpl.in: pkginfo for smf\n\t* prototype.smf.in: prototype for smf\n\t* Makefile.am: Add smf to pkg_names\n"
    },
    {
      "commit": "cbc6d742aeb8b31580fca1e7e959da4e06e3e468",
      "tree": "52680f64297d5e95d51dcf530c862556eb51d83d",
      "parents": [
        "0f3b199a01cab5e5ae9edf498ba58f726b25893a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:16:28 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:16:28 2005 +0000"
      },
      "message": "- Forgot to commit ChangeLog\n"
    },
    {
      "commit": "0f3b199a01cab5e5ae9edf498ba58f726b25893a",
      "tree": "54089eac1a34f777361e0664109c94e3add29798",
      "parents": [
        "e3ca81413a6c51a0ef09707bc9926d6edec4f71b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:15:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:15:35 2005 +0000"
      },
      "message": "2005-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.xml.in: Sigh, XML child elements are order-sensitive.\n\t* prototype.doc.in: info/dir doesnt get created always.. comment\n\t  out for now, likely needs to be done with an install method.\n"
    },
    {
      "commit": "e3ca81413a6c51a0ef09707bc9926d6edec4f71b",
      "tree": "6acabcead258cc8c1c91bda427442c760f09ac98",
      "parents": [
        "69310a679aef2b532f6851298b453eb7ca4d3534"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:09:50 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 13 07:09:50 2005 +0000"
      },
      "message": "2005-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Comment out the touch doc/quagga.info hack. I\u0027m\n\t  hoping it\u0027s not needed anymore, cause it breaks out of tree builds\n\t  which i\u0027ve become fond of.. Plus I think we sorted out most of\n\t  the original problems (updated texinfo.tex, moved the version\n\t  info to an autogenerated by automake version.texi). Dist users\n\t  most definitely wont be affected.\n"
    },
    {
      "commit": "69310a679aef2b532f6851298b453eb7ca4d3534",
      "tree": "1c6a2f3520b0253ae7db42c776e69507c53192ef",
      "parents": [
        "d4e47287efd60f77b473f8d5677e4dac08c192b0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 11 18:09:59 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 11 18:09:59 2005 +0000"
      },
      "message": "2005-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fix memory leaks in opaque AS-scope LSAs, reported and\n\t  with much debugging done by by scott collins \u003cscollins@agile.tv\u003e.\n\t  (possible backport candidate?)\n\t* ospf_lsa.c: (ospf_discard_from_db) dont call\n\t  ospf_ase_unregister_external_lsa for opaque-lsa\u0027s, opaques are\n\t  never registered with ase in the first place.\n\t* ospf_packet.c: (general) Disabuse opaque related code of its\n          tendency to try gather up things into temporary lists.\n          (ospf_ls_upd) remove the temporary lists opaque uses, call\n          opaque functions inline, just like all other types.\n          (ospf_ls_ack) ditto.\n          (ospf_recv_packet) fixup sign warning.\n        * ospf_opaque.c: (general) fix the unneeded use of lists, and\n          untwist some of the logic.\n          (ospf_opaque_self_originated_lsa_received) take a single LSA\n          as argument, not a list of them. Remove the list loop. Logic\n          otherwise unchanged.\n          (ospf_opaque_ls_ack_received) Mostly ditto. But untwist the logic,\n          move the actions up into the switch block, remove the goto\u0027s and\n          sanitise the logic near the end a bit.\n        * ospf_opaque.h: Adjust definitions of aforementioned functions\n          in ospf_opaque.c to match.\n"
    },
    {
      "commit": "d4e47287efd60f77b473f8d5677e4dac08c192b0",
      "tree": "06dfe25619e4cee9601a92b07b7a61625c0f6c4a",
      "parents": [
        "42c981994adcf7fb2e1c2bea170cc5f196d5a1d7"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed May 11 15:56:21 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed May 11 15:56:21 2005 +0000"
      },
      "message": "2005-05-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* rip_interface.c (rip_interface_add): Need to call\n\t  rip_passive_interface_apply (was already calling it in\n\t  rip_interface_up).\n\n\t[backport candidate]\n"
    },
    {
      "commit": "42c981994adcf7fb2e1c2bea170cc5f196d5a1d7",
      "tree": "ba2bae75f527d0a034cb42ee3177db9f47802fda",
      "parents": [
        "4dadc291e56195886fd047690ded9686f4e013fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 07 02:22:51 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 07 02:22:51 2005 +0000"
      },
      "message": "2005-05-07 Yar Tikhiy \u003cyar@comp.chem.msu.su\u003e\n\n\t* configure.ac: Check for OSes which support passing ifindex in\n\t  struct ip_mreq.\n\t* lib/sockopt.c: Add support for BSD style ifindex in ip_mreq.\n\t* ospfd/ospf_network.c: Log ifindex on multicast membership leave/join\n\t  events.\n"
    },
    {
      "commit": "4dadc291e56195886fd047690ded9686f4e013fa",
      "tree": "ea7c0690912d2b7d0c487f6855960e768fff1b6e",
      "parents": [
        "69e10adaf28d4e116c38db2648786557fe131828"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) extern and static qualifiers added.\n          unspecified arguments in definitions fixed, typically they should\n          be \u0027void\u0027.\n          function casts added for callbacks.\n          Guards added to headers which lacked them.\n          Proper headers included rather than relying on incomplete\n          definitions.\n          gcc noreturn function attribute where appropriate.\n        * ospf_opaque.c: remove the private definition of ospf_lsa\u0027s\n          ospf_lsa_refresh_delay.\n        * ospf_lsa.h: export ospf_lsa_refresh_delay\n        * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const,\n          correct thing to do - removes need for the casts later.\n        * ospf_vty.c: Use vty.h\u0027s VTY_GET_INTEGER rather than ospf_vty\u0027s\n          home-brewed versions, shuts up several warnings.\n        * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and\n          VTY_GET_IPV4_PREFIX moved to lib/vty.h.\n        * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky\n          overloading of the THREAD_ARG pointer should at least use\n          uintptr_t.\n"
    },
    {
      "commit": "69e10adaf28d4e116c38db2648786557fe131828",
      "tree": "4e00214ef16ba68f9d9b6a3fa8ff5c66a1a54d93",
      "parents": [
        "8cc4198f9fabe5f10f5a773de1503d82f33a01fb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:27:33 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:27:33 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zserv.h: Remove ZEBRA_PORT definition, its in lib/zebra.h now\n"
    },
    {
      "commit": "8cc4198f9fabe5f10f5a773de1503d82f33a01fb",
      "tree": "77045da709ff66629bd12029b9ee17700360909b",
      "parents": [
        "e7fe8c88c3d552400e1ae3ae9243319ab95d6f2d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (general) extern and static\u0027ification of functions in code and\n\t  header.\n\t  Cleanup any definitions with unspecified arguments.\n\t  Add casts for callback assignments where the callback is defined,\n\t  typically, as passing void *, but the function being assigned has\n\t  some other pointer type defined as its argument, as gcc complains\n\t  about casts from void * to X* via function arguments.\n\t  Fix some old K\u0026R style function argument definitions.\n\t  Add noreturn gcc attribute to some functions, as appropriate.\n\t  Add unused gcc attribute to some functions (eg ones meant to help\n\t  while debugging)\n\t  Add guard defines to headers which were missing them.\n\t* command.c: (install_node) add const qualifier, still doesnt shut\n\t  up the warning though, because of the double pointer.\n\t  (cmp_node) ditto\n\t* keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived\n\t  fromn vty.h ones to fix some of the (long) \u003c 0 warnings.\n\t* thread.c: (various) use thread_empty\n\t  (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type\n\t* vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they\n\t  removed from ospfd/ospf_vty.h\n\t* zebra.h: Move definition of ZEBRA_PORT to here, to remove\n\t  dependence of lib on zebra/zserv.h\n"
    }
  ],
  "next": "e7fe8c88c3d552400e1ae3ae9243319ab95d6f2d"
}
