)]}'
{
  "commit": "6fdd34d43bff8be9bb925b49d87a0ee144d2ab07",
  "tree": "547cf602983db37d573d3d191ac11660f1698e8f",
  "parents": [
    "4098dce5be537a157eed4a326efd464109825b8b"
  ],
  "author": {
    "name": "Gerrit Renker",
    "email": "gerrit@erg.abdn.ac.uk",
    "time": "Mon Dec 08 01:19:06 2008 -0800"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Dec 08 01:19:06 2008 -0800"
  },
  "message": "dccp ccid-2: Phase out the use of boolean Ack Vector sysctl\n\nThis removes the use of the sysctl and the minisock variable for the Send Ack\nVector feature, as it now is handled fully dynamically via feature negotiation\n(i.e. when CCID-2 is enabled, Ack Vectors are automatically enabled as per\n RFC 4341, 4.).\n\nUsing a sysctl in parallel to this implementation would open the door to\ncrashes, since much of the code relies on tests of the boolean minisock /\nsysctl variable. Thus, this patch replaces all tests of type\n\n\tif (dccp_msk(sk)-\u003edccpms_send_ack_vector)\n\t\t/* ... */\nwith\n\tif (dp-\u003edccps_hc_rx_ackvec !\u003d NULL)\n\t\t/* ... */\n\nThe dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature\nnegotiation concluded that Ack Vectors are to be used on the half-connection.\nOtherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),\nso that the test is a valid one.\n\nThe activation handler for Ack Vectors is called as soon as the feature\nnegotiation has concluded at the\n * server when the Ack marking the transition RESPOND \u003d\u003e OPEN arrives;\n * client after it has sent its ACK, marking the transition REQUEST \u003d\u003e PARTOPEN.\n\nAdding the sequence number of the Response packet to the Ack Vector has been\nremoved, since\n (a) connection establishment implies that the Response has been received;\n (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.\n     this entry will always be ignored;\n (c) it can not be used for anything useful - to detect loss for instance, only\n     packets received after the loss can serve as pseudo-dupacks.\n\nThere was a FIXME to change the error code when dccp_ackvec_add() fails.\nI removed this after finding out that:\n * the check whether ackno \u003c ISN is already made earlier,\n * this Response is likely the 1st packet with an Ackno that the client gets,\n * so when dccp_ackvec_add() fails, the reason is likely not a packet error.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1403745ab406bce7a9c8e56d89c40761f39803ba",
      "old_mode": 33188,
      "old_path": "Documentation/networking/dccp.txt",
      "new_id": "7a3bb1abb8304a1fe7222e354e43164a7a7635bb",
      "new_mode": 33188,
      "new_path": "Documentation/networking/dccp.txt"
    },
    {
      "type": "modify",
      "old_id": "60e94438eadd4d3c82b7463750381b95c9ce2281",
      "old_mode": 33188,
      "old_path": "include/linux/dccp.h",
      "new_id": "61734e27abb7b6fc5e0c54d018c8969381a23c86",
      "new_mode": 33188,
      "new_path": "include/linux/dccp.h"
    },
    {
      "type": "modify",
      "old_id": "e0759d098b9a6716033ec850168ad7f7f1d0257d",
      "old_mode": 33188,
      "old_path": "net/dccp/dccp.h",
      "new_id": "0bc4c9a02e1964d3f6e0c5431b0a4d968115739a",
      "new_mode": 33188,
      "new_path": "net/dccp/dccp.h"
    },
    {
      "type": "modify",
      "old_id": "d1e100395efbadd110e7b17775ed01306f3c430c",
      "old_mode": 33188,
      "old_path": "net/dccp/diag.c",
      "new_id": "652a1b67f727dc6fce90eeff772e70d53c209c47",
      "new_mode": 33188,
      "new_path": "net/dccp/diag.c"
    },
    {
      "type": "modify",
      "old_id": "0672b7e1763ef31f15d142cd52073a6d25ba0870",
      "old_mode": 33188,
      "old_path": "net/dccp/input.c",
      "new_id": "5eb443f656c19ea115114379703c72bc31e79fb0",
      "new_mode": 33188,
      "new_path": "net/dccp/input.c"
    },
    {
      "type": "modify",
      "old_id": "02b14812464a236bb4e6dab4824254defe82e506",
      "old_mode": 33188,
      "old_path": "net/dccp/minisocks.c",
      "new_id": "6821ae33dd37a02600dc80b4ba7f8f8452c6185a",
      "new_mode": 33188,
      "new_path": "net/dccp/minisocks.c"
    },
    {
      "type": "modify",
      "old_id": "e9d674874b4e823a28c5c5a2579978d3cfddf16e",
      "old_mode": 33188,
      "old_path": "net/dccp/options.c",
      "new_id": "7b1165c21f5173a40c9511f934ccc5dcc02cc896",
      "new_mode": 33188,
      "new_path": "net/dccp/options.c"
    },
    {
      "type": "modify",
      "old_id": "0941f8fe1675bb5160a5bbaf91d3accc7f3347be",
      "old_mode": 33188,
      "old_path": "net/dccp/proto.c",
      "new_id": "d5c2bacb713c6055ffb9a3ca9cb8975ebb907a9a",
      "new_mode": 33188,
      "new_path": "net/dccp/proto.c"
    },
    {
      "type": "modify",
      "old_id": "587c12f915c1344d7a539703fb2485ec72ce0212",
      "old_mode": 33188,
      "old_path": "net/dccp/sysctl.c",
      "new_id": "018e210875e168141a2aca941ab11ca7daaca9ef",
      "new_mode": 33188,
      "new_path": "net/dccp/sysctl.c"
    }
  ]
}
