)]}'
{
  "log": [
    {
      "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": "9035efaa924c69f4f4fcb1049c7dc4f43b9da980",
      "tree": "f81d25b0e069ad8fb5f2843172a4e60fa0d6cbdf",
      "parents": [
        "ddd119fd3d94e95dd44aa9fb3bc3fca4f26078a0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 11:56:56 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 11:56:56 2004 +0000"
      },
      "message": "2004-10-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* version.h.in: (pid_output*) add const qualifier.\n\t* command.h: Change DEFUN func to take const char *[] rather\n          than char **, to begin process of fixing compile warnings in lib/.\n          Nearly all other changes in this commit follow from this change.\n        * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take\n          const void * and cast an automatic const char *p to it.\n          (buffer_putstr) add const\n        * command.c: (zencrypt) const qualifier\n          (cmd_execute_command_real) ditto\n          (cmd_execute_command_strict) ditto\n          (config_log_file) ditto.\n          Fix leak of getcwd() returned string.\n        * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.\n        * distribute.{c,h}: Update with const qualifier.\n          (distribute_free) use MTYPE_DISTRIBUTE_IFNAME\n          (distribute_lookup) Cast to char *, note that it\u0027s ok.\n          (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.\n          (distribute_get)  Cast to char *, note that it\u0027s ok.\n        * filter.c: Update with const qualifier.\n        * if.{c,h}: ditto.\n        * if_rmap.{c,h}: ditto.\n          (if_rmap_lookup) Cast to char *, note that it\u0027s ok.\n          (if_rmap_get) ditto.\n        * log.{c,h}: Update with const qualifier.\n        * plist.{c,h}: ditto.\n        * routemap.{c,h}: ditto.\n        * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.\n        * sockopt.c: (getsockopt_cmsg_data) add return for error case.\n        * vty.c: Update with const qualifier.\n"
    },
    {
      "commit": "8c328f1106cf0498333c2d8a96940e7b4581e316",
      "tree": "9bf24cca6a68a9dd5d4dda586484e497d0c19ca6",
      "parents": [
        "98c91ac6ac085713c00af00a6ac41779be6b50b3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 05 21:01:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 05 21:01:23 2004 +0000"
      },
      "message": "Number of warnings is down to 3 again in lib directory. A lot of const\u0027s\nadded to strings and a lot of int -\u003e unsigned int changes.\n"
    },
    {
      "commit": "02ff83c52592427623db0d8367ca9b3395fa321f",
      "tree": "0aa278809140486f55012a98616106fc995d91e6",
      "parents": [
        "51a8798e8d36dddfdeb6b0bfd01bf32a646e8bb1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "message": "2004-06-11 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast\n          to u_char. (ipv6_access_list_remark_cmd) ditto.\n          if.c: ditto\n        * network.c: (readn/writen) pointer arg should be type u_char.\n        * plist.c: needs to include stream.h, not declare stream functions\n          internally.\n          (various) Add static qualifier to internal functions.\n          (prefix_list_type_str) extraneous breaks in switch statement.\n          (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast\n        * stream.h: depends on plist.h and export stream_put_prefix\n        * vty.c: (vty_\u003ctelnet option build functions\u003e) should use\n          unsigned char, telnet options are 0 -\u003e 255.\n        * zclient.c: various u_char\u003c-\u003echar type cleanups.\n        * zebra.h: Having to define CMSG_* can apply to more than just\n          BSDI_NRL.\n        * ripd.c: (rip_distribute_update_all) distribute list hook\n          function pointer prototype requires struct prefix_list * arg.\n          (rip_distribute_update_all_wrapper) update to pass required arg,\n          NULL.\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
