)]}'
{
  "log": [
    {
      "commit": "d66a7b56634f88181dd2dd23706c30bf23366424",
      "tree": "42569fbc2de9016ad91db7669565e7b737ca3c11",
      "parents": [
        "6811845b67999861388cf00d3ca0ee8471d29876"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Apr 08 16:42:03 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Apr 08 16:42:03 2005 +0000"
      },
      "message": "2005-04-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: If GNU_LINUX is defined, then define _GNU_SOURCE.  This\n\t  fixes a problem where we were not getting the declaration of strnlen\n\t  in \u003cstring.h\u003e.\n"
    },
    {
      "commit": "3cb98dee9067372756964f461eb2c931a1c75138",
      "tree": "726827878765c01c45e5be08b909974ae54ce79f",
      "parents": [
        "47004ec501bd70d558c11af05d8bacd66a8c7c25"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 16:01:05 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 16:01:05 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Add strnlen to AC_CHECK_FUNCS.\n\t* zebra.h: Should include str.h to pick up missing functions.\n\t* str.h: Declare strnlen if needed.\n\t* str.c: Do not include str.h since zebra.h now includes it.\n\t  (strnlen) New function.\n"
    },
    {
      "commit": "db8eaac6615dacf17eb3958b0f3b6ea58f8f1e1d",
      "tree": "24e261e3e5be531ed987d3e040ea731ca6a1016c",
      "parents": [
        "55468c86040081320f557b696e509b76ddfd6c83"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Mar 16 16:13:06 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Mar 16 16:13:06 2005 +0000"
      },
      "message": "2005-03-16 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: Must check whether __attribute__ should be defined before\n\t  including zassert.h.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "9fc7ebf10b7bb638ddf6d1b4b2d562dd417866fc",
      "tree": "e2e49aa4ea2530be5b86df581ed1adcd37822f3a",
      "parents": [
        "338b3424154af85b0762713796397d3f2345d54f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 23 15:12:34 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 23 15:12:34 2005 +0000"
      },
      "message": "2005-02-23 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* buffer.h: Make the struct buffer and struct buffer_data structures\n\t  private by moving them inside buffer.c.  Add comments for all\n\t  functions.  Rename buffer_write as buffer_put (to be more consistent\n\t  with the buffer_putc and buffer_putstr functions).  Declare a new\n\t  buffer_write function that is used to write data to a file descriptor\n\t  and/or add it to the buffer queue.  Remove unused function\n\t  buffer_flush_vty_all.  Create a new enum typedef buffer_status_t\n\t  to be used as the return code for all buffer_flush* functions\n\t  and buffer_write.\n\t* buffer.c: The struct buffer and struct buffer_data declarations\n\t  are now private to this file.  In conjunction with that, remove\n\t  some unnecessary fields: struct buffer (alloc, unused_head,\n\t  unused_tail, length), struct buffer_data (prev).\n\t  (buffer_data_new) Removed: functionality incorporated into buffer_add.\n\t  (buffer_data_free) Removed: use a macro BUFFER_DATA_FREE instead.\n\t  (buffer_new) Use calloc instead of malloc + memset(zero).\n\t  Supply an appropriate default size if the specified size is 0.\n\t  (buffer_free) Eliminate code duplication by calling buffer_reset to\n\t  free the contents of the buffer (and remove unused code related\n\t  to unused_head).\n\t  (buffer_empty,buffer_putc,buffer_putstr) Aesthetic change (make more\n\t  compact).\n\t  (buffer_reset) Use macro BUFFER_DATA_FREE.  No need to set\n\t  alloc and length to 0 (these fields have been removed).\n\t  (buffer_add) Fix scope to be static.  Call XMALLOC directly instead\n\t  of calling removed buffer_data_new function.  Simplify the logic\n\t  (since it\u0027s now a singly-linked list instead of doubly-linked).\n\t  (buffer_write) Renamed to buffer_put.  Change to void, since return\n\t  code of 1 was meaningless.  No need to adjust length field, since\n\t  it has been removed.\n\t  (buffer_putw,buffer_flush,buffer_flush_vty_all,buffer_flush_vty)\n\t  Remove unused functions.\n\t  (buffer_flush_all) Rewrite using buffer_flush_available to eliminate\n\t  a possible failure mode if IOV_MAX is less than the number of buffers\n\t  on the queue.\n\t  (buffer_flush_window) Incorporate logic from buffer_flush_vty.\n\t  Log an error message if there is a writev error.\n\t  (buffer_flush_available) Be more paranoid: check for case where\n\t  buffer is already empty.  Use new ERRNO_IO_RETRY macro, and use\n\t  new enum for return codes.  Simplify deletion logic (since it\u0027s\n\t  now a singly-linked list).\n\t  (buffer_write) New function for use with non-blocking I/O.\n\t* vty.h: Replace the struct vty sb_buffer field with a fixed-size\n\t  (5-character) sb_buf field and an sb_len field, since using\n\t  a struct buffer was inappropriate for this task.  Add some useful\n\t  comments about telnet window size negotiation.\n\t* vty.c: Include \u003carpa/telnet.h\u003e (no longer included by zebra.h).\n\t  Remove VTY_OBUF_SIZE (instead use buffer_new default size).\n\t  Make telnet_backward_char and telnet_space_char static const.\n\t  (vty_out) Replace buffer_write with buffer_put.\n\t  (vty_log_out) Check for I/O errors.  If fatal, close the vty session.\n\t  Consolidate 3 separate writes into a single write call.\n\t  (vty_will_echo,vty_command,vty_next_line,vty_previous_line,\n\t  vty_end_config,vty_describe_fold,vty_clear_buf,vty_serv_sock_addrinfo,\n\t  vty_serv_sock_family,vty_serv_un,vty_use_backup_config,exec_timeout,\n\t  vty_config_write,vty_save_cwd) Fix scope to static.\n\t  (vty_new) Let buffer_new use its default buffer size.\n\t  (vty_write) Fix signature: 2nd arg should be const char *.\n\t  Replaced buffer_write with buffer_put.\n\t  (vty_telnet_option) Fix minor bug (window height or width greater than\n\t  255 was broken).  Use sb_buf and sb_len instead of removed sb_buffer\n\t  (which was being used improperly).\n\t  (vty_read) On error, use ERRNO_IO_RETRY to decide whether it\u0027s fatal.\n\t  If the error is fatal, call buffer_reset so vty_close does not attempt\n\t  to flush the data.  Use new sb_buf and sb_len instead of sb_buffer\n\t  to store the SB negotiation string.\n\t  (vty_flush) When vty-\u003elines is 0, call buffer_flush_available instead\n\t  of buffer_flush_window.  Look at the return code from buffer_flush\n\t  to detect I/O errors (and in that case, log an error message and\n\t  close the vty).\n\t  (vty_create) Fix scope to static.  Initialize sb_len to 0 instead\n\t  of creating sb_buffer.\n\t  (vty_accept) Set socket nonblocking.\n\t  (vtysh_accept) Use new set_nonblocking function instead of calling\n\t  fcntl directly.\n\t  (vtysh_flush) New function called from vtysh_read (after command\n\t  execution) and from vtysh_write.  This flushes the buffer\n\t  and reacts appropriately to the return code (by closing the vty\n\t  or scheduling further flushes).\n\t  (vtysh_read) Check whether error is fatal using ERRNO_IO_RETRY.\n\t  If not, just try again later.  Otherwise, call buffer_reset before\n\t  calling vty_close (to avoid trying to flush the buffer in vty_close).\n\t  Fix logic to allow case where a command does not arrive atomically\n\t  in a single read call by checking for the terminating NUL char.\n\t  (vtysh_write) Use new vtysh_flush helper function.\n\t  (vty_close) No need to call buffer_empty, just call buffer_flush_all\n\t  in any case (it will check whether the buffer is empty).\n\t  Do not free sb_buffer (since it has been removed).\n\t  (vty_log_fixed) Use writev instead of write.\n\t* zebra.h: Do not include \u003carpa/telnet.h\u003e, since this is used only\n\t  by lib/vty.c.\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": "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": "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": "4cf0d0df23f7a35a3c1570c94ba08fa96d47bfc1",
      "tree": "9894529e896b82cf957cb60c03be04f4fe9d91ea",
      "parents": [
        "e5879ca1d8ea26870dbf74f330f5e6f5a9c93bfa"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Nov 25 17:14:34 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Nov 25 17:14:34 2004 +0000"
      },
      "message": "2004-11-25 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: If not C99 and there\u0027s no va_copy macro and there is\n\t  a __va_copy macro, define va_copy as __va_copy.\n"
    },
    {
      "commit": "cee3df1e4b1b8103bf81e5281a46aab7881f93df",
      "tree": "40d7cc8c22da9634739256a9d577b140b41730b8",
      "parents": [
        "b9e0ee31864c94c729fb6b6f6b2ccbc79dbcd474"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 24 17:14:49 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 24 17:14:49 2004 +0000"
      },
      "message": "2004-11-24 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zassert.h: New header file to declare a quagga-specific assert macro.\n\t* log.c: (_zlog_assert_failed) New function called when assert fails\n\t  to log the error and abort.\n\t* zebra.h: Include \"zassert.h\" instead of \u003cassert.h\u003e.\n\t* regex.c: Include \"zassert.h\" instead of \u003cassert.h\u003e.\n\t* dict.c: Include \"zassert.h\" instead of \u003cassert.h\u003e.\n"
    },
    {
      "commit": "69e1325faf47762fd08917b8f20a20abb59d41e6",
      "tree": "60d6df8c1d754c84fa3108a5f19bbf91cb084ab1",
      "parents": [
        "fbb6709986ee29b57a8a6103c592de80647ead00"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Nov 15 18:51:15 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Nov 15 18:51:15 2004 +0000"
      },
      "message": "Rationalize CMSG_SPACE usage:\n\n  in lib/zebra.h, ensure that RFC3542-required CMSG_SPACE and CMSG_LEN\n  are defined.  Warn if alignment assumptions are made, since they are\n  i386-centric.\n\n  in lib/sockopt.h, declare that sockopt sizes are without\n  CMSG_SPACE-required padding - just simple sizeof.\n\n  in ospfd/ospf_packet.c, simply use CMSG_SPACE\n\nThis should remove all instances of CMSG_ALIGN from the source code.\nThis is a nonstandard, though rational, construct; quagga should use\nonly those defines in RFC3542.\n"
    },
    {
      "commit": "af0d97eb4826376f6d0a2f053b416d111b4af6f8",
      "tree": "47e823dfd86176a66c3ec6a246739d40fa3bb1e7",
      "parents": [
        "4ccb2c46c51c382f1a1d34f1f6814725c7d972e5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 23:24:43 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 23:24:43 2004 +0000"
      },
      "message": "2004-10-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra.h: reserve ZEBRA_ROUTE_HSLS\n"
    },
    {
      "commit": "97c52f4e397848fb18c689dfe161d0b8f7803722",
      "tree": "e923e3ce3469c738fe0ec785c8eb9884b57e3bd2",
      "parents": [
        "9a3805e0826ed7f45a6266226b55a4829e42e423"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 04 08:01:08 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 04 08:01:08 2004 +0000"
      },
      "message": "Every file includes it and warns about it.\n"
    },
    {
      "commit": "18a6dce6f83dd20caf1f36c8e840868ff0bf6dbd",
      "tree": "ff832cbf6fe2b239bde06268820587bec671ae6d",
      "parents": [
        "a49c0ff6771975eeb1bd7da923a9dc830200cf65"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "message": "Common router id.\n"
    },
    {
      "commit": "9172ee0e5dc8c6f6929821fb1433699700e53114",
      "tree": "63c8f3d3c3c375fe9613217e8e22213a7e10bf42",
      "parents": [
        "ddb07e5bf4e16889b0845c83d8a73ebfa435bcba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:46:37 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:46:37 2004 +0000"
      },
      "message": "2004-09-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd\n\t  to try to fragment oversized packets. Enabled only for Linux.\n\t  Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,\n\t  to consolidate various ad-hoc platform defines for same thing.\n"
    },
    {
      "commit": "efba6ce941fb96763d5804212a674ca6b7098853",
      "tree": "84538f4f9fa888a11838333bb6df029181d00cd5",
      "parents": [
        "b094d2603158f9d514404941c9fad04dd9b7d42c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 25 13:47:16 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 25 13:47:16 2004 +0000"
      },
      "message": "2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * zebra.h: add MAX and MIN defines (eg for ospf6d)\n"
    },
    {
      "commit": "138ce75fd0254072f27ecf38994a90276b276730",
      "tree": "381589b0aa5f3bd18855ed594e4c88811a31262e",
      "parents": [
        "beebba75167b33e05b5e02a41179ad0c13a0bcd7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 21 10:35:59 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jun 21 10:35:59 2004 +0000"
      },
      "message": "2004-06-21 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ChangeLog: fix my last update config.h -\u003e zebra.h ;)\n        * zebra.h: Fix gcc check.\n"
    },
    {
      "commit": "02ff83c52592427623db0d8367ca9b3395fa321f",
      "tree": "0aa278809140486f55012a98616106fc995d91e6",
      "parents": [
        "51a8798e8d36dddfdeb6b0bfd01bf32a646e8bb1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 11 11:27:03 2004 +0000"
      },
      "message": "2004-06-11 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast\n          to u_char. (ipv6_access_list_remark_cmd) ditto.\n          if.c: ditto\n        * network.c: (readn/writen) pointer arg should be type u_char.\n        * plist.c: needs to include stream.h, not declare stream functions\n          internally.\n          (various) Add static qualifier to internal functions.\n          (prefix_list_type_str) extraneous breaks in switch statement.\n          (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast\n        * stream.h: depends on plist.h and export stream_put_prefix\n        * vty.c: (vty_\u003ctelnet option build functions\u003e) should use\n          unsigned char, telnet options are 0 -\u003e 255.\n        * zclient.c: various u_char\u003c-\u003echar type cleanups.\n        * zebra.h: Having to define CMSG_* can apply to more than just\n          BSDI_NRL.\n        * ripd.c: (rip_distribute_update_all) distribute list hook\n          function pointer prototype requires struct prefix_list * arg.\n          (rip_distribute_update_all_wrapper) update to pass required arg,\n          NULL.\n"
    },
    {
      "commit": "51a8798e8d36dddfdeb6b0bfd01bf32a646e8bb1",
      "tree": "fd1f6e63fc2ee07f7312b5f2409daa6fbe15cc2d",
      "parents": [
        "ca5e516c84cc2d35b6f6cd29f8ba9e835d3b72ba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 09 10:36:05 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 09 10:36:05 2004 +0000"
      },
      "message": "2004-06-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* config.h: __attribute__ is a gcc\u0027ism\n"
    },
    {
      "commit": "5228ad27e2f3abe0ebb69f66607aedc048b94a13",
      "tree": "a65817a03150dbfeb56a1eaceab526f31be1cc1d",
      "parents": [
        "c2bfbcc38428b53e856617e1da8bbe9f8d2ee2fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "message": "2004-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * type mismatch fixes\n"
    },
    {
      "commit": "9e867fe663c4eb43c36f35067c0dd092e8c83c14",
      "tree": "f29461b6a2dc8c38037dc0cf91e70392f9ed4ab2",
      "parents": [
        "eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "message": "Merge isisd into the Quagga\u0027s framework:\n  - add privs support\n  - use misc quagga\u0027s definitions\n  - make it compile\"able\"\n  - fix segfault cases related to hostname()\n  - add debug isis xxx command\n\nThis patch has been approved by Paul Jakma.\n"
    },
    {
      "commit": "a58c25b65d9816a549278f1a74a9121500b14b20",
      "tree": "ab838eaab06046b446ff1ea7d8b9ff9ef678af61",
      "parents": [
        "ccc9235e602ebd578fbeba3c98499b3933069d96"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:50:45 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 22 02:50:45 2003 +0000"
      },
      "message": "2003-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * lib/zebra.h: include limits.h if its there, its a portable header\n          and useful and not just solaris specific. net/route.h is also\n          useful.\n"
    },
    {
      "commit": "3b424979f54c6b128d1ee8a7c33d072d321f2f0c",
      "tree": "c3c684d2e1576610d3a0cedefa3bab23610c8d61",
      "parents": [
        "7ddf1d6eaf5a339d13661469212ac33f77e808fc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "message": "2003-10-13 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n\t* lib/zebra.h: define UINT32_MAX for those systems which do not\n\t  provide it.\n\t* bgp_attr.h: define BGP_MED_MAX.\n\t* bgp_route.c: update defines/constants to BGP_MED_MAX.\n\t* bgp_routemap.c: ditto. clean up route_match_metric_compile\n\t  slightly to avoid unneccesary XMALLOC.\n"
    },
    {
      "commit": "9bcdb638923e3254b64744d02ceab62b8f2941a1",
      "tree": "2262989f3d4105cd0b539ece52628666ff3b580c",
      "parents": [
        "0c14ad88aab5df610acfe035385a7323e1683035"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 08 08:09:45 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 08 08:09:45 2003 +0000"
      },
      "message": "2003-07-8 Chris Andrews \u003cchris@nodnol.org\u003e\n\n\t* zebra/kernel_socket.c: Update for new zebrad global struct\n\t* zebra/ipforward_solaris.c: Add missing privs.h include. Uncomment\n          /dev/ip define.\n\t* lib/zebra.h: Add typedefs for SunOS.\n"
    },
    {
      "commit": "ba3a0bc5fa05691b211340bef69c5c7a3659d412",
      "tree": "af7b0b8ca5ba7f6c39b96be1ea180135a9159e64",
      "parents": [
        "edd7c245d3a77012abf801da00d5664ebaa5f749"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "message": "Paul forgot probably to commit privs.[c|h] changes. Had to reorder includes\nin zebra.h to make it compile in debian.\n"
    },
    {
      "commit": "edd7c245d3a77012abf801da00d5664ebaa5f749",
      "tree": "d4fada229d7980fb751f28c9a979aa88de1a0af0",
      "parents": [
        "a159ed935b580ed99111a185734ddd9c973e7691"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "message": "2003-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Merge of zebra privileges\n"
    },
    {
      "commit": "fb2d1502bb0893f2aaccb49fb39521974078d96a",
      "tree": "0d3059d875d2be20913eaceaed12c8c09ec2b481",
      "parents": [
        "97e34b88b39abdef4ba0581574d315ef7ddb1a86"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 09:40:54 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 09:40:54 2003 +0000"
      },
      "message": "Paul Jakma:\n\nlib/debug.{c,h}: glibc backtrace printing function (from the glibc info page)\nconfigure.ac: check for glibc backtrace and set define\nlib/zebra.h: glibc backtrace support\n"
    },
    {
      "commit": "595db7f16506d2c82a3478e9f8dab00c8733d386",
      "tree": "240d477dd4b5262ba78cc50fda4b81de09e2c91c",
      "parents": [
        "726f9b2bbdd5a607f7b0a10a64547739b807e361"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 25 21:35:06 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 25 21:35:06 2003 +0000"
      },
      "message": "Add back support for null0 interface blackhole routes.\n"
    },
    {
      "commit": "726f9b2bbdd5a607f7b0a10a64547739b807e361",
      "tree": "9c46a6ce71cf4ea96553a85a231e38b462b3dee0",
      "parents": [
        "71c0fb50fe75928f8fbe1bbff1995d9d91b3702b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 21:04:54 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 21:04:54 2003 +0000"
      },
      "message": "Last fixes from 6Wind patch.\n"
    },
    {
      "commit": "81dfcaa2e27d53f4eb61c549e03065dcb1b8eec3",
      "tree": "2aed449138a4833fe343052cdfa505be74332cb4",
      "parents": [
        "15291357d130b804dcdcfd81bdb1b86a84567fd0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 19:21:25 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 19:21:25 2003 +0000"
      },
      "message": "Route (reject|blackhole) support from 6Wind patch.\n"
    },
    {
      "commit": "04a72e593b870688649653f569ebc0e7589b4fdb",
      "tree": "ffc682e7a68b636baed87cb8b9a68d1b3058fa6b",
      "parents": [
        "af8d0336a3cd98ef2fe163a6303a077735de4fb2"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 24 16:02:27 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 24 16:02:27 2003 +0000"
      },
      "message": "From: rivo nurges \u003crix@estpak.ee\u003e\nSubject: solaris compile patch\n\ntypes defined for SUNOS_5 were already defined in config.h\n"
    },
    {
      "commit": "ba965c6c45865fee03410c1b75ef254e4d7e3ceb",
      "tree": "dda1a5ff3f56d76214a76c9f0f13b206f1dd9a17",
      "parents": [
        "33b72948209fee3ba217f7495fc1d12bb2ff187a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 02:37:39 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 02:37:39 2003 +0000"
      },
      "message": "Undo revision 1.3, revert back to zebra_org 1.1.1.2.\nasm/types.h is required for netlink.\nLater glibc\u0027s seem to have resolved the warning.\n"
    },
    {
      "commit": "f04385215b363f57ed3d3dd8f6bfa53ac4e2c1da",
      "tree": "dc2a7e6eff78285b57602649489a51c0c82a791c",
      "parents": [
        "733e8102dc513a49363c73597fbf9d3fe061acd5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 19 21:06:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 19 21:06:32 2003 +0000"
      },
      "message": "From: Paul Jakma \u003cpaul@clubi.ie\u003e\nSubject: [zebra 19097] HAVE_ASM_TYPES\n\ndoes anyone know why lib/zebra.h has:\n\n#ifdef HAVE_ASM_TYPES_H\n#include \u003casm/types.h\u003e\n#endif /* HAVE_ASM_TYPES_H */\n\nThere\u0027s no need for it that i can see (least not on linux) and it\ncauses compile warnings. Is it needed? If so, why?\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"
    }
  ]
}
