)]}'
{
  "commit": "7a876b0efcba3804da3051313445fa7be751cab7",
  "tree": "2135dfa1c8ffa8807e831d0817f49a31caf22cc2",
  "parents": [
    "aed65501e8c072b52c5b4dc807cd938659329673"
  ],
  "author": {
    "name": "Glenn Wurster",
    "email": "gwurster@scs.carleton.ca",
    "time": "Mon Sep 27 07:10:10 2010 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Oct 26 12:35:13 2010 -0700"
  },
  "message": "IPv6: Temp addresses are immediately deleted.\n\nThere is a bug in the interaction between ipv6_create_tempaddr and\naddrconf_verify.  Because ipv6_create_tempaddr uses the cstamp and tstamp\nfrom the public address in creating a private address, if we have not\nreceived a router advertisement in a while, tstamp + temp_valid_lft might be\n\u003c now.  If this happens, the new address is created inside\nipv6_create_tempaddr, then the loop within addrconf_verify starts again and\nthe address is immediately deleted.  We are left with no temporary addresses\non the interface, and no more will be created until the public IP address is\nupdated.  To avoid this, set the expiry time to be the minimum of the time\nleft on the public address or the config option PLUS the current age of the\npublic interface.\n\nSigned-off-by: Glenn Wurster \u003cgwurster@scs.carleton.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8ed6763dae96c426ffb12dd18da2e8fbe916ef10",
      "old_mode": 33188,
      "old_path": "net/ipv6/addrconf.c",
      "new_id": "ef6fc16ae5d9315a9e2369b62e8ffae1312082bf",
      "new_mode": 33188,
      "new_path": "net/ipv6/addrconf.c"
    }
  ]
}
