)]}'
{
  "commit": "28a0841bf58e3813b2e07ad22f19484308e2f70a",
  "tree": "41bc78f3b4c995f1e97f85d930537103e41d4dbb",
  "parents": [
    "ba2de73b185016e0a98e62f75b368ab6ae673919"
  ],
  "author": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Tue Feb 02 15:54:57 2016 +0100"
  },
  "committer": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Wed Feb 03 19:37:07 2016 +0100"
  },
  "message": "Refactoring BIO: add wrappers around sockaddr et al\n\nBecause different platforms have different levels of support for IPv6,\ndifferent kinds of sockaddr variants, and some have getaddrinfo et al\nwhile others don\u0027t, we could end up with a mess if ifdefs, duplicate\ncode and other maintainance nightmares.\n\nInstead, we\u0027re introducing wrappers around the common form for socket\ncommunication:\nBIO_ADDR, closely related to struct sockaddr and some of its variants.\nBIO_ADDRINFO, closely related to struct addrinfo.\n\nWith that comes support routines, both convenient creators and\naccessors, plus a few utility functions:\n\nBIO_parse_hostserv, takes a string of the form host:service and\nsplits it into host and service.  It checks for * in both parts, and\nconverts any [ipv6-address] syntax to ust the IPv6 address.\n\nBIO_lookup, looks up information on a host.\n\nAll routines handle IPv4 (AF_INET) and IPv6 (AF_INET6) addresses, and\nthere is support for local sockets (AF_UNIX) as well.\n\nReviewed-by: Kurt Roeckx \u003ckurt@openssl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e4ba2552ea9a04e9338f3a7d8fd669cfc83d62b5",
      "old_mode": 33188,
      "old_path": "crypto/bio/Makefile.in",
      "new_id": "9bcc17eef874bdaf28230fcee7584694375ca590",
      "new_mode": 33188,
      "new_path": "crypto/bio/Makefile.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed267e96f62f0b45179309be9ce3cf6b06b460e7",
      "new_mode": 33188,
      "new_path": "crypto/bio/b_addr.c"
    },
    {
      "type": "modify",
      "old_id": "a7a6aab328dbb63b0c33705f1d5a0a02c929088a",
      "old_mode": 33188,
      "old_path": "crypto/bio/b_sock.c",
      "new_id": "5a502514dafeb78c1cbd9c2a8242fdb724ae2702",
      "new_mode": 33188,
      "new_path": "crypto/bio/b_sock.c"
    },
    {
      "type": "modify",
      "old_id": "741884da84fa33e5eb0ced972094f1919bde6a38",
      "old_mode": 33188,
      "old_path": "crypto/bio/bio_lcl.h",
      "new_id": "19bfe533185a994909feff5f2277c55a263e627e",
      "new_mode": 33188,
      "new_path": "crypto/bio/bio_lcl.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cec7dddd7e3547cb91a5d874035f36dfcbbcf6c5",
      "new_mode": 33188,
      "new_path": "doc/crypto/BIO_ADDR.pod"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "85652add9b1e36227f6002cdd54313fb072cf6ff",
      "new_mode": 33188,
      "new_path": "doc/crypto/BIO_ADDRINFO.pod"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c9cfbe1a39d7c47f8f1f130f1c4678c9270b640",
      "new_mode": 33188,
      "new_path": "doc/crypto/BIO_parse_hostserv.pod"
    },
    {
      "type": "modify",
      "old_id": "9b9bb4f765144be04fd0a08aa9609c5cb5fcf254",
      "old_mode": 33188,
      "old_path": "e_os.h",
      "new_id": "4456b7e51c0be19b8bdc0efdf2fa3ccb6753c8ce",
      "new_mode": 33188,
      "new_path": "e_os.h"
    },
    {
      "type": "modify",
      "old_id": "9b398ee51bca1c98422a44e752614498cedf9f0e",
      "old_mode": 33188,
      "old_path": "include/openssl/bio.h",
      "new_id": "999e573ae24a291acff72068a93a5f3c6fd3ade6",
      "new_mode": 33188,
      "new_path": "include/openssl/bio.h"
    }
  ]
}
