)]}'
{
  "log": [
    {
      "commit": "e7168df4eff0d377621c45deb32cfcfa72e0dd83",
      "tree": "86c4017761ffd8cfdbc16223915a9f537844c4f2",
      "parents": [
        "eef1fe11b89c5ec3c035ff6e4a9acfbc5780b539"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "message": "Big vtysh cleanup. See changelogs for details.\n"
    },
    {
      "commit": "18a6dce6f83dd20caf1f36c8e840868ff0bf6dbd",
      "tree": "ff832cbf6fe2b239bde06268820587bec671ae6d",
      "parents": [
        "a49c0ff6771975eeb1bd7da923a9dc830200cf65"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "message": "Common router id.\n"
    },
    {
      "commit": "9172ee0e5dc8c6f6929821fb1433699700e53114",
      "tree": "63c8f3d3c3c375fe9613217e8e22213a7e10bf42",
      "parents": [
        "ddb07e5bf4e16889b0845c83d8a73ebfa435bcba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:46:37 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:46:37 2004 +0000"
      },
      "message": "2004-09-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd\n\t  to try to fragment oversized packets. Enabled only for Linux.\n\t  Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,\n\t  to consolidate various ad-hoc platform defines for same thing.\n"
    },
    {
      "commit": "e473b032b860444b9656cee1654b0120f77b52b1",
      "tree": "8885e2b15c70fb231e775dead3cc30bea18311ce",
      "parents": [
        "c83dcd3f81ed21c72ad50e56a6c515c7eacac44c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:08:11 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:08:11 2004 +0000"
      },
      "message": "Compiler warnings fixes.\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": "b89e60c7abd457f97df8351db5610fc9c15178b2",
      "tree": "0dc4ab86a52a617f1acae71f707a172d560d1d1b",
      "parents": [
        "d9c427b21a5509a940178dedebec625bd7a9640a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 21 15:43:13 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 21 15:43:13 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockopt.c: Add missing bracket\n"
    },
    {
      "commit": "0b3acf4f94241905ff36df5c1d9f9f389e45d191",
      "tree": "48b312ab2de446208d966d234fc37539bed98861",
      "parents": [
        "bf731011ef7038f5766432fec862301c123d4736"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ripngd/ripngd.c: move setsockopt_so_recvbuf to lib.\n        * lib/sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.\n        * ripd/ripd.c: set receive buffer to a decent size, some systems\n          have low defaults. Problem noted and fix suggested by Stephan\n          Schweizer in [zebra 20967].\n"
    },
    {
      "commit": "33394766a502eff6315bd8d9b1c43a773b2ec35b",
      "tree": "f893ddac05598e96644fc6462ad6ee80e9c16656",
      "parents": [
        "fee0f4c629412f422fc9a857e097ef335c2c576c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 11:27:57 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 11:27:57 2004 +0000"
      },
      "message": "2004-09-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * configure.ac: capitalise the package name. autoconf lowercases\n          it for PACKAGE_TARNAME.\n        * lib/command.c: Update the copyright string in the default motd.\n"
    },
    {
      "commit": "fee0f4c629412f422fc9a857e097ef335c2c576c",
      "tree": "14703e303ea2cecaee7728d9ee27075b0590a679",
      "parents": [
        "0e82d0e1204e45ecce773a7e19f7d64140f7a66a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:12:46 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:12:46 2004 +0000"
      },
      "message": "2004-09-13 Jose Luis Rubio \u003cjrubio@dit.upm.es\u003e\n           (at Technical University of Madrid as part of Euro6ix Project)\n\n        Enhanced Route Server functionality and Route-Maps:\n\n        * bgpd/bgpd.h: Modified \u0027struct peer\u0027 and \u0027struct bgp_filter\u0027 to\n        support rs-clients. A \u0027struct bgp_table *rib\u0027 has been added to the\n        first (to mantain a separated RIB for each rs-client) and two new\n        route-maps have been added to the last (for import/export policies).\n        Added the following #defines: RMAP_{IN|OUT|IMPORT|EXPORT|MAX},\n        PEER_RMAP_TYPE_{IMPORT|EXPORT} and BGP_CLEAR_SOFT_RSCLIENT.\n\n        * bgpd/bgpd.c: Modified the functions that create/delete/etc peers in\n        order to consider the new fields included in \u0027struct peer\u0027 for\n        supporting rs-clients, i.e. the import/export route-maps and the\n        \u0027struct bgp_table\u0027.\n\n        * bgpd/bgp_route.{ch}: Modified several functions related with\n        receiving/sending announces in order to support the new Route Server\n        capabilities.\n        Function \u0027bgp_process\u0027 has been reorganized, creating an auxiliar\n        function for best path selection (\u0027bgp_best_selection\u0027).\n        Modified \u0027bgp_show\u0027 and \u0027bgp_show_route\u0027 for displaying information\n        about any RIB (and not only the main bgp RIB).\n        Added commands for displaying information about RS-clients RIBs:\n        \u0027show bgp rsclient (A.B.C.D|X:X::X:X)\u0027, \u0027show bgp rsclient\n        (A.B.C.D|X:X::X:X) X:X::X:X/M\u0027, etc\n\n        * bgpd/bgp_table.{ch}: The structure \u0027struct bgp_table\u0027 now has two\n        new fields: type (which can take the values BGP_TABLE_{MAIN|RSCLIENT})\n        and \u0027void *owner\u0027 which points to \u0027struct bgp\u0027 or \u0027struct peer\u0027 which\n        owns the table.\n        When creating a new bgp_table by default \u0027type\u003dBGP_TABLE_MAIN\u0027 is set.\n\n        * bgpd/bgp_vty.c: The commands \u0027neighbor ... route-server-client\u0027 and\n        \u0027no neighbor ... route-server-client\u0027 now not only set/unset the flag\n        PEER_FLAG_RSERVER_CLIENT, but they create/destroy the \u0027struct\n        bgp_table\u0027 of the peer. Special actions are taken for peer_groups.\n        Command \u0027neighbor ... route-map WORD (in|out)\u0027 now also supports two\n        new kinds of route-map: \u0027import\u0027 and \u0027export\u0027.\n        Added commands \u0027clear bgp * rsclient\u0027, etc. These commands allow a new\n        kind of soft_reconfig which affects only the RIB of the specified\n        RS-client.\n        Added commands \u0027show bgp rsclient summary\u0027, etc which display a\n        summary of the rs-clients configured for the corresponding address\n        family.\n\n        * bgpd/bgp_routemap.c: A new match statement is available,\n        \u0027match peer (A.B.C.D|X:X::X:X)\u0027. This statement can only be used in\n        import/export route-maps, and it matches when the peer who announces\n        (when used in an import route-map) or is going to receive (when used\n        in an export route-map) the route is the same than the one specified\n        in the statement.\n        For peer-groups the statement matches if the specified peer is member\n        of the peer-group.\n        A special version of the command, \u0027match peer local\u0027, matches with\n        routes originated by the Route Server (defined with \u0027network ...\u0027,\n        redistributed routes and default-originate).\n\n        * lib/routemap.{ch}: Added a new clause \u0027call NAME\u0027 for use in\n        route-maps. It jumps into the specified route-map and when it returns\n        the first route-map ends if the called RM returns DENY_MATCH, or\n        continues in other case.\n"
    },
    {
      "commit": "630e48072a4a4685a7c04a7b73ae9170d2f0844a",
      "tree": "1a343e551a0ce24d8c8c93aa62860742749355ee",
      "parents": [
        "94755ea13e9466fc4590994b551dc23a44571622"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Aug 31 17:28:41 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Aug 31 17:28:41 2004 +0000"
      },
      "message": "Assorted changes from work at BBN.  Most are minor, and several are in\nsupport of more significant changes not in this commit.  The last item\nin the ChangeLog below may be needed for p2mp to work correctly.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* hash.c (hash_iterate): Save next pointer before calling\n\tprocedure, so that iteration works even if the called procedure\n\tdeletes the hash backet.\n\n\t* linklist.h (listtail): new macro, not yet used.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_spf.c (ospf_spf_calculate): Many more comments and debug\n\t  print statements.  New function ospf_vertex_dump used in debugging.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_spf.h (struct vertex): Comments for flags and structure members.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_route.c: When finding an alternate route, log cost as well.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_interface.c (ospf_lookup_if_params): Initialize af in\n\tstruct prefix allocated on stack.\n\n2004-08-31  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_packet.c (ospf_ls_ack_send_delayed): In p2mp mode, send\n\tacks to AllSPFRouters, rather than All-DR.\n"
    },
    {
      "commit": "34553cc3c996bb530652663810664935f40f5560",
      "tree": "618a9f5f8a1c5a70ff20946e3d2adb0897bcd1e9",
      "parents": [
        "d7d93997315472f2f1f40012795e31604db95491"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 13:56:39 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 13:56:39 2004 +0000"
      },
      "message": "Make \"terminal length \u003c0-512\u003e\" command work in vtysh.\n"
    },
    {
      "commit": "fd73aa9e484f5c54c190b0c25b07294ce4ff168a",
      "tree": "be5ad086bdabe98492ac37cf8ee9d62e9b045195",
      "parents": [
        "a5ea687e0128b64d7c2b795d7fcb533ed5fd68e6"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Aug 26 14:14:43 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Aug 26 14:14:43 2004 +0000"
      },
      "message": "add () on SOPT_SIZE_CMSG_PKTINFO_IPV4() use, to match def.\nThanks to Hasso for code review.\n"
    },
    {
      "commit": "afa43b23925175ff750d91bbd1c639b47bcb597e",
      "tree": "2efb6115252045f85fa4f2425cc82d15251347f2",
      "parents": [
        "95e735b54408177a8a6659da342f17d487dfeb2c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Aug 26 13:12:41 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Aug 26 13:12:41 2004 +0000"
      },
      "message": "2004-08-26  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* sockopt.h: Define method-independent macro for callers of\n\tget_ifindex to use for cmsg length.\n"
    },
    {
      "commit": "efba6ce941fb96763d5804212a674ca6b7098853",
      "tree": "84538f4f9fa888a11838333bb6df029181d00cd5",
      "parents": [
        "b094d2603158f9d514404941c9fad04dd9b7d42c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 25 13:47:16 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 25 13:47:16 2004 +0000"
      },
      "message": "2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * zebra.h: add MAX and MIN defines (eg for ospf6d)\n"
    },
    {
      "commit": "e6822768a281a5d46d497c0bbfe5ffd2a10c78c8",
      "tree": "c42184d3e7312a6e635a583d3beab4069a637b27",
      "parents": [
        "1a51786a70c45003813ffc60874653555a9b486a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 19 04:13:29 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 19 04:13:29 2004 +0000"
      },
      "message": "2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sockopt.c: include sockopt.h\n          rename some of the _pktinfo_ functions to _ifindex, where that is\n          their purpose.\n          (getsockopt_ipv6_pktinfo_ifindex) renamed to\n          getsockopt_ipv6_ifindex.\n          (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex\n          (setsockopt_pktinfo) update with previous and add comment re\n          AF_INET portability.\n          (setsockopt_ifindex) generic ifindex function ala\n          setsockopt_pktinfo.\n          (getsockopt_ipv4_pktinfo_ifindex) renamed to\n          getsockopt_ipv4_ifindex.\n          (getsockopt_ipv4_ifindex) rejiggling to reduce repeated\n          ifdef/elses. pktinfo case forgot to set ifindex.\n          (getsockopt_pktinfo_ifindex) renamed to\n          getsockopt_ifindex. update some calls to renamed functions.\n        * sockopt.h: Update renamed exported functions\n          Rename the CMSG_SIZE macros to IFINDEX.\n          Guard IPv4 PKTINFO in a conditional define.\n"
    },
    {
      "commit": "c0618de64ca81b9f1f2fd05e43c24f155234b451",
      "tree": "0ebc88399e56746bd72df617aed4f049dc2024f3",
      "parents": [
        "2990460691f1d674180154fd4bcee64d8f745277"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 18 21:52:58 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 18 21:52:58 2004 +0000"
      },
      "message": "2004-08-18 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * vty.c: (vty_serv_un) set unix vty socket to nonblocking\n          to prevent inadvertent blocking of daemons by use of\n          vtysh. TODO: disentangle manual paging from the buffer_write\n          path so that unix vty can use this path too and be reliable.\n"
    },
    {
      "commit": "b7a97f825768bb3e617cb115540c74b65914e628",
      "tree": "7614897d5d668291f854b5283daf424b55a12853",
      "parents": [
        "33f92320e8a6b078a5972d05c8f49487d8edf19c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "message": "(somewhat unrelated cleanups, but all are very minor)\n\n2004-07-23  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* */Makefile.am: Use ../dir/libfoo.la, rather than \"-L../dir\n\t-lfoo\", to avoid linking against installed libraries from a\n\tprevious version.\n\n\t* {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared\n\tlibrary version number to be 0.0\n\n\t* configure.ac: remove spurious , so extract.pl is chmod\u0027d +x.\n\n\t* HACKING: explain shared library versioning rules\n"
    },
    {
      "commit": "33f92320e8a6b078a5972d05c8f49487d8edf19c",
      "tree": "dda4c2355c69089593fac18314f050daa6661e31",
      "parents": [
        "5b73a671aac22a75cc90657aa4a924d199f2284b"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:14:32 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:14:32 2004 +0000"
      },
      "message": "2004-07-23  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile\n\ton NetBSD, and add comments to make it less confusing.  Change the\n\tsense of the SUNOS_5 test to make parallel structure between the\n\tvariables and the code.\n"
    },
    {
      "commit": "4f7baa0e434053c9f9a70f526be1514ea47cd274",
      "tree": "656c9850fa836fd99a2637bc126148536000ed87",
      "parents": [
        "05c447dd2e3aab0d045889845da0be5c8d974d4b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:11:07 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:11:07 2004 +0000"
      },
      "message": "2004-07-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for\n          sizeof pktinfo as appropriate, to be used when allocating msg\n          buffers. export setsockopt_pktinfo() and\n          getsockopt_pktinfo_ifindex()\n        * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably\n          set received ifindex sock option.\n          (getsockopt_pktinfo_ifindex) portably retrieve ifindex.\n          (getsockopt_cmsg_data) retrieve indicated control info from\n          message header.\n          (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.\n          (setsockopt_ipv4_pktinfo) v4 version\n          (setsockopt_pktinfo) the exported version\n          (getsockopt_ipv4_pktinfo_ifindex) v4 specific version\n          (getsockopt_pktinfo_ifindex) the exported version\n"
    },
    {
      "commit": "05c447dd2e3aab0d045889845da0be5c8d974d4b",
      "tree": "062ca42a848dc0377d7a814d8570e77bc59a2eff",
      "parents": [
        "27eebb3e5713559379ac072d5f36e26044465ab0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jul 22 19:14:27 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jul 22 19:14:27 2004 +0000"
      },
      "message": "2004-07-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sigevent.c: (quagga_signal_handler) add a global caught flag, set\n          the flags to a constant rather increment to be kinder.\n          (quagga_sigevent_process) new function, to do core of what\n          quagga_signal_timer did. dont block signals at all as sig-\u003ecaught\n          is volatile sig_atomic_t and should be safe to access from signal\n          and normal contexts. The signal blocking is unneeded paranoia, but\n          is left intact under an ifdef, should some platform require it.\n          Check global caught flag before iterating through array.\n          (quagga_signal_timer) nearly everything moved to\n          quagga_sigevent_process. Left in under ifdef, in case some\n          platform could use a regular timer check for signals.\n        * sigevent.h: quagga_sigevent_process declaration.\n        * thread.c: (thread_fetch) check for signals at beginning of\n          scheduler loop, check for signals if select returns EINTR.\n"
    },
    {
      "commit": "3a0391a9a1a6946eb58c723630f29f760f122bc9",
      "tree": "d1d5e516de05d04df0b9ed684d7b6c75c4e03141",
      "parents": [
        "59ea14c6c9c877a7b9c9cc1555e3079acd9200e9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 17 11:51:29 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 17 11:51:29 2004 +0000"
      },
      "message": "2004-07-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* if.c: (if_cmp_func) Add comment suggested by Greg Troxel.\n"
    },
    {
      "commit": "b77971317724a97b72a8566b3a54d36ef7c76a07",
      "tree": "25e17e5ec53eb9625e2f872e3053913e10177973",
      "parents": [
        "25dac85507ca3a107351a9f84173b5bcaea8a450"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jul 13 13:47:25 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jul 13 13:47:25 2004 +0000"
      },
      "message": "2004-07-13  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sigevent.c: Don\u0027t block SIGTRAP and SIGKILL.  Blocking SIGTRAP\n\tconfuses gdb, at least on NetBSD 2.0_BETA, where the block\n\tsucceeds.\n"
    },
    {
      "commit": "b9790b34c825e390c818044f6666f73beee1d373",
      "tree": "83d326652663957d7573a7ace0618b763289eacc",
      "parents": [
        "5510e83b395ccf19c07a89fee1baba958e3a580d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 14:05:47 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 14:05:47 2004 +0000"
      },
      "message": "2004-07-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * jhash.{c,h}: New files. Bob Jenkins\u0027 public domain hashing\n          function, as implemented in linux kernel by David Miller.\n"
    },
    {
      "commit": "5510e83b395ccf19c07a89fee1baba958e3a580d",
      "tree": "477f5510eb6652cb53f6fa84629ddd6cf6dbaa29",
      "parents": [
        "a3f71c5896ce1b555d11c0870e8267f67cbff68d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 14:00:01 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 14:00:01 2004 +0000"
      },
      "message": "2004-07-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Merge Kunihiro\u0027s \u0027show route-map\u0027 change and add\n          compatibility aliases for route-map continue\n"
    },
    {
      "commit": "a3f71c5896ce1b555d11c0870e8267f67cbff68d",
      "tree": "9389f700bae9f4c11530ee6ff4d7469e54a236b2",
      "parents": [
        "e3bee3b4cdc3a9b108d7b331c99705ffdb071dc4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:43:09 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:43:09 2004 +0000"
      },
      "message": "more cvsignores\n"
    },
    {
      "commit": "e3bee3b4cdc3a9b108d7b331c99705ffdb071dc4",
      "tree": "7e6d84fc6454445596f88e24a5aa0beeeccfcb17",
      "parents": [
        "b06c14f2e7cac5a2170f9d64182a99dbbc413674"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "message": "Update cvsignore\u0027s for *.lo and *.la - libtool files\n"
    },
    {
      "commit": "b06c14f2e7cac5a2170f9d64182a99dbbc413674",
      "tree": "e162fe01afcd24250a24d83f96e025eb76f7877b",
      "parents": [
        "f5ba387492ec163f1200d949a984f12ef88538ba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:24:42 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:24:42 2004 +0000"
      },
      "message": "2004-07-09 Juris Kalnins \u003cjuris@mt.lv\u003e\n\n        * if.c: (if_cmp_func) fix for interface names where name is same,\n          but one has no number, eg \"devtyp\" and \"devtyp0\".\n"
    },
    {
      "commit": "87efd646ffef693235d9d29b005a1467373c51bd",
      "tree": "85d43e323abb1de6b1ddb6e889f9d580fdb8546d",
      "parents": [
        "f2bfdee5f9db5363fcd13763eca3fda729067d57"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "message": "Add libtool support.\n\nlibzebra and libospfapiclient are now built shared, and linked shared\nwith the daemons.  This reduces the memory needed when running\nmultiple daemons; each daemon is at least 150k smaller.  Static\nlibraries are still built, and libtool should use them on platforms\nwhich don\u0027t have shared libaries.  As with autoconf, the user of a\ndistribution does not need libtool; one just needs that to build from\nCVS.\n\nlibospf.a is still a non-shared library, and still installed, not\nbecause that makese sense, but because I don\u0027t understand why it is\nthe way it is now.\n\nNote that the tree was tagged \u0027libtool-before\u0027 just before this commit.\n"
    },
    {
      "commit": "138ce75fd0254072f27ecf38994a90276b276730",
      "tree": "381589b0aa5f3bd18855ed594e4c88811a31262e",
      "parents": [
        "beebba75167b33e05b5e02a41179ad0c13a0bcd7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 21 10:35:59 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 21 10:35:59 2004 +0000"
      },
      "message": "2004-06-21 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ChangeLog: fix my last update config.h -\u003e zebra.h ;)\n        * zebra.h: Fix gcc check.\n"
    },
    {
      "commit": "320ec10a24d8dd81d0aa011dc92e07877e4e02f8",
      "tree": "867cc29d5981b58bad9392cb7eb471daeb8250a1",
      "parents": [
        "6c0f9a782a7be49de53b5ae00980990d96edbf03"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "message": "Removing code which looked at current dir for config file before attempting\nto read system one.\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": "02ff83c52592427623db0d8367ca9b3395fa321f",
      "tree": "0aa278809140486f55012a98616106fc995d91e6",
      "parents": [
        "51a8798e8d36dddfdeb6b0bfd01bf32a646e8bb1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "message": "2004-06-11 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast\n          to u_char. (ipv6_access_list_remark_cmd) ditto.\n          if.c: ditto\n        * network.c: (readn/writen) pointer arg should be type u_char.\n        * plist.c: needs to include stream.h, not declare stream functions\n          internally.\n          (various) Add static qualifier to internal functions.\n          (prefix_list_type_str) extraneous breaks in switch statement.\n          (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast\n        * stream.h: depends on plist.h and export stream_put_prefix\n        * vty.c: (vty_\u003ctelnet option build functions\u003e) should use\n          unsigned char, telnet options are 0 -\u003e 255.\n        * zclient.c: various u_char\u003c-\u003echar type cleanups.\n        * zebra.h: Having to define CMSG_* can apply to more than just\n          BSDI_NRL.\n        * ripd.c: (rip_distribute_update_all) distribute list hook\n          function pointer prototype requires struct prefix_list * arg.\n          (rip_distribute_update_all_wrapper) update to pass required arg,\n          NULL.\n"
    },
    {
      "commit": "51a8798e8d36dddfdeb6b0bfd01bf32a646e8bb1",
      "tree": "fd1f6e63fc2ee07f7312b5f2409daa6fbe15cc2d",
      "parents": [
        "ca5e516c84cc2d35b6f6cd29f8ba9e835d3b72ba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 09 10:36:05 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 09 10:36:05 2004 +0000"
      },
      "message": "2004-06-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* config.h: __attribute__ is a gcc\u0027ism\n"
    },
    {
      "commit": "d26ca6a976421b09ee6c4e5ac699075b6f549584",
      "tree": "447ea71cea6be30ec26194069e7d61acd211ba8a",
      "parents": [
        "074a917aeb16061440d932c1f3ffccd7afc475a1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "message": "CVS ignore Linux NFS silly-delete .nfs* files\n"
    },
    {
      "commit": "5228ad27e2f3abe0ebb69f66607aedc048b94a13",
      "tree": "a65817a03150dbfeb56a1eaceab526f31be1cc1d",
      "parents": [
        "c2bfbcc38428b53e856617e1da8bbe9f8d2ee2fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "message": "2004-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * type mismatch fixes\n"
    },
    {
      "commit": "6708fa3c3e6aef369be13f3915698f407107cae2",
      "tree": "32aa937b0761573d3dfcfdda8a9929f9794403cb",
      "parents": [
        "3e31cded7fd9b6a1bac06de2ee2e875a5c40074c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 18:46:54 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 18:46:54 2004 +0000"
      },
      "message": "Start of new ospf6d merge from Zebra.\n"
    },
    {
      "commit": "0a5893596774554f039222c481d235de0f35d99e",
      "tree": "065ba74422d21193637d6e3f8b52c0eaa09a13bf",
      "parents": [
        "225282994d74f767058886475d80fee95d450eae"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "message": "2004-05-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n       * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes\n         (bgp_interface_address_delete) ditto.\n         (bgp_zebra_announce) ditto.\n         (bgp_zebra_withdraw) ditto.\n       * isis_zebra.c: Sync with zclient changes.\n       * zclient.c (zapi_ipv4_route) Follow Sowmini\u0027s lead and describe\n         message format.\n       * ospf6_zebra.c: Sync to zclient changes\n       * ospf_zebra.c: Sync with lib/zclient changes\n       * rip_zebra.c: sync with zclient changes.\n       * rip_interface.c: ditto.\n       * ripng_{interface,zebra}.c: sync with zclient changes\n\n\n2004-05-08 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n       * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route\n         (zapi_ipv4_delete) ditto.\n         (zapi_ipv4_route) add/delete a route by way of cmd arg.\n         (zapi_ipv6_add) collapsed into zapi_ipv6_route.\n         (zapi_ipv6_delete) ditto.\n         (zapi_ipv6_route) add/delete a route by way of cmd arg.\n         (zebra_interface_address_delete_read) collapsed into\n         zebra_interface_address_read.\n         (zebra_interface_address_delete_read) ditto.\n         (zebra_interface_address_read) read address add/delete messages\n         by way of type argument. Describe command message format.\n         (zebra_interface_add_read) Unconditionally read new ifmtu6 field.\n         Describe command message format.\n         (zebra_interface_state_read) Unconditionally read new ifmtu6 field.\n         (zclient_redistribute_set) Collapsed into zclient_redistribute\n         (zclient_redistribute_unset) ditto\n         (zclient_redistribute) set/unset redistribution.\n         (zclient_redistribute_default_set) Collapsed into\n         zclient_redistribute_default.\n         (zclient_redistribute_default_unset) ditto.\n         (zclient_redistribute_default) Redistribute default set/unset.\n       * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add\n         zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add\n         zclient_redistribute. Ditto for\n         zclient_redistribute_default_{set/unset}.\n"
    },
    {
      "commit": "225282994d74f767058886475d80fee95d450eae",
      "tree": "e32988fa60c177a1880357f9d0df4acd004f089f",
      "parents": [
        "4a7aac1bc609ee147492b228af9222f526e2ca2f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 05:10:38 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 05:10:38 2004 +0000"
      },
      "message": "2004-05-08 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * command.c: (sockunion_getsockname) use socklen_t for len.\n          (sockunion_getpeername) ditto.\n"
    },
    {
      "commit": "4a7aac1bc609ee147492b228af9222f526e2ca2f",
      "tree": "4f764b16562766422bca65ff2f6668a51757b9ec",
      "parents": [
        "5bd4189c17bad7a9e115ef573c0324c4b969a641"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 05:00:31 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 05:00:31 2004 +0000"
      },
      "message": "2004-05-08 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * if.h: Add mtu6 field to struct interface, IPv6 MTU may differ\n          from IPv4, and Solaris treats the MTU\u0027s differently.\n          Add connected_add_by_prefix, for use by later patch.\n        * if.c: (connected_add_by_prefix) Add prefix to connected list.\n          (if_flag_dump) Solaris: Dump IFF_IPv4/6 flag\n          (if_dump) Dump mtu6 flag, for HAVE_IPV6.\n"
    },
    {
      "commit": "31fcdd3fef4df0496963f01416d8f4e41194569f",
      "tree": "7ebc860d9bae2bab52d3ffdb588328cb1d9d1108",
      "parents": [
        "8585d4e5e2b33f71e347db451df895cfaefdc3a4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 21 11:00:43 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 21 11:00:43 2004 +0000"
      },
      "message": "2004-04-21 Boris Kovalenko \u003cboris@tagnet.ru\u003e\n\n        * daemon.c: (daemon) fix check for error return from setsid\n"
    },
    {
      "commit": "5e4fa1646cafe9e6f8dd78501bea0d2fe1eafdb4",
      "tree": "6f2aa13346f91f0924ada9cb9696589264a90552",
      "parents": [
        "253e9336982599957514ad87610e8cd58822fc7a"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "message": "2004-03-16 David Young \u003cdyoung@pobox.com\u003e\n\n\t* (many) reference \u003clib/version.h\u003e rather than \"version.h\",\n\tbecause version.h is a generated file and not present in the\n\tsource tree when using objdir builds.\n\n(committed by gdt)\nworks fine with normal builds; didn\u0027t try objdir\n"
    },
    {
      "commit": "fa2b17e39499a77f41a719035a588b7fb63cec63",
      "tree": "3356703917aaa8359e0106ae3c2340ee6eea0e1f",
      "parents": [
        "caa6f8ac7d07f8cd3269255e6dce6d248f74af62"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "message": "Many warning fixes from PC Drew ([quagga-dev 940]) and removing using PAGER\nfrom vtysh ([quagga-dev 932]).\n"
    },
    {
      "commit": "5de5bbf107f9eacb8d8265f8c0b925b2aed21878",
      "tree": "4f9c389e0f16fbbfc58b7ff2ff29aab30f8a93c6",
      "parents": [
        "6a8da8521d35165e9a859c84605f864feb9132d7"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Feb 13 17:44:50 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Feb 13 17:44:50 2004 +0000"
      },
      "message": "add some /* XXX assert() */ for questionable assumptions (no code\nchange - just notes to others).\n"
    },
    {
      "commit": "2d75d05218b76230bbd608cab8d08a5f47d77056",
      "tree": "7087570a7dbb8b650349b98a8f1963dfdcedceb1",
      "parents": [
        "9a76e2ddb6c4dc303ce7ed937c0cfa9430c3ed27"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * tests/test-sig.c: New file, regression test for sigevents.\n        * lib/Makefile.am: add sigevent.{c,h}\n        * (isis|rip|ripng|ospf|ospf6|bgp)d/\\1_main.c: modify for sigevents.\n        * zebra/main.c: ditto.\n"
    },
    {
      "commit": "c49b30692d7a2379264dfd2d45c2d2ab16e8822c",
      "tree": "a379c072fdeea6e7ec4dca1970f5409bd63a2cfa",
      "parents": [
        "13b8baadb044a4ddd447cb7139a9d59fbb7983a5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:23:37 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:23:37 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sigevent.{c,h}: New files, implement event handled signals.\n          see signal_init() in sigevent.h.\n"
    },
    {
      "commit": "9d24baaa3d4a6688403b34708a1f4696c7d12c5b",
      "tree": "8b4cb6873b4c64c31a1bce6defd032a5201d9f2b",
      "parents": [
        "a27abaa5c2cc8309ecf15b977b8a8876802cab31"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jan 13 14:55:40 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jan 13 14:55:40 2004 +0000"
      },
      "message": "Explain the dual use of struct prefix for CIDR prefixes and\naddress/netmask pairs, and clarify the two comparison functions.\n"
    },
    {
      "commit": "c32e1b5788b996f6c5a9521c1fc79f5640e10d99",
      "tree": "ad549cbfd8b73ff6852deed8c2a1946c814f9f57",
      "parents": [
        "9e867fe663c4eb43c36f35067c0dd092e8c83c14"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 09:06:51 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 09:06:51 2003 +0000"
      },
      "message": "Add comments about isisd integration.\n"
    },
    {
      "commit": "9e867fe663c4eb43c36f35067c0dd092e8c83c14",
      "tree": "f29461b6a2dc8c38037dc0cf91e70392f9ed4ab2",
      "parents": [
        "eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "message": "Merge isisd into the Quagga\u0027s framework:\n  - add privs support\n  - use misc quagga\u0027s definitions\n  - make it compile\"able\"\n  - fix segfault cases related to hostname()\n  - add debug isis xxx command\n\nThis patch has been approved by Paul Jakma.\n"
    },
    {
      "commit": "3dbf99698a3be2e920871c3127ea089e061a127c",
      "tree": "8652a4b960116adc4cade4652729474ced8e5ba9",
      "parents": [
        "aa593d5e2638566ead1e69381e60639550991ff2"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:18:18 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:18:18 2003 +0000"
      },
      "message": "Reorder free(f); unlink(f); to unlink before freeing.\n"
    },
    {
      "commit": "aa593d5e2638566ead1e69381e60639550991ff2",
      "tree": "c865f642c1029fa47b8fc6cc86302468b9b2aef4",
      "parents": [
        "47ce02a8f12134a6ba515fbf1d2b9276e39d4c06"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "message": "2003-12-22 Christian Hammers \u003cch@lathspell.de\u003e\n\n        * configure.ac (and everywhere a regular file is opened for\n          writing): use file permissions from configure rather than\n          compiled-in umask.\n"
    },
    {
      "commit": "47ce02a8f12134a6ba515fbf1d2b9276e39d4c06",
      "tree": "1fb92612024ca80abdfb9a99af42866340a4dc05",
      "parents": [
        "76398034067abd80e174fea9d0d6c619de7cc679"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Dec 22 16:49:15 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Dec 22 16:49:15 2003 +0000"
      },
      "message": "Revert my \"microfix\". It was caused by misreading code. Gilad is right as\nalways.\n"
    },
    {
      "commit": "76398034067abd80e174fea9d0d6c619de7cc679",
      "tree": "da9da898e4449f5ee7529193bb468cac4a6354e3",
      "parents": [
        "a7a9990f48d7e45463b0c50986805973956fdb4c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:32:15 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:32:15 2003 +0000"
      },
      "message": "note that order of \u003d items is undefined, probably\n"
    },
    {
      "commit": "a7a9990f48d7e45463b0c50986805973956fdb4c",
      "tree": "57a40b0c7af971c3fc7256e452b90f32897470de",
      "parents": [
        "297602162c89b10f6ee41c21e6302bcc51199a3d"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:07:52 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:07:52 2003 +0000"
      },
      "message": "comments about struct list\n"
    },
    {
      "commit": "297602162c89b10f6ee41c21e6302bcc51199a3d",
      "tree": "57bc991e38997884ee3cb8fe4f2e4a0884a9b7b0",
      "parents": [
        "1f431d2d989b3a0a43b8ed0c2681619812e4259c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 15:56:00 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 15:56:00 2003 +0000"
      },
      "message": "add comments clarifying the operation of listnode_add_sort\n"
    },
    {
      "commit": "e90fbabdc6a8db7a6bbf9fa22b83da1a03023d32",
      "tree": "a961d314a2a6233b0b6b0562f826005d2f9423ad",
      "parents": [
        "d9fd04c24bb6e6fc9aaca6daf5c062beced2605f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Dec 21 09:51:42 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Dec 21 09:51:42 2003 +0000"
      },
      "message": "lib/if.c part from [quagga-dev 552] and lib/inklist.c part from [quagga-dev\n555]. Okayed by Paul.\n"
    },
    {
      "commit": "af273652d500b7d3ed4de0da856634a3a0638e67",
      "tree": "b9a70e539dd2aa52b152cc0144c13c4f5eff8ada",
      "parents": [
        "239aecc01cd8ef389b3684cff6ba372da51826ff"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 08 18:12:34 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 08 18:12:34 2003 +0000"
      },
      "message": "{lib,ospfd,ospfapi}/Makefile.am:\n\nUse pkginclude_HEADERS rather than include_HEADERS to place includes\nin ${prefix}/include/quaggainstead of polluting ${prefix}/include.\n"
    },
    {
      "commit": "e4eaf1d509923fa6a53acb7f67732b3cfed0c8d2",
      "tree": "2faa9d9e1c1566768b057c4fbb89745fdf656d2a",
      "parents": [
        "3bf1c917d10b3429afc139ad47252c3aa0dcd3a8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Oct 30 21:58:06 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Oct 30 21:58:06 2003 +0000"
      },
      "message": "2003-10-30 sowmini.varadhan@sun.com\n\n        * lib/pid_output.c: (pid_output_lock) undo paulj\u0027s mindless edit.\n"
    },
    {
      "commit": "3bf1c917d10b3429afc139ad47252c3aa0dcd3a8",
      "tree": "32b8b28cc0d37349bea4673ce8b2b64987d31e49",
      "parents": [
        "6baeb98892ee1c574af5cd3896a3a6d65cef0117"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 29 06:30:19 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 29 06:30:19 2003 +0000"
      },
      "message": "2003-10-29 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/routemap.c: (route_map_apply_index) renamed to\n          route_map_apply_match.\n          (route_map_apply_match) Take rule list as argument rather than\n          index. concentrate solely on match logic.\n          (route_map_apply) Properly implement the route map statement\n          logic, according to the table, especially the on-match exit\n          policy.\n"
    },
    {
      "commit": "948cf55c4447257960fda0d89fb45e93644393b1",
      "tree": "87360f9330b45da6aa9b4d2d168cb787a26d391d",
      "parents": [
        "3738d8cab744b1e11148d23ce16db5891b5e747e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 27 22:12:02 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 27 22:12:02 2003 +0000"
      },
      "message": "2003-10-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/if.{ch}: remove ifc_pointtopoint() - left over from the\n\t  reverted RFC3021 patch.\n"
    },
    {
      "commit": "e937253b72b9fa526a56866bd4b827bf05bfb80c",
      "tree": "ca04ee467b851042cd1e1f1462d02048580edb5a",
      "parents": [
        "bb46e94fcccd9ede513bef8d8e22fe5fafdfbd10"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 26 21:36:07 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 26 21:36:07 2003 +0000"
      },
      "message": "2003-10-26 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/vty.c: (vty_read) additional change i had applied to Jay\u0027s\n\t  telnet sub-option processing crash fix was incorrect, revert.\n"
    },
    {
      "commit": "04bd484bf272dd580349c832f84cf5ffa27003bb",
      "tree": "9f9c50fda664e0ce62d43af14ec7ec546f801547",
      "parents": [
        "e92fbaf27ea028d4def1246b7fadb2096bfa4d8d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:24:39 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:24:39 2003 +0000"
      },
      "message": "2003-10-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * configure.ac: Check for fcntl()\n        * {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via\n          regular automake means, not magic install incantations, see\n          bug #38.\n        * lib/Makefile.am: install the headers, needed to link libzebra.a\n          (and hence libospf.a, OSPF-API, etc.)\n"
    },
    {
      "commit": "e92fbaf27ea028d4def1246b7fadb2096bfa4d8d",
      "tree": "82a4635afd48faa6de8a6203bd4af28e404c518c",
      "parents": [
        "b1809beaddff93c1bd01b73f937032be156a9dc7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:10:16 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:10:16 2003 +0000"
      },
      "message": "2003-10-24 sowmini.varadhan@sun.com\n\n        * lib/pid_output.c: (pid_output) call pid_output_lock if we have\n          fcntl().\n          (pid_output_lock) grab exclusive write lock on pid file, rather\n\t  than rely on (fragile) exclusive create.\n"
    },
    {
      "commit": "a58c25b65d9816a549278f1a74a9121500b14b20",
      "tree": "ab838eaab06046b446ff1ea7d8b9ff9ef678af61",
      "parents": [
        "ccc9235e602ebd578fbeba3c98499b3933069d96"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:50:45 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:50:45 2003 +0000"
      },
      "message": "2003-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/zebra.h: include limits.h if its there, its a portable header\n          and useful and not just solaris specific. net/route.h is also\n          useful.\n"
    },
    {
      "commit": "ccc9235e602ebd578fbeba3c98499b3933069d96",
      "tree": "c03f38a5d99e63212a9addf54b35e04e4de34015",
      "parents": [
        "d1724b6555510c22d2df55a9245fe4e6f1b08922"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:49:38 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:49:38 2003 +0000"
      },
      "message": "2003-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/vty.c: cleanup getcwd again. just pass the buffer in to getcwd.\n"
    },
    {
      "commit": "d1724b6555510c22d2df55a9245fe4e6f1b08922",
      "tree": "3c72ac425f323f94fe57f8310011fc1f8c9273b5",
      "parents": [
        "dc7a2bf1c831f6bcea5945f7fe2eb2ba111e4224"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:41:52 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:41:52 2003 +0000"
      },
      "message": "2003-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/regex.c: bzero -\u003e memset\n        * zebra/ioctl.c: ditto. bzero is not portable.\n"
    },
    {
      "commit": "5b8c1b0d6af736b0633309b4b3490298b9a20742",
      "tree": "9ffdf1bfbb4d4ecc5d3a26e265fbc98c9869ed96",
      "parents": [
        "79ad27982af1440a841298b684d94732ae07d003"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 15 23:08:55 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 15 23:08:55 2003 +0000"
      },
      "message": "2003-10-15 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n        * lib/vty.c: (vty_telnet_option) Remote DoS exists if a telnet\n          end-sub-negotation is sent when no sub-negotation data has been\n          sent. Return immediately if no sub-negotation is in progress.\n          (vty_read) do not attempt to process options if no sub-negotation\n          is in progress.\n"
    },
    {
      "commit": "79ad27982af1440a841298b684d94732ae07d003",
      "tree": "38396c6632528ac715d098fc15fb7c9496be0ea6",
      "parents": [
        "affe1d9c7f333e0d0373505c4a57994ab1a03822"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 15 22:09:28 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 15 22:09:28 2003 +0000"
      },
      "message": "2003-10-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/vty.c: (vty_save_cwd) dont crash if getcwd fails. try fallback\n          to SYSCONFDIR. Allocate cwd from the stack rather than relying on\n          (non-portable) getcwd() allocation (which we didnt seem to be\n\t  freeing).\n"
    },
    {
      "commit": "3b424979f54c6b128d1ee8a7c33d072d321f2f0c",
      "tree": "c3c684d2e1576610d3a0cedefa3bab23610c8d61",
      "parents": [
        "7ddf1d6eaf5a339d13661469212ac33f77e808fc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "message": "2003-10-13 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n\t* lib/zebra.h: define UINT32_MAX for those systems which do not\n\t  provide it.\n\t* bgp_attr.h: define BGP_MED_MAX.\n\t* bgp_route.c: update defines/constants to BGP_MED_MAX.\n\t* bgp_routemap.c: ditto. clean up route_match_metric_compile\n\t  slightly to avoid unneccesary XMALLOC.\n"
    },
    {
      "commit": "31a476c7e9014aa81dc0d50b4100431ab111bf3f",
      "tree": "3f7fd8ed9010917cb3e93389d4e1d5a9649c5741",
      "parents": [
        "f3e05cda2a35abe1bcd9e3ad33083f4c78c0235a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 29 19:54:53 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 29 19:54:53 2003 +0000"
      },
      "message": "2003-09-29 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra/connected.c: revert the \u0027generic PtP\u0027 patch as it causes\n\tfar too many problems. People who use FreeSWAN should investigate\n\tnative linux ipsec.\n\t* zebra/rt_netlink.c: ditto\n\t* lib/if.c: ditto\n\t* ripd/ripd.h: ditto\n\t* ripd/ripd.c: ditto\n\t* ripd/rip_interface.c: ditto\n\t* ospfd/ospfd.c: ditto\n\t* ospfd/ospf_snmp.c: ditto\n\t* bgpd/bgp_nexthop.c: ditto\n"
    },
    {
      "commit": "fa1253d0c95416ab0361e6945275ef8194fd7ddd",
      "tree": "c0e9455701831fcc436f3b579eca956e07c6686a",
      "parents": [
        "3e95a0741feb6f8b103577d0019a5db562d8315d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Sep 24 05:09:26 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Sep 24 05:09:26 2003 +0000"
      },
      "message": "2003-09-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/version.h: moved to version.h.in\n        * lib/version.h.in: New file, from version.h. Change hardcoded\n          package name and version to use the autoconf defined substition\n          variables.\n        * configure.ac: Fix up AC/AM_INIT* to new style. Remove the sed\u0027ing\n          through lib/version.h for VERSION. Add lib/version.h to the\n          AC_OUTPUT list. Update the text output of quagga version at end\n          of configure run to use PACKAGE_VERSION.\n        * doc/.cvsignore: ignore quagga.pdf\n        * doc/.cvsignore: ignore version.h, its now autogenerated.\n"
    },
    {
      "commit": "729606fea247f482231d78c5e70ae66db98a2678",
      "tree": "6ce91fe54890d3ae2dd219c2c05f08450c17de60",
      "parents": [
        "90578521e5f332e65e97f7612485d04ace5c0ba5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:47:14 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:47:14 2003 +0000"
      },
      "message": "2003-09-24 sowmini.varadhan@sun.com\n\n\t* lib/linklist.c: (if_cmp_func) Fix handling of case where\n\t  list-\u003ecmp returns 0.\n"
    },
    {
      "commit": "90578521e5f332e65e97f7612485d04ace5c0ba5",
      "tree": "bafe073096f587d8813aed705a5fac3e3eac6232",
      "parents": [
        "878ef2e7800e5e173b6c6b0875494f02fd3b93be"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:46:01 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:46:01 2003 +0000"
      },
      "message": "2003-09-24 sowmini.varadhan@sun.com\n\n\t* lib/if.c: (if_cmp_func) fix infinite loop if\n\t  ifp1-\u003ename \u003d\u003d ifp2-\u003ename\n"
    },
    {
      "commit": "fd6ff2fc6b221f2c2c30ef0d29f5e938c1737577",
      "tree": "fa1707523ae5dfd8de02b24500af58dbf82d8a79",
      "parents": [
        "c2f3a4cc771da731f5aedc455e6f6a543acd6e38"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 06:17:18 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 06:17:18 2003 +0000"
      },
      "message": "2003-08-27 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n\t* lib/Makefile.am: Do not use a lib (libcap) as a dependency\n\t* zebra/Makefile.am: Link in libcap\n"
    },
    {
      "commit": "d02d5a6b7bc25abc8cf16e4959f89e84116b7ea5",
      "tree": "da0a8e067bc8d5530d74e5a3193e8feb36b50f4c",
      "parents": [
        "54aba54c10d7cc98023a49e3a8a3509cbd358867"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 25 16:53:54 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 25 16:53:54 2003 +0000"
      },
      "message": "2003-08-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* configure.ac: bump version-\u003e 0.96.2\n\t* lib/version.h: bump version, ditto.\n"
    },
    {
      "commit": "54aba54c10d7cc98023a49e3a8a3509cbd358867",
      "tree": "587880d48479ea7f4872f349c425e7582222d641",
      "parents": [
        "048ba1d0a99f4f25c3b5909273119dbc006b50ff"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 21 20:28:24 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 21 20:28:24 2003 +0000"
      },
      "message": "2003-08-20  Yasuhiro Ohara \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* command.c: Fix \u003ccr\u003e display problem for command line\n\t  description.\n"
    },
    {
      "commit": "5cc085ff0f07d6da06498d10a4e5f2dc23b9c4aa",
      "tree": "fd8495a0c25b45ad2d6b3d2dbb2b99aa4e04111a",
      "parents": [
        "d81fadfd889aa7bc657fa19752344a585e8c274a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:33:23 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:33:23 2003 +0000"
      },
      "message": "2003-08-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/version.h: bump to 0.96.1.\n"
    },
    {
      "commit": "42053f4e3a0bb8d4e2df7c9d626629cc14dfc285",
      "tree": "68e2d21637f3e61b7ab3bf6cf4cebe69063fdaaf",
      "parents": [
        "73aafda016906e049013d1bade9bbc173204d5e0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 02:54:44 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 02:54:44 2003 +0000"
      },
      "message": "2003-08-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/version.h: Add QUAGGA_PROGNAME\n\t* lib/smux.c: hardcoded zebra/quagga -\u003e QUAGGA_PROGNAME\n\t* lib/command.c: ditto\n\t* vtysh/vtysh_user.c: ditto\n"
    },
    {
      "commit": "73aafda016906e049013d1bade9bbc173204d5e0",
      "tree": "4671c746b5454ac97877c60d69dc543f57ebf14d",
      "parents": [
        "848973c71e75424d07c2cd52ba991aae1b9df12a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 02:46:09 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 02:46:09 2003 +0000"
      },
      "message": "2003-08-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/smux.c: change progname to quagga.\n"
    },
    {
      "commit": "e8f2984c00d406781eff42db7afcdae5d5a6a366",
      "tree": "f8b4da099e7f06c25a6b27c873c9897b935b91a2",
      "parents": [
        "5f5eab7833eef6aa0c95ee991bbdb65cfcc90011"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "message": "2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Makefile.am: redhat/zebra.* -\u003e redhat/quagga.*\n        * configure.ac: Bump autoconf prerequisite to 2.53.\n          dist name zebra -\u003e quagga.\n          general Zebra -\u003e Quagga where appropriate (ie not zebra daemon).\n          User and group zebra-\u003equagga.\n          s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/.\n        * bgpd/bgp_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/command.c: Update banners and s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/print_version.c: ditto\n        * lib/version.h: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/ and bump version.\n          Change ZEBRA_URL.\n        * lib/smux.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/vty.h: Change Zebra.conf to Quagga.conf (integrated file)\n        * ospf6d/ospf6{,_main}.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * ospfd/ospf_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n"
    },
    {
      "commit": "071fcedb308f6b868b613453a0f78d12566f57a5",
      "tree": "3affcb5e71fb4b827ec33687be826f1d0d6a98e5",
      "parents": [
        "ac41b2a2d40356468edc84becc6d5800d119aef6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 05:40:28 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 05:40:28 2003 +0000"
      },
      "message": "2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/linkhist.h: The LISTNODE_{ADD,DEL} macros (not used anywhere)\n\t  do not maintain the list count - fix.\n"
    },
    {
      "commit": "106d2fd572c18bebe3dc44031c6d5e56e7b9030f",
      "tree": "df226870be1178b347947aecbe7d468022b47a91",
      "parents": [
        "12ab19f1863e80134353244967a87805b12fe722"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Aug 01 00:24:13 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Aug 01 00:24:13 2003 +0000"
      },
      "message": "2003-08-01 Cougar \u003ccougar@random.ee\u003e\n\n\t* lib/if.c: (if_cmp_func) new function, compare interface names in\n\talphabetical order.\n\t(if_create) Take name as argument and add interface in sorted order.\n\t(if_get_by_name),(interface_cmd) fixup calls to if_create - see\n\tabove.\n\t(if_init) register list comparison function.\n\t* lib/if.h: Add comparison function, modify if_create prototype.\n\t* lib/zclient.c: Modify call to if_create.\n\t* ospfd/ospf_interface.c: (ospf_vl_new) modify call to if_create.\n\tchange sprintf to snprintf.\n\t* zebra/kernel_socket.c: (ifm_read) modify call to if_create.\n"
    },
    {
      "commit": "12ab19f1863e80134353244967a87805b12fe722",
      "tree": "ca24d6470345db13366a95fe3ee48d4f97f50047",
      "parents": [
        "828eb7fb46a61ab7bc5fdf393dc8c5b65fd1ec24"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 26 06:14:55 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 26 06:14:55 2003 +0000"
      },
      "message": "2003-07-26 Paul Jakma \u003cpaul at dishone.st\u003e\n\n\t* lib/command.c: Add config_log_syslog_facility_cmd, to set\n          syslog facility. This was a commit to zebra.org on May 20,\n          merge in to zebra-pj.\n"
    },
    {
      "commit": "828eb7fb46a61ab7bc5fdf393dc8c5b65fd1ec24",
      "tree": "6d1753c204fdcd349e28e5a42a2725af1139bf3d",
      "parents": [
        "736d3441e267c76056d6fcc2f59cd09a90f3af21"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 26 06:05:18 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 26 06:05:18 2003 +0000"
      },
      "message": "2003-07-26 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/command.c: Add config_log_syslog_facility_cmd, to set\n          syslog facility. This was a commit to zebra.org on May 20,\n          merge in to zebra-pj.\n"
    },
    {
      "commit": "7021c425a9f5bd9f62b934124becbaadd961cac0",
      "tree": "cf386f6923eac9f1c665400d0557448c4f5a89e0",
      "parents": [
        "8fc0f64b143ed2155567f5c9f0faad756252146a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 15 12:52:22 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 15 12:52:22 2003 +0000"
      },
      "message": "2003-07-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/version.h: add ZEBRA_URL (unused for now)\n        * lib/vty.c: CMD_ERR_NOTHING_TODO when reading conf file should not\n          be fatal. slight reformating.\n        * ospfd/ospf_zebra.c: ignore reject/blackhole routes if zebra sends\n          these type of routes. probably should be a new type of route to\n          allow daemons to more easily choose whether to redistribute them\n          - rathen than just a flag (eg for reject/blackhole).\n          reorder the is_prefix_default test for ZEBRA_IPV4_ROUTE_DELETE to\n          avoid the inverted test - slightly more readable.\n        * redhat/zebra.spec.in: Add ospfapi port to services file, if\n          with_ospfapi.\n        * zebra/rib.h: Change nexthop types to an enum.\n        * zebra/rt_netlink.c: run it through indent -nut.\n          Add nexthop_types_desc[] descriptive array for nexthop types.\n          (netlink_route_multipath) debug statements indicate which branch\n          they are in and print out nexthop type.\n        * zebra/zebra_rib.c: slight reformatting.\n        * zebra/zebra_vty.c: Pass ZEBRA_FLAG_BLACKHOLE flag to\n          static_add_ipv4() if Null0 route is configured. print out Null0 if\n          STATIC_IPV4_BLACKHOLE route, and ignore flags (shouldnt be\n          possible to set flags from vty) for config and show route.\n"
    },
    {
      "commit": "22e0a9e6c7bd7775da6bfb00d9a4114643cf9369",
      "tree": "354c3f19e19fc23059f94334a52eea9075d5bdf5",
      "parents": [
        "53db0feeb80e2003c3ed94bc05d05d46645f3e95"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 11 17:55:46 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 11 17:55:46 2003 +0000"
      },
      "message": "2003-07-11 Vsevolod Sipakov \u003czebra@vs.megalink.ru\u003e\n\n\t* lib/command.c: Add missing HAVE_IPV6 defines.\n          see bug id #23: http://bugzilla.dishone.st/show_bug.cgi?id\u003d23\n"
    },
    {
      "commit": "9bcdb638923e3254b64744d02ceab62b8f2941a1",
      "tree": "2262989f3d4105cd0b539ece52628666ff3b580c",
      "parents": [
        "0c14ad88aab5df610acfe035385a7323e1683035"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 08 08:09:45 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 08 08:09:45 2003 +0000"
      },
      "message": "2003-07-8 Chris Andrews \u003cchris@nodnol.org\u003e\n\n\t* zebra/kernel_socket.c: Update for new zebrad global struct\n\t* zebra/ipforward_solaris.c: Add missing privs.h include. Uncomment\n          /dev/ip define.\n\t* lib/zebra.h: Add typedefs for SunOS.\n"
    },
    {
      "commit": "dd488a78add05f10f58f4096dca622c6b5f1f0c9",
      "tree": "22c986ccc07a5378e5b99fcdf32cc953c841b8d8",
      "parents": [
        "3db0a77852cc0de1385f7046355321229a567924"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 19 01:21:07 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jun 19 01:21:07 2003 +0000"
      },
      "message": "2003-06-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Fix lib/smux.c\u0027s reliance on daemons exporting struct\n          thread_master *master.\n"
    },
    {
      "commit": "b21b19c5785487f2ff4a6ce38f45c2e6c35f4363",
      "tree": "c79f90ce7bd798b3f1391010153d9fdf7c7418f0",
      "parents": [
        "0e4f190ebf5a26e4b66fb49cd74ae0ff0c7e0863"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 15 01:28:29 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 15 01:28:29 2003 +0000"
      },
      "message": "2003-06-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/vty.{c,h}: Remove vty layer depending on a \u0027master\u0027 global,\n\t  pass the thread master in explicitly to vty_init. Sort out some\n\t  header dependency problems with lib/command.h\n\t* zebra/: Move globals to struct zebrad. Update vty_init().\n\t* (.*)/\\1_main.c: update call to vty_init().\n"
    },
    {
      "commit": "58a9d81c687e3722a5dbd0bcf03aaf009687d5fa",
      "tree": "48c3e642c81d5573c0b98178b78e5ffad9b8a4c6",
      "parents": [
        "847375b9ea6facadba6517d50bfb9ade4bf65242"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 11 05:12:40 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 11 05:12:40 2003 +0000"
      },
      "message": "2003-06-11 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/privs.h (zprivs_init): do not use zlog() as it depends on\n\t  vty having been initialised (zlog calls vty_log). print to stderr\n\t  directly instead.\n"
    },
    {
      "commit": "592c8148981d196a7bda2f1b85a63943fd0cfdf2",
      "tree": "273fd4151921ffbb91cc42535083ff7e1bf04bdb",
      "parents": [
        "bf9392c6e932080156e70c0436977fd5dbcdb0cd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 06 23:24:55 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 06 23:24:55 2003 +0000"
      },
      "message": "2003-06-07 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Revert Cougar\u0027s sort interface names patch, causes problems with\n\tenabling of interfaces for OSPF in ospfd.\n"
    },
    {
      "commit": "a939514c59fe1a56a820e82bc59d82c721076c03",
      "tree": "85a2d3d1d3e0a4f35d0865778c7522b8569b40f8",
      "parents": [
        "41908818b8f446befc3654fa5bbc98c6c0af92a3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jun 05 17:50:01 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jun 05 17:50:01 2003 +0000"
      },
      "message": "Patch from Cougar - sort iflist by name.\n"
    },
    {
      "commit": "ba3a0bc5fa05691b211340bef69c5c7a3659d412",
      "tree": "af7b0b8ca5ba7f6c39b96be1ea180135a9159e64",
      "parents": [
        "edd7c245d3a77012abf801da00d5664ebaa5f749"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "message": "Paul forgot probably to commit privs.[c|h] changes. Had to reorder includes\nin zebra.h to make it compile in debian.\n"
    },
    {
      "commit": "edd7c245d3a77012abf801da00d5664ebaa5f749",
      "tree": "d4fada229d7980fb751f28c9a979aa88de1a0af0",
      "parents": [
        "a159ed935b580ed99111a185734ddd9c973e7691"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "message": "2003-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Merge of zebra privileges\n"
    },
    {
      "commit": "fb2d1502bb0893f2aaccb49fb39521974078d96a",
      "tree": "0d3059d875d2be20913eaceaed12c8c09ec2b481",
      "parents": [
        "97e34b88b39abdef4ba0581574d315ef7ddb1a86"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 09:40:54 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 09:40:54 2003 +0000"
      },
      "message": "Paul Jakma:\n\nlib/debug.{c,h}: glibc backtrace printing function (from the glibc info page)\nconfigure.ac: check for glibc backtrace and set define\nlib/zebra.h: glibc backtrace support\n"
    },
    {
      "commit": "9bca8ebc4fcc369ad17b9a8caf8b14e62ad87e4a",
      "tree": "68d520ef0c07c4f1413eda2935efb6b7e64c29fe",
      "parents": [
        "0b24b4c759a6fb77c4b6043891b81574fbb229dc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 29 17:18:47 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 29 17:18:47 2003 +0000"
      },
      "message": "lib/table.c: Fix the SET_LINK macro. (not that its of any worth)\n"
    },
    {
      "commit": "595db7f16506d2c82a3478e9f8dab00c8733d386",
      "tree": "240d477dd4b5262ba78cc50fda4b81de09e2c91c",
      "parents": [
        "726f9b2bbdd5a607f7b0a10a64547739b807e361"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 25 21:35:06 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 25 21:35:06 2003 +0000"
      },
      "message": "Add back support for null0 interface blackhole routes.\n"
    },
    {
      "commit": "726f9b2bbdd5a607f7b0a10a64547739b807e361",
      "tree": "9c46a6ce71cf4ea96553a85a231e38b462b3dee0",
      "parents": [
        "71c0fb50fe75928f8fbe1bbff1995d9d91b3702b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 21:04:54 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 21:04:54 2003 +0000"
      },
      "message": "Last fixes from 6Wind patch.\n"
    },
    {
      "commit": "81dfcaa2e27d53f4eb61c549e03065dcb1b8eec3",
      "tree": "2aed449138a4833fe343052cdfa505be74332cb4",
      "parents": [
        "15291357d130b804dcdcfd81bdb1b86a84567fd0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 19:21:25 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 19:21:25 2003 +0000"
      },
      "message": "Route (reject|blackhole) support from 6Wind patch.\n"
    },
    {
      "commit": "a94434b69197e074569d7579126074e9cb7212a5",
      "tree": "b63c34ee20e8e6b57796ee591d4569407140047d",
      "parents": [
        "dd55f9eb73347cb2bb7f8dc0f8108b21a733c9b4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 17:10:12 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 17:10:12 2003 +0000"
      },
      "message": "Ripngd part of 6Wind patch.\n"
    },
    {
      "commit": "4f84947985d5a8f43f6f694055333af1e897de0e",
      "tree": "a27dd6e338687e6da837d8a7ac27f46ee0c35bcc",
      "parents": [
        "16705130a1c842f7de252779514e4e7f92d967e2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 15:13:49 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 15:13:49 2003 +0000"
      },
      "message": "RIP has now \"route-map x [in|out] \u003cinterface\u003e\" as well.\n"
    }
  ],
  "next": "0750d21fcfb034e47f781b09d984bfeec62b56a4"
}
