)]}'
{
  "log": [
    {
      "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": "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": "81fc57ca0d743a6abe577c4f0b316bfb570e45be",
      "tree": "846f58014c25a74449c1ea19e075f6f0a23cc723",
      "parents": [
        "bc18d616ad7d1d580e1e04c28eab2cd9afb67fad"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 15 17:41:14 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 15 17:41:14 2004 +0000"
      },
      "message": "2004-12-15 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sigevent.c: (trap_default_signals) Ignore SIGPIPE instead of exiting.\n"
    },
    {
      "commit": "59a06a915da9129a4e756c2b4d42449aa71a0ee4",
      "tree": "44090f696cbec97cab5e5b090b22c7431a5d6490",
      "parents": [
        "d246bd965898f0ba6781f2b2048af9a5eba079d3"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Nov 23 18:19:14 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Nov 23 18:19:14 2004 +0000"
      },
      "message": "2004-11-23 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sigevent.c: (signal_init) Set up some default signal handlers\n\t  so that processes will issue an error message before terminating\n\t  or dumping core.\n\t  (trap_default_signals) New function to set up signal handlers\n\t  for various signals that may kill the process.\n\t  (exit_handler) Call zlog_signal, then _exit.\n\t  (core_handler) Call zlog_signal, then abort.\n\t* log.h: Declare new function zlog_signal.\n\t* log.c: (zlog_signal) New function to log information about\n\t  a received signal before the process dies.  Try to log a\n\t  backtrace also.\n\t  (quagga_signal_handler,signal_set) Should be static.\n"
    },
    {
      "commit": "05c447dd2e3aab0d045889845da0be5c8d974d4b",
      "tree": "062ca42a848dc0377d7a814d8570e77bc59a2eff",
      "parents": [
        "27eebb3e5713559379ac072d5f36e26044465ab0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jul 22 19:14:27 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jul 22 19:14:27 2004 +0000"
      },
      "message": "2004-07-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sigevent.c: (quagga_signal_handler) add a global caught flag, set\n          the flags to a constant rather increment to be kinder.\n          (quagga_sigevent_process) new function, to do core of what\n          quagga_signal_timer did. dont block signals at all as sig-\u003ecaught\n          is volatile sig_atomic_t and should be safe to access from signal\n          and normal contexts. The signal blocking is unneeded paranoia, but\n          is left intact under an ifdef, should some platform require it.\n          Check global caught flag before iterating through array.\n          (quagga_signal_timer) nearly everything moved to\n          quagga_sigevent_process. Left in under ifdef, in case some\n          platform could use a regular timer check for signals.\n        * sigevent.h: quagga_sigevent_process declaration.\n        * thread.c: (thread_fetch) check for signals at beginning of\n          scheduler loop, check for signals if select returns EINTR.\n"
    },
    {
      "commit": "b77971317724a97b72a8566b3a54d36ef7c76a07",
      "tree": "25e17e5ec53eb9625e2f872e3053913e10177973",
      "parents": [
        "25dac85507ca3a107351a9f84173b5bcaea8a450"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jul 13 13:47:25 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Jul 13 13:47:25 2004 +0000"
      },
      "message": "2004-07-13  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sigevent.c: Don\u0027t block SIGTRAP and SIGKILL.  Blocking SIGTRAP\n\tconfuses gdb, at least on NetBSD 2.0_BETA, where the block\n\tsucceeds.\n"
    },
    {
      "commit": "c49b30692d7a2379264dfd2d45c2d2ab16e8822c",
      "tree": "a379c072fdeea6e7ec4dca1970f5409bd63a2cfa",
      "parents": [
        "13b8baadb044a4ddd447cb7139a9d59fbb7983a5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:23:37 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:23:37 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sigevent.{c,h}: New files, implement event handled signals.\n          see signal_init() in sigevent.h.\n"
    }
  ]
}
