)]}'
{
  "commit": "190ecd27cd7294105e3b26ca71663c7d940acbbb",
  "tree": "0dfc3569862e260a7c35c7dee14332de4345eeba",
  "parents": [
    "cf356d69db0afef692cd640917bc70f708c27f14"
  ],
  "author": {
    "name": "Julian Anastasov",
    "email": "ja@ssi.bg",
    "time": "Sun Oct 17 16:24:37 2010 +0300"
  },
  "committer": {
    "name": "Simon Horman",
    "email": "horms@verge.net.au",
    "time": "Thu Oct 21 10:50:41 2010 +0200"
  },
  "message": "ipvs: do not schedule conns from real servers\n\n \tThis patch is needed to avoid scheduling of\npackets from local real server when we add ip_vs_in\nin LOCAL_OUT hook to support local client.\n\n \tCurrently, when ip_vs_in can not find existing\nconnection it tries to create new one by calling ip_vs_schedule.\n\n \tThe default indication from ip_vs_schedule was if\nconnection was scheduled to real server. If real server is\nnot available we try to use the bypass forwarding method\nor to send ICMP error. But in some cases we do not want to use\nthe bypass feature. So, add flag \u0027ignored\u0027 to indicate if\nthe scheduler ignores this packet.\n\n \tMake sure we do not create new connections from replies.\nWe can hit this problem for persistent services and local real\nserver when ip_vs_in is added to LOCAL_OUT hook to handle\nlocal clients.\n\n \tAlso, make sure ip_vs_schedule ignores SYN packets\nfor Active FTP DATA from local real server. The FTP DATA\nconnection should be created on SYN+ACK from client to assign\ncorrect connection daddr.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e4618470cee66e5308c4fc7e0facd8c3341df5c",
      "old_mode": 33188,
      "old_path": "include/net/ip_vs.h",
      "new_id": "9d5c1b96530440b69445e53d0d1a9f3d49074c2c",
      "new_mode": 33188,
      "new_path": "include/net/ip_vs.h"
    },
    {
      "type": "modify",
      "old_id": "222453029b9e90fc800fd574648c2855c15baaba",
      "old_mode": 33188,
      "old_path": "net/netfilter/ipvs/ip_vs_core.c",
      "new_id": "0090d6d25e95b0e4070acf16c7dee55d20dd04fa",
      "new_mode": 33188,
      "new_path": "net/netfilter/ipvs/ip_vs_core.c"
    },
    {
      "type": "modify",
      "old_id": "4c0855cb006ee93c721d53ff0b95cef5ec1853bf",
      "old_mode": 33188,
      "old_path": "net/netfilter/ipvs/ip_vs_proto_sctp.c",
      "new_id": "9ab5232ce019d77dea67d20066be8e5a48ece9c0",
      "new_mode": 33188,
      "new_path": "net/netfilter/ipvs/ip_vs_proto_sctp.c"
    },
    {
      "type": "modify",
      "old_id": "64dc2954cf78c725ecca08333bbf556ad9f7435f",
      "old_mode": 33188,
      "old_path": "net/netfilter/ipvs/ip_vs_proto_tcp.c",
      "new_id": "85d80a66b492920b4c31166ef00fae46672ef07a",
      "new_mode": 33188,
      "new_path": "net/netfilter/ipvs/ip_vs_proto_tcp.c"
    },
    {
      "type": "modify",
      "old_id": "9c558c40bfbb18dd8a4d82e3d9248ca63776c539",
      "old_mode": 33188,
      "old_path": "net/netfilter/ipvs/ip_vs_proto_udp.c",
      "new_id": "5d21f08155ed65ce1986b94a5ca7180f6cb2f1eb",
      "new_mode": 33188,
      "new_path": "net/netfilter/ipvs/ip_vs_proto_udp.c"
    }
  ]
}
