)]}'
{
  "commit": "ddab05568eaa70fc92b2aae957136f188f724e9c",
  "tree": "895f53c4e418987c97aec350996d34e166dedfdc",
  "parents": [
    "6224877b2ca4be5de96270a8ae490fe2ba11b0e0"
  ],
  "author": {
    "name": "Gerrit Renker",
    "email": "gerrit@erg.abdn.ac.uk",
    "time": "Thu Sep 04 07:30:19 2008 +0200"
  },
  "committer": {
    "name": "Gerrit Renker",
    "email": "gerrit@erg.abdn.ac.uk",
    "time": "Thu Sep 04 07:45:39 2008 +0200"
  },
  "message": "dccp: Clean up slow-path input processing\n\nThis patch rearranges the order of statements of the slow-path input processing\n(i.e. any other state than OPEN), to resolve the following issues.\n\n 1. Dependencies: the order of statements now better matches RFC 4340, 8.5, i.e.\n    step 7 is before step 9 (previously 9 was before 7), and parsing options in\n    step 8 (which can consume resources) now comes after step 7.\n 2. Bug-fix: in state CLOSED, there should not be any sequence number checking\n    or option processing. This is why the test for CLOSED has been moved after\n    the test for LISTEN.\n 3. As before sequence number checks are omitted if in state LISTEN/REQUEST, due\n    to the note underneath the table in RFC 4340, 7.5.3.\n 4. Packets are now passed on to Ack Vector / CCID processing only after\n    - step 7  (receive unexpected packets), \n    - step 9  (receive Reset),\n    - step 13 (receive CloseReq),\n    - step 14 (receive Close)\n    and only if the state is PARTOPEN. This simplifies CCID processing:\n    - in LISTEN/CLOSED the CCIDs are non-existent;\n    - in RESPOND/REQUEST the CCIDs have not yet been negotiated;\n    - in CLOSEREQ and active-CLOSING the node has already closed this socket;\n    - in passive-CLOSING the client is waiting for its Reset.\n    In the last case, RFC 4340, 8.3 leaves it open to ignore further incoming\n    data, which is the approach taken here.\n\nAs a result of (3), CCID processing is now indeed confined to OPEN/PARTOPEN\nstates, i.e. congestion control is performed only on the flow of data packets. \n\nThis avoids pathological cases of doing congestion control on those messages\nwhich set up and terminate the connection. \n\nI have done a few checks to see if this creates a problem in other parts of\nthe code. This seems not to be the case; even if there were one, it would be\nbetter to fix it than to perform congestion control on Close/Request/Response\nmessages. Similarly for Ack Vectors (as they depend on the negotiated CCID).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9a108ce17fc7c1f86466f41bac366a69a92ef7a8",
      "old_mode": 33188,
      "old_path": "net/dccp/input.c",
      "new_id": "b1e38bf94456243dcd4b8f1db183231ac9ebb1ab",
      "new_mode": 33188,
      "new_path": "net/dccp/input.c"
    }
  ]
}
