)]}'
{
  "log": [
    {
      "commit": "a269d613fe0536a01eb86367a545e337e51d1309",
      "tree": "21e648eaac2a1569af79dcbc75a962481b6cbc75",
      "parents": [
        "6ea7cdc593f7637e26da54192ef67245185994f3"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 16 00:45:37 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 16 00:45:37 2005 +0000"
      },
      "message": "2005-02-15 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* network.h: Declare new function set_nonblocking.  Indicate that\n\t  readn and writen are deprecated.\n\t* network.c: (set_nonblocking) New function to make a file descriptor\n\t  non-blocking, since it seems silly to have fcntl calls sprinkled\n\t  throughout the code.\n"
    },
    {
      "commit": "6ea7cdc593f7637e26da54192ef67245185994f3",
      "tree": "a4b5e80d3936a582d503750408395039ff273848",
      "parents": [
        "658b03a6bbb88357d841a99908d729e05e3b98c2"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Feb 15 17:10:03 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Feb 15 17:10:03 2005 +0000"
      },
      "message": "Adjust size complexity estimates.  Still not quite right, but closer.\n"
    },
    {
      "commit": "658b03a6bbb88357d841a99908d729e05e3b98c2",
      "tree": "1ac1754274dfa07965c57f266de564e6522799a4",
      "parents": [
        "1e19315262b1eb1228af31f43aee7c9c3e9eefc6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 15 10:10:55 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 15 10:10:55 2005 +0000"
      },
      "message": "2005-02-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_packet.c: (ospf_recv_packet) Fix silly error wrt allocating\n\t  ibuf. Thanks Andrew.\n"
    },
    {
      "commit": "1e19315262b1eb1228af31f43aee7c9c3e9eefc6",
      "tree": "d7aedd6d94d06ddef166f62014369c845ee3defa",
      "parents": [
        "1dd13d41d09487c3d595b13a087b2ec87b7f4ce8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:53:05 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:53:05 2005 +0000"
      },
      "message": "2005-02-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Not all Linux netlink systems have IFLA_WIRELESS\n"
    },
    {
      "commit": "1dd13d41d09487c3d595b13a087b2ec87b7f4ce8",
      "tree": "981310e2b5a5a30b955f4dd2eca094b01a1b93e1",
      "parents": [
        "bfdc44af118e235e6979be42d4e4f2c1353f7bf0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:49:09 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:49:09 2005 +0000"
      },
      "message": "- oops, date was wrong in actual ChangeLog\n"
    },
    {
      "commit": "bfdc44af118e235e6979be42d4e4f2c1353f7bf0",
      "tree": "616da373ee6520cf47a7a278194730fec340cfef",
      "parents": [
        "050c013ac35337d86b03f140fb17d2e8e33a8baa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:48:42 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:48:42 2005 +0000"
      },
      "message": "2005-02-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_packet.c: (ospf_recv_packet) use stream_recvmsg.\n\n2005-02-11 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_lsdb.c: Fix sum of checksums calculation.\n\n2005-02-09 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the\n\t  error message.\n\n2005-02-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: Reduce structure padding by putting new u_char\n\t  field multicast_memberships in a better spot (grouped with\n\t  other u_char fields type and state).\n\n2005-02-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: Improve passive_interface comment.  Add new\n\t  multicast_memberships bitmask to struct ospf_interface to track\n\t  active multicast subscriptions.  Declare new function\n\t  ospf_if_set_multicast.\n\t* ospf_interface.c: (ospf_if_set_multicast) New function to configure\n\t  multicast memberships properly based on the current\n\t  multicast_memberships status and the current values of the\n\t  ospf_interface state, type, and passive_interface status.\n\t  (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is\n\t  now handled by ism_change_state\u0027s call to ospf_if_set_multicast).\n\t  (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now\n\t  handled by ism_change_state).\n\t* ospf_ism.c: (ospf_dr_election) Remove logic to join or leave\n\t  the DRouters multicast group (now handled by ism_change_state\u0027s call\n\t  to ospf_if_set_multicast).\n\t  (ism_change_state) Add call to ospf_if_set_multicast to change\n\t  multicast memberships as necessary to reflect the new interface state.\n\t* ospf_packet.c: (ospf_hello) When a Hello packet is received on a\n\t  passive interface: 1. Increase the severity of the error message\n\t  from LOG_INFO to LOG_WARNING; 2. Add more information to the error\n\t  message (packet destination address and interface address);\n\t  and 3. If the packet was sent to ospf-all-routers, then try\n\t  to fix the multicast group memberships.\n\t  (ospf_read) When a packet is received on an interface whose state\n\t  is ISM_Down, enhance the warning message to show the packet\n\t  destination address, and try to update/fix the multicast group\n\t  memberships if the packet was sent to a multicast address.\n\t  When a packet is received for ospf-designated-routers, but the\n\t  current interface state is not DR or BDR, then increase the\n\t  severity level of the error message from LOG_INFO to LOG_WARNING,\n\t  and try to fix the multicast group memberships.\n\t* ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for\n\t  any ospf interface that may have changed from active to passive.\n\t  (no_ospf_passive_interface) Call ospf_if_set_multicast for\n\t  any ospf interface that may have changed from passive to active.\n\t  (show_ip_ospf_interface_sub) Show multicast group memberships.\n\n2005-02-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: (various) Remove unneeded stream_set_putp abuse.\n\n2005-02-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down,\n\t  not for event ISM_InterfaceDown.  And improve the message by\n\t  adding the interface flags.\n\n2005-01-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_network.c: (ospf_sock_init) Save errno before calling\n\t  ospfd_privs.change.\n\n2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_packet_add) If oi-\u003eobuf is NULL, print\n\tan error message and return.\n\t(ospf_read) If the interface state is ISM_InterfaceDown, issue\n\ta warning message and ignore the packet.\n\n2005-01-10  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* ospf_packet.h: Remove commented out definition of\n\tOSPF_MAX_PACKET; neither it or the uncommented one are used any more.\n\n\t* ospf_packet.c (ospf_make_ls_upd): Leave room for authentication\n\twhen deciding if an update will fit.\n\t(ospf_packet_authspace): Factor out calculation of size required\n\tfor authentication.\n\t(ospf_make_db_desc): Use ospf_max_packet, not OSPF_MAX_PACKET.\n\tDon\u0027t confuse readers that there is a macro.\n\n2004-12-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_network.c: Improve all setsockopt error messages to give detailed\n\t  information on the arguments.\n\n2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc) Reduce severity of \"Negotiation done\"\n\t  messages from LOG_WARNING to LOG_INFO, since this seems to be\n\t  normal.\n\n2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_read) Always look up the interface if\n\t  ospf_recv_packet returns NULL ifp, since some platforms such\n\t  as Solaris 8 appear to support ifindex retrieval but don\u0027t.\n\n2004-12-22 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_dump.c: Show debug configuration in vtysh.\n\t* ospf_vty.c: Fix \"show ip ospf\" output. Router can\u0027t be elected in\n\t  any case if it\u0027s configured as \"translate-never\".\n\t* ospf_lsdb.[ch]: New function to calculate sum of checksums.\n\t* ospf_vty.c: Bugfix to show really number of AS external LSAs, not\n\t  number of all LSAs with AS scope, this includes opaque as LSAs as\n\t  well, show this number separately. Show numbers and sums of\n\t  checksums for each type of LSAs.\n\t* ospf_lsa.c: Calculate checksum before putting LSA into database.\n\n2004-12-15 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: Declare new function ospf_default_iftype.\n\t* ospf_interface.c: (ospf_default_iftype) New function to centralize\n\t  this logic in one place.\n\t* ospf_zebra.c: (ospf_interface_add) Use new function\n\t  ospf_default_iftype.\n\t* ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic\n\t  by using new function ospf_default_iftype.\n\n2004-12-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc) Should be static, not global.\n\t  (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning\n\t  messages to include identifying information (e.g. router id).\n\t* ospf_nsm.c: (nsm_change_state) Improve info message to include\n\t  router id and state names.\n\n2004-12-09  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* ospf_apiserver.c (ospf_apiserver_term): Obtain struct\n\tospf_apiserver * from listnode.  Remove unused variables.  Follows\n\tsuggestion from Jay Fenlason.\n\n2004-12-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* *.c: Change level of debug messages to LOG_DEBUG.\n\n2004-12-07 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_main.c: (main) The 2nd argument to openzlog has been removed.\n\n2004-12-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc) Reduce priority on a debug message\n\t  from LOG_NOTICE to LOG_DEBUG.\n\n2004-12-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Issue a startup announcement using zlog_notice.\n\n2004-11-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc_proc) Fix spelling of packet in warning\n\t  message and in comment.\n\t  (ospf_db_desc) Warning message that a packet is being discarded\n\t  should give the router id of the packet source.  Fix spelling\n\t  of packet in two warning messages.\n\t  (ospf_ls_req) Warning message that a link state request is being\n\t  discarded should give the router id of the neighbor that sent it.\n\n2004-11-26 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_main.c: Remove #include \"debug.h\" (was not being used, and\n\t  lib/debug.h has now been deleted).\n\n2004-11-25 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_main.c: Make group to run as configurable.\n\n2004-11-15  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* ospf_packet.c (ospf_recv_packet): Assume CMSG_SPACE is present\n\tand works (lib/zebra.h provides if OS doesn\u0027t).\n\n2004-11-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_{apiserver,te}.c: ospf_lsa_free\u0027s should be ospf_lsa_unlock.\n\n2004-11-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_ia.c: (process_summary_lsa) Only an ABR has any reason to\n          ignore stub area summary default. Even so it seems a strange\n          check, add a comment to that effect.\n\n2004-11-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospfd.c: (ospf_network_match_iface) revert to previous network\n          statement match behaviour.\n\n2004-11-02 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points\n\t  to it. Add convenience pointer to msg-\u003emsg_iov[1], and use this,\n\t  fixing the unfortunate borkenness introduced in moving of this code\n\t  to a function.\n\t  (ospf_write) remove iovp and fix up call to previous.\n\t  (ospf_ls_upd_packet_new) cast size to long int - unfortunately\n          glibc\u0027s size_t format modifier is not portable.\n\n2004-10-31 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: (ospf_write_frags) Add debug output\n\t  (ospf_write) set type early, so we can pass it to\n\t  ospf_write_frags.\n\t  (ospf_ls_upd_packet_new) print size in debug output when too large\n\t  packet is encountered.\n\t* ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of\n\t  THREAD_ARG to store an integer, but it should at least use same\n          same type to retrieve the value. Assert value is sane.\n\n2004-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_network.c: (ospf_sock_init) call neutral setsock_ifindex()\n          function.\n        * ospf_packet.c: (ospf_read) manually look up ifindex\n          if system could not have returned one, eg openbsd, thanks to Rivo\n\t  Nurges for highlighting problem and fix.\n          Change setsockopt_pktinfo to setsockopt_ifindex.\n\n2004-10-19 Andrew J. Schorr \u003caschorr@telemetry-investments.com\u003e\n\n\t* ospf_snmp.c: (ospf_snmp_if_update) Fix logic to handle PtP links\n\t  with dedicated subnets properly.\n\t* ospf_lsa.c: (lsa_link_ptop_set) ditto.\n\t* ospfd.c: (ospf_network_match_iface) ditto.\n\t  (ospf_network_run) ditto.\n\t* ospf_interface.c: (ospf_if_is_configured) ditto.\n\t  (ospf_if_lookup_by_prefix) ditto.\n\t  (ospf_if_lookup_recv_if) ditto.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Display the peer or\n\t  broadcast address if present.\n\n2004-10-13 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_main.c: Unbreak compilation with ospfapi disabled.\n\t* ospf_snmp.c: Remove defaults used to initialize smux connection to\n\t  snmpd. Connection is initialized only if smux peer is configured.\n\n2004-10-12 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_main.c, ospf_opaque.c: Unbreak ospfclient compilation - move\n\t  static variable from ospf_main.c into ospf_opaque.c.\n\n2004-10-11 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_main.c, ospf_opaque.c: Disable ospfapi init by default. New\n\t  command line switch to enable it.\n\n2004-10-11 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order\n\t  remove ntohs that should have dissappeared. Take struct ip\n\t  as argument, caller has to know there\u0027s an IP header at start of\n\t  stream anyway.\n\t* ospf_dump.h: update declaration of ospf_ip_header_dump.\n\t* ospf_packet.c: (ospf_write) correct call to\n\t  sockopt_iphdrincl_swab_htosys which was munging the header.\n\t  (ospf_recv_packet) ip_len is needed for old OpenBSD fixup.\n\t  (ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as\n\t  we have it.\n\t* (global) Const char update and signed/unsigned fixes.\n\t* (various headers) size defines should be unsigned.\n\t* ospf_interface.h: remove duplicated defines, include the\n\t  authoritative header - though, these defines should probably\n          be moved to a dedicated header, or ospfd.h.\n\t* ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.\n\t* ospf_packet.c: (ospf_write) cast result of shift to unsigned.\n\n2004-10-08 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* *.[c|h]: Fix compiler warnings: make some strings const, signed -\u003e\n\t  unsigned, remove unused variables etc.\n\n2004-10-07  Greg Troxel  \u003cgdt@claude.ir.bbn.com\u003e\n\n\t* ospf_apiserver.c (ospf_apiserver_unregister_opaque_type): Don\u0027t\n\tuse of variable names \u0027node\u0027 and \u0027nextnode\u0027 to avoid possible\n\tconflict with list macros.  Move variable declaration inside for\n\tloop after a statement to top of function.\n\n2004-10-07 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_snmp.c: Missed list typedef update\n\t* ospf_dump.c: Include sockopt.h for header swab functions.\n\n2004-10-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: replace ospf_swap_iph_to... with\n          sockopt_iphdrincl_swab_...\n\n2004-10-03 James R. Leu \u003cjleu at mindspring.com\u003e\n\n\t* ospf_zebra.c: Read router id related messages from zebra daemon.\n\t  Schedule router-id update thread if it\u0027s changed.\n\t* ospfd.c: Remove own router-id selection function. Use router id from\n\t  zebra daemon if it isn\u0027t manually overriden in configuration.\n\n2004-09-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER\n\t  Apply to offset too. Print ip_cksum, lets not worry about\n\t  possible 2.0.37 compile problems.\n\t* ospf_packet.c: (ospf_swap_iph_to{n,h}) Use\n\t  HAVE_IP_HDRINCL_BSD_ORDER.\n\t  (ospf_recv_packet) ditto.\n\t  (ospf_write) Fixup iov argument to ospf_write_frags.\n          (struct msghdr).msg_name is caddr_t on most platforms.\n\t  (ospf_recv_packet) ditto. And msg_flags is not always there\n          memset struct then set fields we care about rather than\n          initialise all fields individually.\n\n2004-09-26 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* ospf_abr.c, ospf_dump.c, ospf_lsa.c, ospf_packet.c, ospf_vty.c,\n\t  ospf_zebra.c: Fix compiler warnings.\n\n2004-09-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_apiserver.{c,h}: lists typedef removal cleanup.\n          update some list loops to LIST_LOOP. some miscellaneous indent\n          fixups.\n          (ospf_apiserver_unregister_opaque_type) fix listnode_delete of\n          referenced node in loop.\n \t  (ospf_apiserver_term) loops calling ospf_apiserver_free, which\n          deletes referenced nodes from apiserver_list, fixed.\n        * ospf_interface.h: lists typedef removal cleanup.\n        * ospf_opaque.{c,h}: lists typedef removal cleanup. update some list\n          loops to LIST_LOOP. miscellaneous style and indent fixups.\n        * ospf_te.{c,h}: ditto\n\t* ospf_packet.c: lists typedef removal cleanup.\n          (ospf_write) ifdef fragmentation support. move actual\n\t  fragmentation out to a new, similarly ifdefed, function.\n\t  (ospf_write_frags) fragmented write support, moved from previous.\n\n2004-09-23 Hasso Tepper \u003chasso at quagga.net\u003e\n\n\t* *.[c|h]: list -\u003e struct list *, listnode -\u003e struct listnode *.\n\n2004-09-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: Fix bugzilla #107\n \t  (ospf_packet_max) get rid of the magic 88 constant\n\t  (ospf_swab_iph_ton) new function. set ip header to network order,\n\t  taking BSDisms into account.\n\t  (ospf_swab_iph_toh) the inverse.\n\t  (ospf_write) Add support for IP fragmentation, will only work on\n\t  linux though, other kernels make it impossible. get rid of the\n\t  magic 4 constant.\n\t  (ospf_make_ls_upd) Bound check to end of stream, not to\n\t  interface mtu.\n\t  (ospf_ls_upd_packet_new) New function, allocate upd packet\n\t  taking oversized LSAs into account.\n\t  (ospf_ls_upd_queue_send) use ospf_ls_upd_packet_new to allocate,\n\t  rather than statically allocating mtu sized packet buffer, which\n\t  actually was wrong - it didnt take ip header into account, which\n\t  should not be included in packet buffer.\n\t  (ospf_ls_upd_send_queue_event) minor tweaks and remove\n\t  TODO comment.\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\t  struct 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\t  acks to AllSPFRouters, rather than All-DR.\n\n2004-08-27  Hasso Tepper  \u003chasso at quagga.net\u003e\n\n\t* ospf_vty.c: Don\u0027t print ospf network type under interface only\n\t  if interface is in broadcast mode and interface type really is\n\t  broadcast. Fixes Bugzilla #108.\n\n2004-08-27  David Wiggins  \u003cdwiggins@bbn.com\u003e\n\n\t* ospf_spf.c (ospf_nexthop_calculation): Initialize address family\n\t  in on-stack struct prefix_ipv4.  Fixes point-to-multipoint SPF\n\t  calculation.\n\n2004-08-26  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* ospf_packet.c (ospf_recv_packet): adjust size declaration of\n\t  buffer used to get interface index so that it compiles on other\n\t  than Linux and includes the required alignment space.  Probably\n\t  this was only working on sparc/sparc64 because most of\n\t  sockaddr_dl was not being written.\n\n2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: update to match sockopt renames.\n\n2004-08-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_spf.c: (ospf_spf_consider_nexthop) Add comment about issue.\n\t  Compare only against list head - all nexthops must be same cost\n\t  anyway, fixes a reference-listnode-after-delete bug noted by\n\t  Kir Kostuchenko.\n\t  (ospf_nexthop_calculation) Use ospf_spf_consider_nexthop for all\n\t  candidates attached to root.\n\n2004-07-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_packet.c: (ospf_ls_upd_send_queue_event) fix thinko from\n          last fix for ospfd wedging due to oversize LSAs: dont list loop on\n          ospf_ls_upd_queue_send() - guaranteed segfault.\n\n2004-07-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out\n\t  the LSA as then free_opaque_info_per_id() can never unlock (and\n\t  free) the LSA. Reported by Gunnar Stigen.\n\n2004-07-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_network.c: Replace PKTINFO/RECVIF with call to\n\t  setsockopt_pktinfo\n\t* ospf_packet.c: Use getsockopt_pktinfo_ifindex and\n\t  SOPT_SIZE_CMSG_PKTINFO_IPV4.\n\n2004-07-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for\n\t  problem reported by Peter Frost amongst others, where function\n\t  will spin indefinitely if update list contains LSAs greater than\n\t  MTU-headers or other condition leading to update list never being\n          cleared. Problem of what to do with these LSAs remains.\n          (ospf_make_ls_upd) add comment about large LSA problem,\n\t  indentation cleanup.\n\n2004-07-01  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n\t* Makefile.am (lib_LTLIBRARIES): make libospf shared\n\n2004-06-30  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* Makefile.am: Add shlib support.\n\n2004-06-10 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* *: Removed ifdefs HAVE_NSSA.\n\n2004-06-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_dump.c,ospf_lsa.c: Fix typos of merge of previous.\n\t  ospf_flood.c: (ospf_process_self_originated_lsa) fix zlog format\n\n2004-05-31 Sagun Shakya \u003csagun.shakya@sun.com\u003e\n\n\t* ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if\n\t  index is out of range.\n\t  ospf_flood.c: endianness fix\n\t  ospf_lsa.c: Missing ntohl\u0027s on (struct lsa *)-\u003edata-\u003els_seqnum\n\t  in various places.\n\n2004-05-10 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_zebra.c, ospfd.c: Move ospf_prefix_list_update() function\n\t  to ospf_zebra.c from ospfd.c and add redistribution updates if\n\t  route-map is used in redistribution.\n\t* ospf_main.c: Remove now useless call to ospf_init().\n\n2004-05-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_zebra.c: Sync with lib/zclient changes\n\n2004-05-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_network.c: (ospf_sock_init) Check whether IP_HDRINCL is\n\t  defined. Warn at compile and runtime. Use\n\t  IPTOS_PREC_INTERNETCONTROL otherwise.\n\t* ospf_packet.c:  (ospf_associate_packet_vl) cleanup, move\n\t  some of the checks up to ospf_read, return either a\n\t  virtual link oi, or NULL.\n\t  (ospf_read) Cleanup, make it responsible for checks. Remove\n\t  the nbr lookup - moved to ospf_neighbor. Adjust all nbr\n\t  lookups to use new wrappers exported by ospf_neighbor.\n\t* ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup.\n\t* ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface\n\t  neighbour table by router-id for virtual-link ospf_interfaces,\n\t  not by peer_addr (which breaks for asymmetric vlinks)\n\t  (ospf_nbr_lookup) add a wrapper for nbr lookups to deal with\n\t  above.\n\t* ospf_interface.c: (ospf_vl_set_params) Catch changes of interface\n\t  address for either end of a virtual-link, and hence potential cost\n\t  changes.\n\n2004-04-22 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_zebra.c: Don\u0027t ignore reject/bh routes, it\u0027s the only way\n\t  to \"summarize\" routes in ASBR at the moment.\n\n2004-04-20 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospfd.c: Unset NP flag if area is going to be normal or stub.\n\t  Fixes UNH OSPF_NSSA.1.2a comment.\n\t* ospf_abr.c: Originate default into stub/nssa area even if\n\t  summaries are disabled.\n\t* ospf_zebra.c: Don\u0027t attempt to redistribute 127.0.0.0/8.\n\n2004-04-19 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_vty.c: Don\u0027t warn that export- and import-list can\u0027t be\n\t  configured to backbone area if they are applied and are working\n\t  fine.\n\n2004-02-19 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n\t* ospf_packet.c: Don\u0027t drop packets in Solaris x86.\n\t  [quagga-dev 1005].\n\n2004-03-18 Amir Guindehi \u003camir@datacore.ch\u003e\n\n\t* ospf_opaque.c: Attempt to correct the incorrect behavior of\n\tQuagga\u0027s ospfd in the special situation that a node\u0027s opaque\n\tcapability has changed as \"ON -\u003e OFF -\u003e ON\". [quagga-dev 843].\n\n2004-02-19 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n\t* ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range\n\t  should be configured with the highest cost path within the range,\n\t  not lowest.\n\n2004-02-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface\n\t  params, nor the interface structure, if an interface delete\n\t  message is received from zebra.\n\t* ospf_interface.c: (ospf_if_delete_hook) Delete the interface\n\t  params and interface, ie that which was previously removed in\n\t  (ospf_interface_delete) above.\n\n2004-02-11 Hasso Tepper \u003chasso@estpak.ee\u003e\n\t* ospf_interface.c, ospf_zebra.c: Don\u0027t attempt to read path-\u003eoi-\u003eifp\n\t  if oi doesn\u0027t exist any more.\n\n2004-02-11 Vadim Suraev \u003cvadim.suraev@terayon.com\u003e\n\t* ospf_packet.c (ospf_ls_upd): Router should flush received network\n\t  LSA if it was originated with older router-id ([zebra 14710] #6).\n\n2003-12-08 Mattias Amnefelt \u003cmattiasa@kth.se\u003e\n\n\t* ospf_packet.c: (ospf_recv_packet) OpenBSD now leaves iph.ip_len\n\t  network byte order.\n\n2003-12-05  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* ospfd.c (ospf_network_match_iface): Rewrite code for clarity\n\twhile trying not to change semantics.  Add ifdefed-out code to\n\tavoid matching ppp interfaces whose destination address does not\n\talso match the prefix under consideration, to help out people with\n\tproblems due to as-yet-unfixed bugs with p2p interfaces coming and\n\tgoing.\n\n2003-07-25 kamatchi soundaram \u003ckamatchi@tdd.sj.nec.com\u003e\n\n        * ospf_packet.c (ospf_ls_upd_send_queue_event): get next route\n          node in body of the loop to avoid chance that route node\n          is unlocked and deleted before the next iteration tries to\n          get next route node.\n\n2003-05-24 Kenji Yabuuchi\n\n\t* ospf_interface.c(ospf_if_lookup_recv_if): Use the most specific\n\t  match for interface lookup.\n\n2003-05-18 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_vty.c: Show NSSA LSA route info in \"show ip ospf database\"\n\toutput\n\n2003-05-16 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_lsa.c: Fix handling of NSSA\n\n2003-04-23 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* ospf_vty.c: fix \"router xxx\" node commands in vtysh\n\n2003-04-19 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n\t* {ospf_abr,ospfd}.c: area id\u0027s DECIMAL -\u003e ADDRESS\n\t* ospf_routemap.c: sync daemon\u0027s route-map commands to have same\n\t  syntax.\n\n2003-04-19 Sergey Vyshnevetskiy \u003cserg@vostok.net\u003e\n\n\t* ospf_packet.c: Add missing param to zlog\n\t* ospf_flood.c: remove unused vars\n\n2003-04-17 Denis Ovsienko \u003czebra@pilot.org.ua\u003e\n\n\t* ospf_interface.c: fix incorrect memset\n\n2003-04-10 Amir Guindehi \u003camir@datacore.ch\u003e\n\n\t* ospf_lsa.[ch]: opaque LSA fix, use ospf_lookup.\n\n2003-04-03 David Watson \u003cdwatson@eecs.umich.edu\u003e\n\n\t* ospf_lsa.c: byte order fix\n\n2002-03-17  Amir Guindehi \u003camir@datacore.ch\u003e\n\n        * ospf_apiserver.[ch]: Merge Ralph Keller\u0027s OSPFAPI support.\n        * ospf_api.[ch]: Merge Ralph Keller\u0027s OSPFAPI support.\n\t* ospfclient: OSPFAPI demonstration client.\n\n2003-01-23  Masahiko Endo \u003cendo@suri.co.jp\u003e\n\n\t* ospf_ism.c: NSM event schedule bug fix.\n\n2002-10-30  Greg Troxel \u003cgdt@ir.bbn.com\u003e\n\n\t* ospf_packet.c (ospf_make_md5_digest): MD5 length fix.\n\n2002-10-23  endo@suri.co.jp (Masahiko Endo)\n\n\t* ospf_opaque.c: Update Opaque LSA patch.\n\n2002-10-23  Ralph Keller \u003ckeller@tik.ee.ethz.ch\u003e\n\n\t* ospf_vty.c (show_ip_ospf_database): Fix CLI parse.\n\n2002-10-23  Juris Kalnins \u003cjuris@mt.lv\u003e\n\n\t* ospf_interface.c (ospf_if_stream_unset): When write queue\n\tbecomes empty stop write timer.\n\n2002-10-10  Greg Troxel \u003cgdt@ir.bbn.com\u003e\n\n\t* ospf_packet.c (ospf_check_md5_digest): Change \u003e\u003d to \u003e to make it\n\tconform to RFC.\n\n2002-07-07  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* zebra-0.93 released.\n\n2002-06-19  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospf_spf.c (ospf_nexthop_calculation): Add NULL set to oi and\n\tcheck of l2.  Reported by: Daniel Drown \u003cdan-zebra@drown.org\u003e\n\t(ospf_lsa_has_link): LSA Length calculation fix.  Reported by:\n\tPaul Jakma \u003cpaulj@alphyra.ie\u003e.\n\n\t* ospfd.c (ospf_if_update): Fix nextnode reference bug.  Reported\n\tby: juris@mt.lv.\n\n2002-01-21  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospfd.c: Merge [zebra 11445] Masahiko ENDO\u0027s Opaque-LSA support.\n\n2001-08-27  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_interface.c (ospf_add_to_if): Use /32 address to register\n\tOSPF interface information.\n\t(ospf_delete_from_if): Likewise.\n\n\t* ospf_zebra.c (ospf_interface_address_delete): Likewise.\n\n2001-08-23  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospf_zebra.c (ospf_redistribute_unset): When redistribute type\n\tis OSPF, do not unset redistribute flag.\n\n2001-08-19  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* zebra-0.92a released.\n\n2001-08-15  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* zebra-0.92 released.\n\n2001-08-12  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospfd.c (ospf_config_write): auto-cost reference-bandwidth\n\tconfiguration display.\n\n2001-07-24  David Watson \u003cdwatson@eecs.umich.edu\u003e\n\n\t* ospf_spf.c (ospf_spf_next): Modify ospf_vertex_add_parent to\n\tcheck for an existing link before connecting the parent and child.\n\tospf_nexthop_calculation is also modified to check for duplicate\n\tentries when copying from the parent.  Finally, ospf_spf_next\n\tremoves duplicates when it merges two equal cost candidates.\n\n2001-07-23  itojun@iijlab.net\n\n\t* ospfd.c (show_ip_ospf_neighbor): Check ospf_top before use it\n\t[zebra 8549].\n\n2001-07-23  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospf_packet.c (ospf_write): Remove defined(__OpenBSD__) to make\n\tit work on OpenBSD.\n\n2001-06-26  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_zebra.c (config_write_ospf_default_metric): Display\n\tdefault-metric configuration.\n\n2001-06-18  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospf_ia.h (OSPF_EXAMINE_SUMMARIES_ALL): Remove old macros.\n\n2001-05-28  Kunihiro Ishiguro  \u003ckunihiro@ipinfusion.com\u003e\n\n\t* ospf_snmp.c (ospfIfEntry): Fix interface lookup bug to avoid\n\tcrush.\n\t(ospfIfMetricEntry): Likewise.\n\n2001-03-18  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_packet.c (ospf_read): Fix typo.  Reported by: \"Jen B\n\tLin\u0027Kova\" \u003cjen@stack.net\u003e.\n\n2001-03-15  Gleb Natapov \u003cgleb@nbase.co.il\u003e\n\n\t* ospf_interface.c (ip_ospf_network): Set interface parameter.\n\t(interface_config_write): Add check for OSPF_IFTYPE_LOOPBACK.\n\n\t* ospf_zebra.c (ospf_interface_add): Set interface parameter.\n\n2001-02-21  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_packet.c (ospf_recv_packet): Solaris also need to add\n\t(iph.ip_hl \u003c\u003c 2) to iph.ip_len.\n\n2001-02-09  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospfd.h (OSPF_LS_REFRESH_TIME): Fix OSPF_LS_REFRESH_TIME value.\n\tSuggested by: David Watson \u003cdwatson@eecs.umich.edu\u003e.\n\n\t* ospf_zebra.c (zebra_init): Remove zebra node.\n\n\t* ospfd.c (ospf_area_range_set): Function name is changed from\n\tospf_ara_range_cmd.\n\t(ospf_area_range_unset): New function which separated from DEFUN.\n\tNew commands are added:\n\t\"no area A.B.C.D range A.B.C.D/M advertise\"\n\t\"no area \u003c0-4294967295\u003e range A.B.C.D/M advertise\"\n\t\"no area A.B.C.D range A.B.C.D/M not-advertise\"\n\t\"no area \u003c0-4294967295\u003e range A.B.C.D/M not-advertise\"\n\n\t* ospf_lsa.c (ospf_lsa_more_recent): Fix previous change.\n\n2001-02-08  Matthew Grant \u003cgrantma@anathoth.gen.nz\u003e\n\n\t* ospf_network.c (ospf_if_add_allspfrouters): Use\n\tsetsockopt_multicast_ipv4.\n\t(ospf_if_drop_allspfrouters): Likewise.\n\n\t* ospf_lsa.c (ospf_router_lsa_install): Add rt_recalc flag.\n\t(ospf_network_lsa_install): Likewise.\n\t(ospf_summary_lsa_install): Likewise.\n\t(ospf_summary_asbr_lsa_install): Likewise.\n\t(ospf_external_lsa_install): Likewise.\n\t(ospf_lsa_install): Call ospf_lsa_different to check this LSA is\n\tnew one or not.\n\n2001-02-08  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_zebra.c (ospf_interface_delete): Do not free interface\n\tstructure when ospfd receive interface delete message to support\n\tpseudo interface.\n\n2001-02-01  Dick Glasspool \u003cdick@ipinfusion.com\u003e\n\n\t* ospfd.c (area_range_notadvertise): Change area range \"suppress\"\n\tcommand to \"not-advertise\".\n\n\t* ospfd.h (OSPF_LS_REFRESH_TIME): Change OSPF_LS_REFRESH_TIME from\n\t1800 to 60.\n\n\t* ospf_abr.c (ospf_abr_update_aggregate): When update_aggregate is\n\tupdating the area-range, the lowest cost is now saved.\n\n\t* ospf_lsa.c (ospf_lsa_more_recent): Routing to compare sequence\n\tnumbers rather than creating overflow during calculation.\n\n2001-02-01  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* zebra-0.91 is released.\n\n2001-01-31  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_packet.c (ospf_db_desc_proc): Do not continue process when\n\tNSM_SeqNumberMismatch is scheduled.\n\t(ospf_ls_req): Free ls_upd when return from this function.\n\t(ospf_ls_upd_timer): When update list is empty do not call\n\tospf_ls_upd_send().  Suggested by: endo@suri.co.jp (Masahiko\n\tEndo).\n\n2001-01-26  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_lsa.c (ospf_maxage_flood): Flood LSA when it reaches\n\tMaxAge.  RFC2328 Section 14.\n\t(ospf_maxage_lsa_remover): Call above function during removing\n\tMaxAge LSA.\n\n2001-01-26  Dick Glasspool \u003cdick@ipinfusion.com\u003e\n\n\t* ospf_flood.c (ospf_flood_through_as): Function is updated for\n\tNSSA Translations now done at ospf_abr.c with no change in P-bit.\n\n\t* ospf_lsa.c (ospf_get_nssa_ip): Get 1st IP connection for Forward\n\tAddr.\n\t(ospf_install_flood_nssa):  Leave Type-7 LSA at Lock Count \u003d 2.\n\n\t* ospf_ase.c (ospf_ase_calculate_route): Add debug codes.\n\n\t* ospf_abr.c (ospf_abr_translate_nssa): Recalculate LSA checksum.\n\n\t* ospf_packet.h (OSPF_SEND_PACKET_LOOP): Added for test packet.\n\n\t* ospf_dump.c (ospf_lsa_type_msg): Add OSPF_GROUP_MEMBER_LSA and\n\tOSPF_AS_NSSA_LSA.\n\n\t* ospfd.c (data_injection): Function to inject LSA.  This is\n\tdebugging command.\n\n2001-01-11  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_route.c (ospf_route_match_same): Remove function.\n\t(ospf_route_match_same_new): Renamed to ospf_route_match_same.\n\n\t* ospf_zebra.c (ospf_interface_address_delete): Add check for\n\toi-\u003eaddress.  Suggested by Matthew Grant\n\t\u003cgrantma@anathoth.gen.nz\u003e.\n\t(ospf_zebra_add): Remove function.\n\t(ospf_zebra_add_multipath): Rename to ospf_zebra_add.\n\n\t* ospf_interface.c: Remove HAVE_IF_PSEUDO part.\n\n\t* ospf_zebra.c: Likewise.\n\n2001-01-10  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_ase.c: Remove OLD_RIB part.\n\n\t* ospf_route.c: Likewise.\n\n\t* zebra-0.90 is released.\n\n\t* ospf_packet.c (ospf_recv_packet): Use ip_len adjestment code to\n\tNetBSD.\n\n2001-01-09  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_route.c (ospf_route_delete): Use\n\tospf_zebra_delete_multipath.\n\n2001-01-09  Matthew Grant \u003cgrantma@anathoth.gen.nz\u003e\n\n\t* ospf_interface.c (ospf_if_cleanup): Function name is renamed\n\tfrom ospf_if_free().  Rewrite whole procudure to support primary\n\taddress deletion.\n\n\t* ospf_zebra.c (ospf_interface_address_delete): Add primary\n\taddress deletion process.\n\n2001-01-09  Kunihiro Ishiguro  \u003ckunihiro@zebra.org\u003e\n\n\t* ospf_packet.c (ospf_recv_packet): OpenBSD has same ip_len\n\ttreatment like FreeBSD.\n\n2001-01-09  endo@suri.co.jp (Masahiko Endo)\n\n\t* ospf_packet.c (ospf_recv_packet): FreeBSD kernel network code\n\tstrips IP header size from receiving IP Packet.  So we adjust\n\tip_len to whole IP packet size by adding IP header size.\n\n2001-01-08  endo@suri.co.jp (Masahiko Endo)\n\n\t* ospf_network.c (ospf_serv_sock): When socket() is failed return\n"
    },
    {
      "commit": "050c013ac35337d86b03f140fb17d2e8e33a8baa",
      "tree": "7241e3972e2116f67b762a37305c31ee7d8d9671",
      "parents": [
        "f2e6c429375adf0d3c5deaa409734d5d41ac15ce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:47:47 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 14 23:47:47 2005 +0000"
      },
      "message": "2005-02-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* stream.h: Unsigned long updated to size_t\n\t* stream.c: ditto\n\t* stream.h: Add stream_copy, stream_dup, stream_recvmsg.\n\t  Add comment describing struct stream abstraction, and various\n\t  other comments.\n\t  Deprecate several unsafe/ambigious macros.\n\t  Add STREAM_WRITEABLE and STREAM_READABLE.\n\t  Add (stream_getl_from) for symmetry.\n\t  Update stream_forward_{endp,getp} to use size_t offset.\n\t  Make stream data a 0 length array, rather than a seperate malloc.\n\t* stream.c: Add consistency checks. Update to follow stream.h\n\t  changes.\n\t  (stream_new) Alloc stream+data in one go.\n\t  (stream_copy) new function, copy a stream.\n\t  (stream_dup) new function, dup a stream.\n\t  (stream_recvmsg) new function, recvmsg data into a stream.\n\t  (stream_empty) no need to check getp \u003d\u003d 0.\n"
    },
    {
      "commit": "f2e6c429375adf0d3c5deaa409734d5d41ac15ce",
      "tree": "73c056492bff8eb06eb7350909d0b2fa8baba772",
      "parents": [
        "082253f5d08577e2c7b61ed2302be88295b459eb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Feb 12 14:35:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Feb 12 14:35:49 2005 +0000"
      },
      "message": "2005-02-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* stream.h: Unsigned long updated to size_t\n\t* stream.c: ditto\n"
    },
    {
      "commit": "082253f5d08577e2c7b61ed2302be88295b459eb",
      "tree": "4a359027a29c673844f89bd36e706baaa5326db4",
      "parents": [
        "5d6191ee84cc4b292f19f287a5c4fc45f7dd9b84"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Feb 11 08:31:54 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Feb 11 08:31:54 2005 +0000"
      },
      "message": "\t* ospf_lsdb.c: Fix sum of checksums calculation.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "5d6191ee84cc4b292f19f287a5c4fc45f7dd9b84",
      "tree": "9db0ef2debaf3a0b18bb5955456264bf36c3dab6",
      "parents": [
        "9985f83ce7102f64b15f744b60320f8d14a8a5ff"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Feb 10 16:38:09 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Feb 10 16:38:09 2005 +0000"
      },
      "message": "notes on what files contain what, and an initial stab at understanding\nhow much storage is required.\n"
    },
    {
      "commit": "9985f83ce7102f64b15f744b60320f8d14a8a5ff",
      "tree": "344629bdc2b4a7d53b8d7ca1705c9be2ca282d18",
      "parents": [
        "083ee9d9cdbf72a452b9af96e62d0625ea712cd9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "message": "2005-02-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) Update code to match stream.h changes.\n\t  stream_get_putp effectively replaced with stream_get_endp.\n\t  stream_forward renamed to stream_forward_getp.\n\t  stream_forward_endp introduced to replace some previous\n\t  setting/manual twiddling of putp by daemons.\n\t* lib/stream.h: Remove putp. Update reference to putp with endp.\n\t  Add stream_forward_endp, which daemons were doing manually.\n\t  Rename stream_forward to stream_forward_getp.\n\t  lib/stream.c: Remove/update references to putp.\n\t  introduce stream_forward_endp.\n"
    },
    {
      "commit": "083ee9d9cdbf72a452b9af96e62d0625ea712cd9",
      "tree": "25843a21e1d0ed9dd9125a8ed117e895b51bd432",
      "parents": [
        "8cfde37647b40640667ffb38c32b575da1476586"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 09 15:35:50 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 09 15:35:50 2005 +0000"
      },
      "message": "2005-02-09 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the\n\t  error message.\n"
    },
    {
      "commit": "8cfde37647b40640667ffb38c32b575da1476586",
      "tree": "c62e41ee92ce48b0887047f1028138953b480862",
      "parents": [
        "548e6f7d58a08e28132936431bba75428412857f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:59:16 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:59:16 2005 +0000"
      },
      "message": "2005-02-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: Reduce structure padding by putting new u_char\n\t  field multicast_memberships in a better spot (grouped with\n\t  other u_char fields type and state).\n"
    },
    {
      "commit": "548e6f7d58a08e28132936431bba75428412857f",
      "tree": "4d168f4ea30a0fedc496ec158ac6fb58b2cd14cd",
      "parents": [
        "ba6454ec1fd1ca7266b10eba07d016becb22db74"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:57:25 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:57:25 2005 +0000"
      },
      "message": "2005-02-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: Change macro definitions SET_FLAG and UNSET_FLAG\n\t  to use compound assignment operators (aesthetic change).\n"
    },
    {
      "commit": "ba6454ec1fd1ca7266b10eba07d016becb22db74",
      "tree": "1ee3f882924db44883e1023e5081741e10d86b3a",
      "parents": [
        "3a9eb091494f7afb8ce6bf82b8e1a20bb2a8f10f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:37:30 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Feb 08 15:37:30 2005 +0000"
      },
      "message": "2005-02-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: Improve passive_interface comment.  Add new\n\t  multicast_memberships bitmask to struct ospf_interface to track\n\t  active multicast subscriptions.  Declare new function\n\t  ospf_if_set_multicast.\n\t* ospf_interface.c: (ospf_if_set_multicast) New function to configure\n\t  multicast memberships properly based on the current\n\t  multicast_memberships status and the current values of the\n\t  ospf_interface state, type, and passive_interface status.\n\t  (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is\n\t  now handled by ism_change_state\u0027s call to ospf_if_set_multicast).\n\t  (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now\n\t  handled by ism_change_state).\n\t* ospf_ism.c: (ospf_dr_election) Remove logic to join or leave\n\t  the DRouters multicast group (now handled by ism_change_state\u0027s call\n\t  to ospf_if_set_multicast).\n\t  (ism_change_state) Add call to ospf_if_set_multicast to change\n\t  multicast memberships as necessary to reflect the new interface state.\n\t* ospf_packet.c: (ospf_hello) When a Hello packet is received on a\n\t  passive interface: 1. Increase the severity of the error message\n\t  from LOG_INFO to LOG_WARNING; 2. Add more information to the error\n\t  message (packet destination address and interface address);\n\t  and 3. If the packet was sent to ospf-all-routers, then try\n\t  to fix the multicast group memberships.\n\t  (ospf_read) When a packet is received on an interface whose state\n\t  is ISM_Down, enhance the warning message to show the packet\n\t  destination address, and try to update/fix the multicast group\n\t  memberships if the packet was sent to a multicast address.\n\t  When a packet is received for ospf-designated-routers, but the\n\t  current interface state is not DR or BDR, then increase the\n\t  severity level of the error message from LOG_INFO to LOG_WARNING,\n\t  and try to fix the multicast group memberships.\n\t* ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for\n\t  any ospf interface that may have changed from active to passive.\n\t  (no_ospf_passive_interface) Call ospf_if_set_multicast for\n\t  any ospf interface that may have changed from passive to active.\n\t  (show_ip_ospf_interface_sub) Show multicast group memberships.\n"
    },
    {
      "commit": "3a9eb091494f7afb8ce6bf82b8e1a20bb2a8f10f",
      "tree": "82408688827d3dbae81b240aa1da60b05201fea0",
      "parents": [
        "b14ee00b7f23f216b5f159e88de915b8755b97d6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 08 11:29:41 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 08 11:29:41 2005 +0000"
      },
      "message": "2005-02-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: (various) Remove unneeded stream_set_putp abuse.\n"
    },
    {
      "commit": "b14ee00b7f23f216b5f159e88de915b8755b97d6",
      "tree": "9ca5e20d7ddb00d1e2c40f3ed0f2a68c3b0ba876",
      "parents": [
        "c4c7d0c48b1219d7ed9ed1377cea1be239c45d5d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Feb 04 23:42:41 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Feb 04 23:42:41 2005 +0000"
      },
      "message": "2005-02-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ripd.c: Untangle the construction of RIP auth data.\n\t  (rip_auth_prepare_str_send) new helper function, prepare\n\t  correct key string.\n\t  (rip_auth_simple_write) new helper, write out the\n\t  rip simple password auth psuedo-RTE.\n\t  (rip_auth_md5_ah_write) new helper, write out the\n\t  MD5 auth-header psuedo-RTE.\n\t  (rip_auth_header_write) new helper, write out correct\n\t  auth header data / psuedo-RTE.\n\t  (rip_auth_md5_set) rip out the memmove and writing of the\n\t  auth header psuedo-RTE. So that all that is left is to\n\t  write the trailing auth digest, and update digest offset\n\t  field in the original header.\n\t  (rip_write_rte) rip out writing of RIP header, writing of\n\t  simple auth data psuedo-RTE. Make it do what its name suggests,\n\t  write out actual RTEs.\n\t  (rip_output_process) remove the incorrect additional decrements\n\t  of rtemax. Prepare the auth_str, which simple or MD5 auth will\n\t  need. Move write out of RIP header and auth data to inside the\n\t  loop. Adjust paramaters as required.\n"
    },
    {
      "commit": "c4c7d0c48b1219d7ed9ed1377cea1be239c45d5d",
      "tree": "2dda4470cf7a5b0a5277edc06484f0065ef7bcc1",
      "parents": [
        "c70257d0afa4df7c838dc7c8f5948baca5f12657"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 19:22:05 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 19:22:05 2005 +0000"
      },
      "message": "2005-02-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.c: (zlog_signal,zlog_backtrace_sigsafe) Eliminate use of fileno()\n\t  since it is not async-signal-safe.\n\t  (_zlog_assert_failed) Rewrite crashlog logic more compactly.\n\t  (zlog_set_file,zlog_reset_file,zlog_rotate) Update logfile_fd\n\t  for use in signal handler.\n"
    },
    {
      "commit": "c70257d0afa4df7c838dc7c8f5948baca5f12657",
      "tree": "fb5c1333bd7cf222c3c7054b97c0c6cecc350ec9",
      "parents": [
        "1e2213541bbda26c49667b699a333d87bcc0f2e6"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 17:12:01 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 17:12:01 2005 +0000"
      },
      "message": "2005-02-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* basic.texi: Add note about last-resort crash logging to /var/tmp\n\t  when file logging is not configured.\n\t* quagga.info: updated build of autogenerated file\n"
    },
    {
      "commit": "1e2213541bbda26c49667b699a333d87bcc0f2e6",
      "tree": "23ed10aeadeb22a4f3e40c794a829604cc25cb7e",
      "parents": [
        "847947f20b152f0b64057a7115e118b44d238b5c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 16:42:40 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 03 16:42:40 2005 +0000"
      },
      "message": "2005-02-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.c: (syslog_sigsafe) Reduce scope of syslog_fd: it is accessed\n\t  inside this function only.\n\t  (open_crashlog) New function to open /var/tmp/quagga.\u003cdaemon\u003e.crashlog\n\t  with flags O_WRONLY|O_CREAT|O_EXCL to save some crash info.\n\t  (zlog_signal,_zlog_assert_failed) Increase logging priority from\n\t  LOG_ERR to LOG_CRIT.  If no file logging is configured, try to use\n\t  open_crashlog to create a crash logfile.\n\t  (zlog_backtrace_sigsafe) If a crashlog file descriptor is open,\n\t  dump a backtrace to that file.\n"
    },
    {
      "commit": "847947f20b152f0b64057a7115e118b44d238b5c",
      "tree": "68f726878177a594e258ce5312b7937951d3b421",
      "parents": [
        "dd4c593fb88b7c6cf5f27aa8a8286644743ed58a"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 02 18:38:48 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 02 18:38:48 2005 +0000"
      },
      "message": "2005-02-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down,\n\t  not for event ISM_InterfaceDown.  And improve the message by\n\t  adding the interface flags.\n\t* if.h: Declare if_flag_dump.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "dd4c593fb88b7c6cf5f27aa8a8286644743ed58a",
      "tree": "962cd10bb5bf92a42285f3bb88cbb3ef3f33f595",
      "parents": [
        "c1643bb7d7de6c030a61983be8e0925160a9e427"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 17:15:34 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 17:15:34 2005 +0000"
      },
      "message": "\t* bgp_vty.c: Deprecate \"neighbor transparent-as\" and \"neighbor\n\t  transparent-nexthop\" commands.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "c1643bb7d7de6c030a61983be8e0925160a9e427",
      "tree": "4be029bfbc3ec5d53996966824a5a88c5c2a0395",
      "parents": [
        "fee6e4e4547783b915838f6868d6cd694f6cee21"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:43:17 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:43:17 2005 +0000"
      },
      "message": "\t* bgp_routemap.c: New route-map command - \"match ip route-source\".\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "fee6e4e4547783b915838f6868d6cd694f6cee21",
      "tree": "2fb39322113433ab2d5e42042c1b9e397779b6c1",
      "parents": [
        "6ffd2079596c232856dda0d56fddd9610e8d61fe"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:29:31 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:29:31 2005 +0000"
      },
      "message": "\t* bgp_clist.[ch], bgp_route.c, bgp_routemap.c, bgp_vty.c:\n\t  community-list cleanup.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "6ffd2079596c232856dda0d56fddd9610e8d61fe",
      "tree": "d5c4906cbfb4af98a8c73be667a9ab2369a6c64b",
      "parents": [
        "93406d87e68a0e9cf5ce0240461395cd59c143b6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:50:11 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:50:11 2005 +0000"
      },
      "message": "\t* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: \"enforce-multihop\"\n\t  -\u003e \"disable-connected-check\".\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "93406d87e68a0e9cf5ce0240461395cd59c143b6",
      "tree": "b1cb2bae2eca7c5206565f73169cf43bf8cf892d",
      "parents": [
        "c9502438e822199370fe87100c725e1092e943c1"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:40:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:40:33 2005 +0000"
      },
      "message": "\t* bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,\n\t  bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. \"bgp\n\t  graceful-restart\" commands added. Show numbers of individual\n\t  messages in \"show ip bgp neighbor\" command. Final pieces of graceful\n\t  restart.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "c9502438e822199370fe87100c725e1092e943c1",
      "tree": "bfeb6babd5d0ba6037ab2aa3a544b2d855e4e8d9",
      "parents": [
        "3d515fd9af9f126667a9c2da9c2f40c4c37c28df"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 22:01:48 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 22:01:48 2005 +0000"
      },
      "message": "\t* bgp_open.c, bgp_packet.c, bgp_vty.c, bgpd.[ch]: Remove \"no neighbor\n\t  capability route-refresh\" commands. Route refresh capability is sent\n\t  anyway now. Preserve dummy deprecated commands.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "3d515fd9af9f126667a9c2da9c2f40c4c37c28df",
      "tree": "c107224556ed7678d7a5afc42c19742948cda477",
      "parents": [
        "0a486e5fcb1b8dac7d8b4cf6ed93e82b8b72fed6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 21:30:04 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 21:30:04 2005 +0000"
      },
      "message": "\t* bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old\n\t  draft - ie. \"neighbor version 4-\" commands. Preserve dummy \"neighbor\n\t  version\" command as deprecated.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "0a486e5fcb1b8dac7d8b4cf6ed93e82b8b72fed6",
      "tree": "f63429ed7767e227457cb48196d82f12e4fcaad6",
      "parents": [
        "f418446bb767d79438e2df689c5bf9563c54b317"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:57:17 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:57:17 2005 +0000"
      },
      "message": "\t* bgpd.[ch], bgp_vty.c, bgp_route.c: \"Restart session after\n\t  maximum-prefix limit\" feature support.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "f418446bb767d79438e2df689c5bf9563c54b317",
      "tree": "a1c7322c8b54e46a09bf2f402537277fff59c1c3",
      "parents": [
        "6a52d0d155fc8b892e30cdb5e3fbe4c2779bd4cd"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:13:16 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:13:16 2005 +0000"
      },
      "message": "        * bgp_nexthop.c: Improve debug.\n        * bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()\n          function.\n        * bgp_packet.c: MP AFI_IP update and withdraw parsing.\n        * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()\n          is better place to log about peer status change than bgp_event().\n          Log in bgp_connect_success().\n        * bgp_vty.c: Fix typo in comment.\n        * bgp_attr.c: Better log about unknown attribute.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "6a52d0d155fc8b892e30cdb5e3fbe4c2779bd4cd",
      "tree": "d4bfab8286e497e30c5ebfed099c317a9397c623",
      "parents": [
        "656b4eeec1fb30402ad2001976c05c6f44fafb34"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 18:49:28 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 18:49:28 2005 +0000"
      },
      "message": "2005-01-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* daemon.c: (daemon) Replace perror with zlog_err.\n\t* vty.c: (vty_serv_un) Replace perror with zlog_err.\n\t* ripd.c: (rip_create_socket) Replace perror with zlog_err.\n\t* ioctl.c: (if_ioctl,if_ioctl_ipv6,if_get_flags) Replace perror with\n\t  zlog_err.\n\t* ioctl_solaris.c: (if_ioctl,if_ioctl_ipv6) Replace perror with\n\t  zlog_err.\n"
    },
    {
      "commit": "656b4eeec1fb30402ad2001976c05c6f44fafb34",
      "tree": "6455936be51648bd711d9caf25af49acdc35e604",
      "parents": [
        "798534576c2525476141628ac14ecc83fd775a5a"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 18:08:12 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 18:08:12 2005 +0000"
      },
      "message": "2005-01-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ripng_interface.c: (ripng_multicast_join) Save errno before calling\n\t  ripngd_privs.change.\n"
    },
    {
      "commit": "798534576c2525476141628ac14ecc83fd775a5a",
      "tree": "c5166d696b314ee41961198340b61dd1062af3ec",
      "parents": [
        "0b7d97d293af645d98bc9b196b228d674b2aa344"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 17:40:29 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 17:40:29 2005 +0000"
      },
      "message": "2005-01-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ripd.c: (rip_create_socket) Save errno before calling\n\t  ripd_privs.change.\n"
    },
    {
      "commit": "0b7d97d293af645d98bc9b196b228d674b2aa344",
      "tree": "ecbd51182fed5647180671b9f2b9cd12f841b54b",
      "parents": [
        "3b8b1855038afde448993e5a56955e9b7a4d99c2"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 17:24:02 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Jan 30 17:24:02 2005 +0000"
      },
      "message": "2005-01-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_network.c: (ospf_sock_init) Save errno before calling\n\t  ospfd_privs.change.\n"
    },
    {
      "commit": "3b8b1855038afde448993e5a56955e9b7a4d99c2",
      "tree": "5378ad7cc9d2fdb42558044833036e347ca1277e",
      "parents": [
        "4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 18:19:13 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 18:19:13 2005 +0000"
      },
      "message": "2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* buffer.h: Fix comment on buffer_getstr to reflect that it now\n\t  uses XMALLOC.\n\t* buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.\n\t* filter.c: (access_list_remark,ipv6_access_list_remark) Use\n\t  argv_concat instead of buffer_getstr.\n\t* if.c: (interface_desc) Use argv_concat instead of buffer_getstr.\n\t* plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)\n\t  Use argv_concat instead of buffer_getstr.\n\t* bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead\n\t  of buffer_getstr.\n\t* bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string\n\t  returned by buffer_getstr.\n\t  (bgp_show_community) Must use XFREE instead of free on string\n\t  returned by buffer_getstr.\n\t* bgp_routemap.c: (set_community) Must use XFREE instead of free\n\t  on string returned by buffer_getstr.\n\t* bgp_vty.c: (neighbor_description) Use argv_concat instead of\n\t  buffer_getstr.\n"
    },
    {
      "commit": "4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a",
      "tree": "5755c13aeffb151d56a886868e623d186ca9a0a0",
      "parents": [
        "4be019d5530e21c9e54e41e46a57ab071b9b11ae"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 17:07:40 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 17:07:40 2005 +0000"
      },
      "message": "2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* if_ioctl_solaris.c: (interface_list_ioctl) Save errno before calling\n\t  zserv_privs.change.\n\t* ioctl{,_solaris}.c: (if_ioctl,if_ioctl_ipv6) Save errno before calling\n\t  zserv_privs.change.\n\t* ipforward_solaris.c: (solaris_nd) Save errno before calling\n\t  zserv_privs.change.\n\t* irdp_main.c: (irdp_sock_init) Save errno before calling\n\t  zserv_privs.change.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "4be019d5530e21c9e54e41e46a57ab071b9b11ae",
      "tree": "4a7b579d0fd9467b097e3190b2d7204dcd9a0f2b",
      "parents": [
        "c3eab8714368569d25f6dc87f6620528e0d7a118"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 16:12:41 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 16:12:41 2005 +0000"
      },
      "message": "2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* rt_netlink.c: (netlink_socket,netlink_request,netlink_parse_info,\n\t  netlink_talk) Save errno before calling zserv_privs.change.\n\n\t  [backport candidate]\n"
    },
    {
      "commit": "c3eab8714368569d25f6dc87f6620528e0d7a118",
      "tree": "d6366cef5ff108f6628713e3573eeb72b81847bf",
      "parents": [
        "b1aa147d09b0e06992cdb39ed11b46df0a3b984f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 15:52:07 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 15:52:07 2005 +0000"
      },
      "message": "2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_packet_add) If oi-\u003eobuf is NULL, print\n\tan error message and return.\n\t(ospf_read) If the interface state is ISM_InterfaceDown, issue\n\ta warning message and ignore the packet.\n"
    },
    {
      "commit": "b1aa147d09b0e06992cdb39ed11b46df0a3b984f",
      "tree": "786c03a44c77ebedf98616053157fdbfa5d4135a",
      "parents": [
        "afb8b6055c5e54be762e220cf9b7b65a22266733"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 21:11:46 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 21:11:46 2005 +0000"
      },
      "message": "2005-01-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.h: Remove obsolete VTYSH_INDEX_* defines.  Fix many prototypes\n\t  for functions with no arguments (must specify argument list as void).\n\t* vtysh.c: Enhance vtysh_client array to include the daemon\u0027s name\n\t  and bitmask and socket path (in addition to the fd).  This allows\n\t  us to use loop constructs for various operations that need to be\n\t  applied to all client daemons, and it facilitates better error\n\t  messages.  Also fix some prototypes with void argument lists.\n\t  (vclient_close) Issue a warning message indicating which daemon\u0027s\n\t  socket is being closed.\n\t  (vtysh_execute_func,vtysh_config_from_file) Use a for loop to\n\t  call vtysh_client_execute.\n\t  (vtysh_write_terminal,write_config_integrated) Use a for loop to\n\t  call vtysh_client_config.\n\t  (vtysh_write_memory) Use a for loop to call vtysh_client_execute.\n\t  (vtysh_show_daemons) Use a for loop.\n\t  (vtysh_connect) The struct vtysh_client is now statically initialized,\n\t  so do not initialize it here.\n\t  (vtysh_connect_all) Use a for loop to call vtysh_connect.  Set\n\t  ripd_client pointer for use in vtysh_exit_ripd_only.\n"
    },
    {
      "commit": "afb8b6055c5e54be762e220cf9b7b65a22266733",
      "tree": "8434d1316d56805368e2ce2dc13a095fdb3a8c91",
      "parents": [
        "f6834d4c4031276361465dd19ef1918e239566c8"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 20:41:07 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 20:41:07 2005 +0000"
      },
      "message": "2005-01-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* lib/buffer.h: Document behavior of buffer_getstr function.\n\t* lib/buffer.c: (buffer_getstr) Fix bug: must handle case where\n\t  the string extends beyond the head struct buffer_data.\n"
    },
    {
      "commit": "f6834d4c4031276361465dd19ef1918e239566c8",
      "tree": "67e9eb194ce4cef74654a888c0e165febc0010d2",
      "parents": [
        "8bfb0cba005b37c7b125fe2a34f1819e85d9f59c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 20:28:35 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 20:28:35 2005 +0000"
      },
      "message": "2005-01-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* lib/command.h: Document behavior of argv_concat function.\n\t* lib/command.c: (argv_concat) Calculate total string length first so\n\t  we can call malloc just once (instead of realloc\u0027ing to add each\n\t  string element).\n\t  (do_echo,config_logmsg) Allow for possible NULL return value from\n\t  argv_concat.\n"
    },
    {
      "commit": "8bfb0cba005b37c7b125fe2a34f1819e85d9f59c",
      "tree": "d5e5df2e4000e933be0dade91fe3c75d13e5edbd",
      "parents": [
        "f83d18dce1c13f089cbd09262b17444da659347a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 25 01:19:28 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 25 01:19:28 2005 +0000"
      },
      "message": "2005-01-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf6_asbr.c: Add \"hsls\" to the zroute_name const char array.\n"
    },
    {
      "commit": "f83d18dce1c13f089cbd09262b17444da659347a",
      "tree": "ca2eff8b393a9b88181103de04443315c8242a84",
      "parents": [
        "6d69429c1bff7291bac52a05234c12434f152a94"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 24 10:24:31 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 24 10:24:31 2005 +0000"
      },
      "message": "2005-01-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* configure.ac: Bump version to 0.99.0\n\t* doc/quagga.info: Version bump (autogenerated)\n"
    },
    {
      "commit": "6d69429c1bff7291bac52a05234c12434f152a94",
      "tree": "e37c98526a257a907e23986e6ada290bc39f09c9",
      "parents": [
        "c15cb24241277db9fb4102ddc712dc3297f16d1f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 24 09:29:42 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 24 09:29:42 2005 +0000"
      },
      "message": "\t* bgp_route.c: Fix showstopper bug. New route must be selected also\n\t  if old one is flaged as BGP_INFO_ATTR_CHANGED.\n"
    },
    {
      "commit": "c15cb24241277db9fb4102ddc712dc3297f16d1f",
      "tree": "b7e9eb47f5b8953c82b55732a9428813a238c5df",
      "parents": [
        "13bfca7a1059a73a836f4813170f296a82266211"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 24 09:05:27 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 24 09:05:27 2005 +0000"
      },
      "message": "2005-01-24 Martin Pot \u003cmpot at martybugs.net\u003e\n\n\t* zebra/rt_netlink.c: ignore wireless newlink netlink messages.\n"
    },
    {
      "commit": "13bfca7a1059a73a836f4813170f296a82266211",
      "tree": "b22e29cb43472038769502685209badf3302e7dd",
      "parents": [
        "90b4214727b4e109a87bc99f9dfb4686e0c0a8b2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 21:42:25 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 21:42:25 2005 +0000"
      },
      "message": "        * lib/command.[ch]: Make node_parent() function nonstatic. vtyh.c will\n          use it as well.\n        * vtysh/vtysh.c: Implement walkup in node tree for vtysh as it already\n          works in vty.\n"
    },
    {
      "commit": "90b4214727b4e109a87bc99f9dfb4686e0c0a8b2",
      "tree": "f9a9380af72953526994840b5593811bea62745a",
      "parents": [
        "31364274ddd1da6b77dd99e1d5d164b5c643732b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 19:24:46 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 19:24:46 2005 +0000"
      },
      "message": "\t* vtysh.conf.sample: Fix typo \"integrated-vtysh-conf\" -\u003e\n\t  \"integrated-vtysh-config\".\n"
    },
    {
      "commit": "31364274ddd1da6b77dd99e1d5d164b5c643732b",
      "tree": "4f0ae083583fb605508ef981e96fb230d7110c41",
      "parents": [
        "92365889d1f856f323af452bad76f54c15ccdf45"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 18 22:18:59 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 18 22:18:59 2005 +0000"
      },
      "message": "2005-01-18 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.h: Test for SA_SIGINFO to see whether zlog_signal takes final\n\t  two args (siginfo and program_counter).\n\t* log.c: (hex_append) Include this function only if SA_SIGINFO or\n\t  HAVE_GLIBC_BACKTRACE is defined.\n\t  (zlog_signal) Final two args (siginfo and program_counter) now\n\t  depend on whether SA_SIGINFO is defined on this platform.\n\t* sigevent.c: (program_counter) Do not include this function if\n\t  SA_SIGINFO is not defined on this platform.\n\t  (exit_handler,core_handler) Test for SA_SIGINFO to decide whether\n\t  2nd \u0026 3rd arguments are present and to decide how to invoke\n\t  zlog_signal.\n\t  (trap_default_signals) Test for SA_SIGINFO and invoke sigaction\n\t  appropriately.\n"
    },
    {
      "commit": "92365889d1f856f323af452bad76f54c15ccdf45",
      "tree": "b2f01cd133b1f185d5d3e3c7f088310ff9aff621",
      "parents": [
        "6f2c27af2189794187e4c30ee70fcb9cc6cb1a3b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:53:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:53:33 2005 +0000"
      },
      "message": "\t* *.c: Changed many functions to static. Some commented out\n\t  functions and some tiny related fixes. No functional changes.\n"
    },
    {
      "commit": "6f2c27af2189794187e4c30ee70fcb9cc6cb1a3b",
      "tree": "43e2830ca4d832b3d68bb9f5ddaa6cf9328c0a14",
      "parents": [
        "239c26fdeae4dbccb43da359f9ea034041440831"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:44:35 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:44:35 2005 +0000"
      },
      "message": "\t* interface.c: Better statistics output in \"show interface\" command in\n\t  case of /proc being used. I don\u0027t have others to test with at the\n\t  moment.\n"
    },
    {
      "commit": "239c26fdeae4dbccb43da359f9ea034041440831",
      "tree": "aefdb215d2e9ad88afe04d105c07cb9d8550bf96",
      "parents": [
        "f127165de02a66934082f23810fab37d7efbce8b"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Jan 17 15:22:28 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Jan 17 15:22:28 2005 +0000"
      },
      "message": "2005-01-17 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.h: Change prototype for zlog_backtrace_sigsafe to take additional\n\t  program_counter argument.\n\t* log.c: (zlog_backtrace_sigsafe) Add additional program_counter\n\t  argument.  If it is non-NULL, use backtrace_symbols_fd to resolve\n\t  the address.\n\t  (zlog_signal) Call zlog_backtrace_sigsafe with additional\n\t  program_counter argument.\n\n\t[pullup candidate]\n"
    },
    {
      "commit": "f127165de02a66934082f23810fab37d7efbce8b",
      "tree": "aed5017ae77c2927b48bc5950c928782ef9c8d80",
      "parents": [
        "583d800c11922018af02420a758f974be691065f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 17 11:04:32 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 17 11:04:32 2005 +0000"
      },
      "message": "\t* bgp_route.c: Clear peer\u0027s routing table regardless whether it\u0027s\n\t  configured or not. Being not configured is even better reason to\n\t  do it.\n"
    },
    {
      "commit": "583d800c11922018af02420a758f974be691065f",
      "tree": "57c494d56a6316cdb3ca0770e23168845336749d",
      "parents": [
        "87d683b071dc7abfb30b666960ec480e64e19ce4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:34:02 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:34:02 2005 +0000"
      },
      "message": "\t* main.c: With --nl-bufsize argument is required.\n\n\t[pullup candidate]\n"
    },
    {
      "commit": "87d683b071dc7abfb30b666960ec480e64e19ce4",
      "tree": "ec56b3ce34f6871c4b3687681df2b97aa38da57a",
      "parents": [
        "b854038bd03e6c54b46d35bf4e40d0f39e30dfde"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:31:54 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:31:54 2005 +0000"
      },
      "message": "\t* command.[ch], vty.c: cmd_execute_command() function must not attempt\n\t  to walk up in the node tree if called from vtysh. Different daemons\n\t  might have commands with same syntax in different nodes (for example\n\t  \"router-id x.x.x.x\" commands in zebra/ospfd/ospf6d daemons).\n\n\t* vtysh.c: Reflect changes in lib. cmd_execute_command() should know\n\t  now that it\u0027s called from vtysh and must not attempt to walk up in\n\t  the node tree.\n\n\t[pullup candidate]\n"
    },
    {
      "commit": "b854038bd03e6c54b46d35bf4e40d0f39e30dfde",
      "tree": "67477de86881b5296083e184a6d136812d6f4a40",
      "parents": [
        "cb585b65d1a513fd62449cc031e273245a8fd6c0"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 15 17:26:48 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 15 17:26:48 2005 +0000"
      },
      "message": "2005-01-15 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* redhat/quagga.spec.in: Fix postun script to avoid misleading error\n\t  message saying the postun scriptlet failed when watchquagga\n\t  is not running.\n\n          (pullup candidate)\n"
    },
    {
      "commit": "cb585b65d1a513fd62449cc031e273245a8fd6c0",
      "tree": "076602b4fae8d47e3b82c353898de5260ac91007",
      "parents": [
        "f867d32c4a0d6a18c5f7c042b9dd5798dce93e10"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 14 17:09:38 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 14 17:09:38 2005 +0000"
      },
      "message": "2005-01-14 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* command.c (print_version): Do not bother even to examine host.name,\n\t  since it is always NULL when this function is called from main.\n"
    },
    {
      "commit": "f867d32c4a0d6a18c5f7c042b9dd5798dce93e10",
      "tree": "03ae33b1e867d97d74afbe80b8a840bfbdfb5868",
      "parents": [
        "24e3287986f17b87e9e424f05c83ec4876ec9b24"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jan 14 15:47:33 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jan 14 15:47:33 2005 +0000"
      },
      "message": "2005-01-14  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n        * command.c (print_version): Don\u0027t print host.name if it is NULL.\n        Fixes segfault on Solaris reported by Goetz von Escher \u003cgoetz@open.ch\u003e\n\n(pullup candidate)\n"
    },
    {
      "commit": "24e3287986f17b87e9e424f05c83ec4876ec9b24",
      "tree": "323f8085eacd20ee029227957e32c02712bd46f4",
      "parents": [
        "40abf2392ba9f14935dab556f43e674cb5c47cf3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 12 23:49:05 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 12 23:49:05 2005 +0000"
      },
      "message": "Ignore \u003cdist tarball\u003e.asc - i always seem to have one hanging around from\nlast release..\n"
    },
    {
      "commit": "40abf2392ba9f14935dab556f43e674cb5c47cf3",
      "tree": "3c5ff5794940f408b411c5d0204e27dac1014378",
      "parents": [
        "6cf9df088e10baefe04139897f8745a42ea0c772"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 17:27:27 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 17:27:27 2005 +0000"
      },
      "message": "2005-01-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Test for header file \u003cucontext.h\u003e (for use in\n\t  signal processing).\n\t* sigevent.c: (trap_default_signals) Use the SA_SIGINFO flag to\n\t  pass additional siginfo_t and ucontext_t arguments to core_handler\n\t  and exit_handler.\n\t  (core_handler,exit_handler) Now invoked with 3 arguments (using\n\t  SA_SIGINFO).  Pass additional info to zlog_signal.\n\t  (program_counter) New function to find program counter in ucontext_t,\n\t  needs to be enhanced to support more platforms (currently works only\n\t  on Linux/x86).\n\t* log.h: Change the zlog_signal prototype to add new arguments\n\t  siginfo_t * and program_counter.\n\t* log.c: (zlog_signal) Add new arguments siginfo and program_counter.\n\t  Include si_addr and program counter (if non-NULL) in message.\n\t  And remove #ifdef HAVE_GLIBC_BACKTRACE around hex_append, since\n\t  that is now used to render the si_addr and PC pointers.\n"
    },
    {
      "commit": "6cf9df088e10baefe04139897f8745a42ea0c772",
      "tree": "fc5e4ab015ccfc944f445399dc1946bf94ac0992",
      "parents": [
        "fc43ecc7ba23ddce46b9ec7732ff08cd9e5bcc1b"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:52:55 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:52:55 2005 +0000"
      },
      "message": "2005-01-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: If configure is invoked with --enable-snmp, but\n\t  the configure script is unable to find SNMP support on the platform,\n\t  then configure should give an error message and exit.\n"
    },
    {
      "commit": "fc43ecc7ba23ddce46b9ec7732ff08cd9e5bcc1b",
      "tree": "ffcff2f1145b8c2f737a4239ed22eddcf4a0a0b9",
      "parents": [
        "a8a8ddcdd6387466bfb929fe0e9c96003d9509bd"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:41:33 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:41:33 2005 +0000"
      },
      "message": "2005-01-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* redhat/quagga.spec.in: Pass --enable-gcc-rdynamic to configure\n\t  to get gcc to link with -rdynamic for better backtraces.\n\t  When the rpm is upgraded, the restart logic now works as follows:\n\t  1. stop watchquagga; 2. stop all routing daemons; 3. restart zebra\n\t  if it was running; 4. start all routing daemons that were running;\n\t  and 5. start watchquagga if it was running.\n"
    },
    {
      "commit": "a8a8ddcdd6387466bfb929fe0e9c96003d9509bd",
      "tree": "4ceb281a09fa165580bc58b4ae8d7a1d794794ab",
      "parents": [
        "e22f5516b3e1431b7716632b76e257b84e7e0ff4"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:24:51 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:24:51 2005 +0000"
      },
      "message": "2005-01-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* watchquagga.c: (run_job) Fix bug: delay.tv_sec was being used\n\t  without having been initialized when the \"force\" argument was true.\n\t  (try_restart) When phased restart is stopping the routing daemons,\n\t  it should tell run_job to update the restart interval.\n\t  (phase_check) In final step of phased restart when the routing\n\t  daemons are being started again, tell run_job not to update\n\t  the restart interval (this is now done when the daemons are\n\t  stopped).\n"
    },
    {
      "commit": "e22f5516b3e1431b7716632b76e257b84e7e0ff4",
      "tree": "16ee1046948d1b8099c476a2450bdd605eca03e5",
      "parents": [
        "afc1e2ddf29fffe996f44d0f8eca99522e75d0ba"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:18:17 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Jan 12 16:18:17 2005 +0000"
      },
      "message": "2005-01-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: If not C99 and no va_copy macro available, fall back to\n\t  memcpy (solves a build problem on FreeBSD 4.x).\n"
    },
    {
      "commit": "afc1e2ddf29fffe996f44d0f8eca99522e75d0ba",
      "tree": "3a034f391773e4ddd031678eac96b54fdcc70794",
      "parents": [
        "86f1fd9615391485baf37afe1055b7d8bf64b4a8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 10 22:31:16 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 10 22:31:16 2005 +0000"
      },
      "message": "2005-01-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* texinfo.tex: Updated to a version which understands @{ and @}\n\t* vtysh.texi: Add node name for @section\n\t* quagga.info: updated build of autogenerated file\n"
    },
    {
      "commit": "86f1fd9615391485baf37afe1055b7d8bf64b4a8",
      "tree": "3a18671a9a94e952fabcb5ecca70c0bc80bcb523",
      "parents": [
        "220d0c0ea3a3aab81836a6aad4137aa40270512d"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Jan 10 14:20:43 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Jan 10 14:20:43 2005 +0000"
      },
      "message": "2005-01-10  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n        * ospf_packet.h: Remove commented out definition of\n        OSPF_MAX_PACKET; neither it or the uncommented one are used any more.\n\n        * ospf_packet.c (ospf_make_ls_upd): Leave room for authentication\n        when deciding if an update will fit.\n        (ospf_packet_authspace): Factor out calculation of size required\n        for authentication.\n        (ospf_make_db_desc): Use ospf_max_packet, not OSPF_MAX_PACKET.\n        Don\u0027t confuse readers that there is a macro.\n"
    },
    {
      "commit": "220d0c0ea3a3aab81836a6aad4137aa40270512d",
      "tree": "b696448a7f7e9eb4c97a8a25f7ea2a8df605773f",
      "parents": [
        "1f3585ea3da831f592bc0290a1b969dc002c6ceb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jan 07 14:17:39 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jan 07 14:17:39 2005 +0000"
      },
      "message": "2005-01-07 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* configure.ac: Bump version to 0.98.0\n\t* doc/quagga.info: Version bump (autogenerated)\n"
    },
    {
      "commit": "1f3585ea3da831f592bc0290a1b969dc002c6ceb",
      "tree": "e2a34e7bf4d7ad0afdb8f909551b3029be3cf396",
      "parents": [
        "865b852cbf82f2da6cd3908e76176ceb6ad33d26"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 11:58:31 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 11:58:31 2005 +0000"
      },
      "message": "2005-01-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* configure.ac: Bump version to 0.97.5\n\t* doc/quagga.info: autogenerated, version bump.\n"
    },
    {
      "commit": "865b852cbf82f2da6cd3908e76176ceb6ad33d26",
      "tree": "d34f9664feb19e614e3e64609e1c3a9329e8f2f8",
      "parents": [
        "a24a7e1b9e145d4c855d0aa4d919a79f598c645b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:30:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:30:35 2005 +0000"
      },
      "message": "2005-01-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK\n          for now, as we dont actually deal with with resending.... See\n          bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).\n\t* kernel_socket.c: (routing_socket) ditto.\n"
    },
    {
      "commit": "a24a7e1b9e145d4c855d0aa4d919a79f598c645b",
      "tree": "02236b0424330cce2c902a9a971829a3610bac25",
      "parents": [
        "6c20046fd7494f9f529dac1b6f79da51b6efa44d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:14:13 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:14:13 2005 +0000"
      },
      "message": "2005-01-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_packet.c: (bgp_write) set socket to nonblock while writing\n          this should be generalised. See bugzilla #102. Fix supplied by\n\t  wawa@yandex-team.ru (Vladimir Ivanov).\n"
    },
    {
      "commit": "6c20046fd7494f9f529dac1b6f79da51b6efa44d",
      "tree": "749f886f9a365a4591305de088b0cf83c3a91a5b",
      "parents": [
        "b99760ab51abf8c4c9a1f89dab0c1630a6768ff7"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jan 04 17:02:48 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jan 04 17:02:48 2005 +0000"
      },
      "message": "minor fix to HAVE_BROKEN_CMSG_FIRSTHDR support: use AC_MSG_CHECKING\netc. so configure output shows the choice we made.\n\n(Andrew: please recheck on a buggy system; it configures/compiles fine\non NetBSD.)\n"
    },
    {
      "commit": "b99760ab51abf8c4c9a1f89dab0c1630a6768ff7",
      "tree": "daaf8cabb567c5ff1a01368fa1382d8257b56854",
      "parents": [
        "73a7dea305b146febb8e57176295689d6a900f1d"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "message": "2005-01-04 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Added test for broken CMSG_FIRSTHDR macro\n\t  (relevant for Solaris 8 and unpatched Solaris 9, don\u0027t know\n\t  whether other platforms are affected).\n\t* zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether\n\t  config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined\n\t  by the configure test program).\n\t* sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead\n\t  of CMSG_FIRSTHDR.\n\t* rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR\n\t  instead of CMSG_FIRSTHDR.\n\t* ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.\n\t* ripngd.c: (ripng_recv_packet) Use ZCMSG_FIRSTHDR instead of\n\t  CMSG_FIRSTHDR.\n"
    },
    {
      "commit": "73a7dea305b146febb8e57176295689d6a900f1d",
      "tree": "8cba308a796f0b6bd46c66737a40e3f837996361",
      "parents": [
        "cba8a60639aa83659ce551e91266dcee8408fc23"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 13:20:47 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 13:20:47 2005 +0000"
      },
      "message": "2005-01-04 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* NEWS: Note improved logging facilities.\n"
    },
    {
      "commit": "cba8a60639aa83659ce551e91266dcee8408fc23",
      "tree": "4b1b9a943481b46d07889350f5842e9af726d38e",
      "parents": [
        "cee66491371403453dc1c2a2424683976d22e640"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 02 18:51:01 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 02 18:51:01 2005 +0000"
      },
      "message": "Reverting some int -\u003e unsigned int fixes in command.c for now. Fixes crash\ndescribed in [quagga-dev 2292].\n"
    },
    {
      "commit": "cee66491371403453dc1c2a2424683976d22e640",
      "tree": "763df575b7e5486dd9407056a7f5f35caecfda46",
      "parents": [
        "b1b57e2b835ded16e6615723e10d67ed2e0b9c5e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:12:56 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:12:56 2005 +0000"
      },
      "message": "More cleanup in isisd.\n"
    },
    {
      "commit": "b1b57e2b835ded16e6615723e10d67ed2e0b9c5e",
      "tree": "463abd1febe6c792eb94de5c1bdcabfe9348a859",
      "parents": [
        "39f476f9f63fb084bbd1a4f2eb3a77b7ff1a626a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:02:13 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:02:13 2005 +0000"
      },
      "message": "Move TODO items from isid to the common TODO.\n"
    },
    {
      "commit": "39f476f9f63fb084bbd1a4f2eb3a77b7ff1a626a",
      "tree": "ebeb4f20194ee85dfd25a34d9b11704824f5c877",
      "parents": [
        "1cbc562b0c9f849639e2d95718ad823f6bc7877f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 20:49:21 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 20:49:21 2005 +0000"
      },
      "message": "There is no need to keep this directory.\n"
    },
    {
      "commit": "1cbc562b0c9f849639e2d95718ad823f6bc7877f",
      "tree": "5342d496488c56aeb34ab12f26e5ad2dd9865d92",
      "parents": [
        "3dc56b5bd3fa2aacc427505feaa9cd1366e7ebe8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 10:29:51 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 10:29:51 2005 +0000"
      },
      "message": "Make authentication of SNPs work correctly - ie. conditionally like it is in\nIOS.\n"
    },
    {
      "commit": "3dc56b5bd3fa2aacc427505feaa9cd1366e7ebe8",
      "tree": "a1c9855ec0d2a918f31c444c3d0d4228fedb0f50",
      "parents": [
        "cc49eb5a5f970b7405762d3f8a2def179e0022b4"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 30 15:11:19 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 30 15:11:19 2004 +0000"
      },
      "message": "2004-12-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_network.c: Improve all setsockopt error messages to give detailed\n\t  information on the arguments.\n"
    },
    {
      "commit": "cc49eb5a5f970b7405762d3f8a2def179e0022b4",
      "tree": "dbd4d9278b3c2dad27f1908662fab533568a2504",
      "parents": [
        "17eaa728aae282e373b98a8d193c5c48c24e1a0f"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 30 13:50:32 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 30 13:50:32 2004 +0000"
      },
      "message": "Add comment explaining about limit of 20 joined groups on a socket.\n"
    },
    {
      "commit": "17eaa728aae282e373b98a8d193c5c48c24e1a0f",
      "tree": "a629736bfc2e0a07152a1d539df7f604e576c619",
      "parents": [
        "b87f772abe45b24f3aeefc807d0a2e4344ec0754"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 21:04:48 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 21:04:48 2004 +0000"
      },
      "message": "2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc) Reduce severity of \"Negotiation done\"\n\t  messages from LOG_WARNING to LOG_INFO, since this seems to be\n\t  normal.\n"
    },
    {
      "commit": "b87f772abe45b24f3aeefc807d0a2e4344ec0754",
      "tree": "0a18d319acddbaa7a759e760a460e0751e03ac73",
      "parents": [
        "be21024692560b48a77e691fe31c16bb854376de"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 20:41:26 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 20:41:26 2004 +0000"
      },
      "message": "2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_read) Always look up the interface if\n\t  ospf_recv_packet returns NULL ifp, since some platforms such\n\t  as Solaris 8 appear to support ifindex retrieval but don\u0027t.\n"
    },
    {
      "commit": "be21024692560b48a77e691fe31c16bb854376de",
      "tree": "e94897471606e1f0fc4e0778959ce7c1186d78f0",
      "parents": [
        "b30c5e67a20b1a092faa56fe349171eb1da386b0"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:12:59 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:12:59 2004 +0000"
      },
      "message": "add XXX comment that perhaps we need to recover from short headers.\n"
    },
    {
      "commit": "b30c5e67a20b1a092faa56fe349171eb1da386b0",
      "tree": "9bc23b582e4c159ae41310cf1900b2e42f932af2",
      "parents": [
        "d44debedf53b85c989b72fe7c6924ffc1e7e625b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 20:06:41 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 20:06:41 2004 +0000"
      },
      "message": "Really fix crashes now. Revert isis_circuit_update_params() part of previous\ncommit. Replace all if_is_up() calls with if_is_operative().\n"
    },
    {
      "commit": "d44debedf53b85c989b72fe7c6924ffc1e7e625b",
      "tree": "4c527145158b49674cffb714fb571fd7d9a92b24",
      "parents": [
        "4660687a38034d60296fbc9e82aae772011c407f"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:06:23 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:06:23 2004 +0000"
      },
      "message": "2004-12-29  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_ifindex): Document calling\n\tconvention.  Beef up comments.  Handle the case where the cmsghdr\n\thas a zero controllen, or more specifically when the wanted option\n\tis not present.  This is needed for Solaris 8, and in general for\n\tany platform for which configure finds a method and it can fail.\n\tMark some changes with XXX to be cleaned up post 0.98.\n"
    },
    {
      "commit": "4660687a38034d60296fbc9e82aae772011c407f",
      "tree": "5a0d7caea1ba0958c8f9780da038654ce4f10fed",
      "parents": [
        "1d69fdf645d8434e8e1488f8bf0c73613df09da9"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 19:34:22 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 19:34:22 2004 +0000"
      },
      "message": "Don\u0027t crash during interface up/down events.\n"
    },
    {
      "commit": "1d69fdf645d8434e8e1488f8bf0c73613df09da9",
      "tree": "c3612df88e349556c1570d7d2ce0b37ce590ea5d",
      "parents": [
        "3cade26fea2febf99780288d31d0bfe7e1b16ef1"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 18:53:30 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 18:53:30 2004 +0000"
      },
      "message": "2004-12-29  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_ifindex): Return 0 when passed a NULL\n\t  cmsghdr pointer.\n\nI believe this will avoid ospfd crashing on Solaris 8, which seems to\ndefine IP_RECVIF but not actually implement it.\n"
    },
    {
      "commit": "3cade26fea2febf99780288d31d0bfe7e1b16ef1",
      "tree": "3b5e7d4b0ce07d3e724412e3018911a92204c947",
      "parents": [
        "f2d8257fe428504bb3378ea1e1ddbec0c82e0b81"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:50:22 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:50:22 2004 +0000"
      },
      "message": "2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Add new option --enable-gcc-rdynamic to link\n\t  with -rdynamic.\n"
    },
    {
      "commit": "f2d8257fe428504bb3378ea1e1ddbec0c82e0b81",
      "tree": "fb1417438a74a18dc5e1444f17092599fb489162",
      "parents": [
        "a365534f8d695438eb57aa8fd4e36288a59e05ad"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:45:08 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:45:08 2004 +0000"
      },
      "message": "2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* watchquagga.c: In several places, cast pid_t to int for printf to\n\t  avoid complaints on Solaris 8.\n"
    },
    {
      "commit": "a365534f8d695438eb57aa8fd4e36288a59e05ad",
      "tree": "bd55f5e7ede98f4c8ad2b3698f5d62537dfc38c7",
      "parents": [
        "1d75c8c3b28db50bc53771d5fac37b809d37b614"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:39:10 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 29 17:39:10 2004 +0000"
      },
      "message": "2004-12-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* watchquagga.c: Fix headers: get most stuff from zebra.h.\n"
    },
    {
      "commit": "1d75c8c3b28db50bc53771d5fac37b809d37b614",
      "tree": "530ea967460e0f9978572b85e15666617a4b3f45",
      "parents": [
        "af04bd7c102c3fc1a9c2e98337b0ab1fa824d080"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 21:43:17 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 21:43:17 2004 +0000"
      },
      "message": "2004-12-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.\n\t  When neither IP_PKTINFO nor IP_RECVIF is defined, make return value\n\t  deterministic (-1).\n"
    },
    {
      "commit": "af04bd7c102c3fc1a9c2e98337b0ab1fa824d080",
      "tree": "f0a71ed52fa703ed6d1bccc84faa90aeb0943a62",
      "parents": [
        "c6487d61a9b7766f69718edbc484a6ad989bdef4"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 17:00:12 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 17:00:12 2004 +0000"
      },
      "message": "2004-12-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk.\n"
    },
    {
      "commit": "c6487d61a9b7766f69718edbc484a6ad989bdef4",
      "tree": "2a896a8ebdd6e41edcd1b5917ce9dddefbb335fe",
      "parents": [
        "529d65b3db6a2a79cbdf9ca3a1aa915ce5776286"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 06:00:11 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 06:00:11 2004 +0000"
      },
      "message": "*.c: Change level of debug messages to LOG_DEBUG.\n"
    },
    {
      "commit": "529d65b3db6a2a79cbdf9ca3a1aa915ce5776286",
      "tree": "bc51f1350daf8c8f47cd87478f416ba812cfcff9",
      "parents": [
        "2b70200c5797ca60acf2011fe62f33fa161be54b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 00:14:50 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 00:14:50 2004 +0000"
      },
      "message": "zlog_* cleanup. Level of debug messages to LOG_DEBUG.\n"
    },
    {
      "commit": "2b70200c5797ca60acf2011fe62f33fa161be54b",
      "tree": "100bd14ebcf66566809154f0e41b053ffe4970eb",
      "parents": [
        "6f594023a50ccb3dd4ce809614789104051d91bb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Dec 23 20:09:44 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Dec 23 20:09:44 2004 +0000"
      },
      "message": "2004-12-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\tconfigure.ac: Bump version to 0.97.4\n\tdoc/quagga.info: ditto (autogenerated file)\n"
    },
    {
      "commit": "6f594023a50ccb3dd4ce809614789104051d91bb",
      "tree": "602e48c5e73d3e1c63654083e3dd9e5b3c7f4837",
      "parents": [
        "f3931751663bfbe511a8f1d04aef10c38744481a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Dec 23 19:35:56 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Dec 23 19:35:56 2004 +0000"
      },
      "message": "2004-12-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* watchquagga.c: Add missing getopt.h include\n"
    },
    {
      "commit": "f3931751663bfbe511a8f1d04aef10c38744481a",
      "tree": "2f6207ca0a6935835ef42a9dc40ec8e2bf6e6e9a",
      "parents": [
        "b3324e277eb6e035604edfb4e77d7271f7d60354"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 23 00:00:58 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 23 00:00:58 2004 +0000"
      },
      "message": "2004-12-22 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* redhat/quagga.spec.in: daemonv6_list should contain only IPv6 daemons.\n"
    },
    {
      "commit": "b3324e277eb6e035604edfb4e77d7271f7d60354",
      "tree": "14016f00689fab10d0e0af947b4a0316224e7273",
      "parents": [
        "098e240fdfcf4d5dc03fdea09250e516151301dc"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 17:52:29 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 17:52:29 2004 +0000"
      },
      "message": "2004-12-22 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* redhat/quagga.spec.in: Add watchquagga, and fix some other\n\t  logic to make sure that all daemons are restarted on upgrades\n\t  and stopped on package removal.\n"
    },
    {
      "commit": "098e240fdfcf4d5dc03fdea09250e516151301dc",
      "tree": "7a076e4d0153a6d92d3fef5adea6861b8b70dfc7",
      "parents": [
        "341a8f1ac9d584ca9dd44bd1b5f90588f475e769"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 17:00:46 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 17:00:46 2004 +0000"
      },
      "message": "2004-12-22 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* watchquagga.c: Try for gcc 2.95 compatibility (avoid %z and a tricky\n\t  initialization).\n"
    },
    {
      "commit": "341a8f1ac9d584ca9dd44bd1b5f90588f475e769",
      "tree": "6145d76a12a8232ce349b97447f9676ef8a700bc",
      "parents": [
        "afc44c29bc65fa574b9cfc0b2b6b5c499e18a4e5"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 16:32:16 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 16:32:16 2004 +0000"
      },
      "message": "2004-12-22 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* connected.c: (connected_add_ipv4) Limit warning about /32 addresses\n\t  with no peer specified to PtP interfaces only.\n"
    },
    {
      "commit": "afc44c29bc65fa574b9cfc0b2b6b5c499e18a4e5",
      "tree": "223a668fd70cb2de4d5a2ffc51751bbebe426091",
      "parents": [
        "c8b40f86edd5cf0e5553ecb660ee2cbaf84a366f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 16:18:53 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 22 16:18:53 2004 +0000"
      },
      "message": "2004-12-22 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* redhat/quagga.sysconfig: Define some variables to support watchquagga.\n"
    }
  ],
  "next": "c8b40f86edd5cf0e5553ecb660ee2cbaf84a366f"
}
