)]}'
{
  "log": [
    {
      "commit": "3d52bb8085c32b54fa21d88588310716245291d4",
      "tree": "8d47a7c92cafb9df895ba32b705e19386e0944e9",
      "parents": [
        "032928091c558d3b0940be079049009f47652711"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Jun 07 20:42:07 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Jun 07 20:42:07 2008 +0000"
      },
      "message": "[lib] trivial: add const qualifier to stream_put/write\n\n2008-06-07 Paul Jakma \u003cpaul@jakma.org\u003e\n\n\t* stream.{c,h}: (stream_{put,write}) add const qualifier to source\n\t  argument. Change u_char to void *.\n"
    },
    {
      "commit": "dea04441fb51f74dc25f6ab4bd756b4159d961b6",
      "tree": "95a4578d95f20dd0dc168d07a90ea9cf71d6047f",
      "parents": [
        "d38e8d63fdfc0aefb78d0a51ffdf06d8b47993fd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 26 09:16:09 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 26 09:16:09 2008 +0000"
      },
      "message": "[c++] remove/rename some names in headers that clash with C++ reserved words\n\n2008-01-30 Peter Szilagyi \u003csp615@hszk.bme.hu\u003e\n\n\t* lib/stream.h: Remove named \u0027new\u0027 parameter in prototype\n\t  for c++ header compatibility.\n\t* ospfd/ospf_opaque.h: ditto\n\t* ospfd/ospfd.h: Renamed struct export to _export for c++\n\t  header compatibility.\n\t* ospf6d/ospf6_area.h: ditto\n"
    },
    {
      "commit": "4b201d46348b81bd9d59aa626c81f7457ea6ef38",
      "tree": "b841d11214e5ec8ff4904d193c5e0b7c4e741a50",
      "parents": [
        "e14b7fca6279fe9dc41c8aa9816b5685952c4b19"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:35:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:35:19 2006 +0000"
      },
      "message": "[stream] Add quad-word support and stream_resize\n\n2006-01-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* stream.c: (stream_new) Allocate stream data as seperate object.\n\t  (stream_free) free the data.\n\t  (stream_resize) new function, resize stream to new size.\n\t  (stream_{get,put}q*) new functions to get/put quad word size\n\t  types.\n\t* stream.h: (struct stream) make data seperate from the stream.\n\t  Export new stream_resize and quad-word get/put functions.\n"
    },
    {
      "commit": "00c290e02edd6c906b669de9f31a45d14ed8bec0",
      "tree": "5d81084291d38b18144e6f53847026d24587b400",
      "parents": [
        "89368d9f8b70fef5c196db9055bd6a7e7aaa4f36"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:21:43 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:21:43 2005 +0000"
      },
      "message": "[c99] change gcc zero-length array to C99 flexible array declaration\n\n2005-11-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* buffer.c: (struct buffer_data) change gcc zero array\n\t  declaration to C99 incomplete array.\n\t* stream.h: (struct stream) same\n\t* ospf_api.c: (struct opaque_lsa) same\n"
    },
    {
      "commit": "8cc4198f9fabe5f10f5a773de1503d82f33a01fb",
      "tree": "77045da709ff66629bd12029b9ee17700360909b",
      "parents": [
        "e7fe8c88c3d552400e1ae3ae9243319ab95d6f2d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (general) extern and static\u0027ification of functions in code and\n\t  header.\n\t  Cleanup any definitions with unspecified arguments.\n\t  Add casts for callback assignments where the callback is defined,\n\t  typically, as passing void *, but the function being assigned has\n\t  some other pointer type defined as its argument, as gcc complains\n\t  about casts from void * to X* via function arguments.\n\t  Fix some old K\u0026R style function argument definitions.\n\t  Add noreturn gcc attribute to some functions, as appropriate.\n\t  Add unused gcc attribute to some functions (eg ones meant to help\n\t  while debugging)\n\t  Add guard defines to headers which were missing them.\n\t* command.c: (install_node) add const qualifier, still doesnt shut\n\t  up the warning though, because of the double pointer.\n\t  (cmp_node) ditto\n\t* keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived\n\t  fromn vty.h ones to fix some of the (long) \u003c 0 warnings.\n\t* thread.c: (various) use thread_empty\n\t  (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type\n\t* vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they\n\t  removed from ospfd/ospf_vty.h\n\t* zebra.h: Move definition of ZEBRA_PORT to here, to remove\n\t  dependence of lib on zebra/zserv.h\n"
    },
    {
      "commit": "0dab930314e215a627f848ffa824ed995eb2e13c",
      "tree": "f84189f12990561a616c65be59d8cb6ebef94569",
      "parents": [
        "0c2029e9121d4c80380c174c2503b7deaf4e03ce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 03 09:07:56 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 03 09:07:56 2005 +0000"
      },
      "message": "2005-05-03 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* stream.h: Add comment about the special zero-ing ability of\n\t  stream_put.\n\t  (stream_recvmsg, stream_write) should return ssize_t and size_t\n\t  respectively. Should both be extern linkage.\n\t  (stream_recvfrom) Stream aware wrapper around recvfrom, in style\n\t  of stream_read_try.\n\t* stream.c: (stream_recvfrom) new function, wrapper around recvfrom.\n\t  (stream_recvmsg, stream_write) ssize_t and size_t return values\n"
    },
    {
      "commit": "81fb32404c942432d2bea1e50a4d53bf75fd0f70",
      "tree": "107d5d94061c110773c5b2985e383d2075bc6044",
      "parents": [
        "0d7e9134d828d5aee8c83960bb706a726cdc2ec4"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 24 16:02:53 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Feb 24 16:02:53 2005 +0000"
      },
      "message": "2005-02-24 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* stream.c: (stream_read_try) Log a warning message if a fatal\n\t  I/O error occurs.\n\t  (stream_fifo_new) Fix prototype.\n\t* stream.h: Fix prototype for stream_fifo_new (need void arg).\n"
    },
    {
      "commit": "262feb1ad0838bb585955b6ada5acbe106dbc9bf",
      "tree": "392f66d5d71bcfdd87e5db32e89325ed9ef06c44",
      "parents": [
        "42218e71256cb86b5078c99c931030c7b0ce9bab"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 16 20:35:47 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 16 20:35:47 2005 +0000"
      },
      "message": "2005-02-16 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* stream.h: Declare new function stream_read_try suitable for use\n\t  with non-blocking file descriptors.  Indicate that stream_read\n\t  and stream_read_unblock are deprecated.\n\t* stream.c: (stream_read_try) New function for use with non-blocking\n\t  I/O.\n\t  (stream_recvmsg) Should return -1 if the stream is too small to\n\t  contain the data.\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": "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": "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"
    }
  ]
}
