)]}'
{
  "commit": "87375ab47cd0ba04124c6d3fd80db5c368f5dcb6",
  "tree": "c95f160e2b033b5f8d2fad58348400bab5f989f2",
  "parents": [
    "f5e229db9cdb27f83594712ca4bb98d9377eb6ed"
  ],
  "author": {
    "name": "Julian Anastasov",
    "email": "ja@ssi.bg",
    "time": "Wed Sep 14 21:08:51 2005 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Sep 14 21:08:51 2005 -0700"
  },
  "message": "[IPVS]: ip_vs_ftp breaks connections using persistence\n\nip_vs_ftp when loaded can create NAT connections with unknown client\nport for passive FTP. For such expectations we lookup with cport\u003d0 on\nincoming packet but it matches the format of the persistence templates\ncausing packets to other persistent virtual servers to be forwarded to\nreal server without creating connection. Later the reply packets are\ntreated as foreign and not SNAT-ed.\n\nThis patch changes the connection lookup for packets from clients:\n\n* introduce IP_VS_CONN_F_TEMPLATE connection flag to mark the\n  connection as template\n\n* create new connection lookup function just for templates -\n  ip_vs_ct_in_get\n\n* make sure ip_vs_conn_in_get hits only connections with\n  IP_VS_CONN_F_NO_CPORT flag set when s_port is 0. By this way\n  we avoid returning template when looking for cport\u003d0 (ftp)\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e426641c519f4e4fcf4dd70a9bda3090cd612037",
      "old_mode": 33188,
      "old_path": "include/net/ip_vs.h",
      "new_id": "06b4235aa0164c1844c7b48eb3457380e5984835",
      "new_mode": 33188,
      "new_path": "include/net/ip_vs.h"
    },
    {
      "type": "modify",
      "old_id": "5994521fddc52115d7d0b8af2dd0381f05f620b7",
      "old_mode": 33188,
      "old_path": "net/ipv4/ipvs/ip_vs_conn.c",
      "new_id": "f828fa2eb7dea154ff534e342fc75cdf8217b1ba",
      "new_mode": 33188,
      "new_path": "net/ipv4/ipvs/ip_vs_conn.c"
    },
    {
      "type": "modify",
      "old_id": "3ac7eeca04ac4ca4da81bdc1f6e75cce70316b79",
      "old_mode": 33188,
      "old_path": "net/ipv4/ipvs/ip_vs_core.c",
      "new_id": "981cc3244ef2724827e9c303a27d2a79a511cb4c",
      "new_mode": 33188,
      "new_path": "net/ipv4/ipvs/ip_vs_core.c"
    },
    {
      "type": "modify",
      "old_id": "574d1f509b46cef77c10171c9ffe26d7bcd7cff2",
      "old_mode": 33188,
      "old_path": "net/ipv4/ipvs/ip_vs_sync.c",
      "new_id": "2e5ced3d80622b77577826da486e721da6bed560",
      "new_mode": 33188,
      "new_path": "net/ipv4/ipvs/ip_vs_sync.c"
    }
  ]
}
