)]}'
{
  "commit": "63fc33ceb0ccc08b3f62d7bfe56a33eb33ca9427",
  "tree": "6fb60af08616b2f4065cdd74b83f43c819f1853c",
  "parents": [
    "5628221caf88e2a052782b042e12da7cd34111b0"
  ],
  "author": {
    "name": "Daniel Drake",
    "email": "dsd@gentoo.org",
    "time": "Tue Jul 10 19:32:11 2007 +0200"
  },
  "committer": {
    "name": "John W. Linville",
    "email": "linville@tuxdriver.com",
    "time": "Thu Jul 12 16:07:26 2007 -0400"
  },
  "message": "[PATCH] mac80211: improved 802.11g CTS protection\n\nCurrently, CTS protection is partially implemented twice:\n 1. via prism2 ioctls, only used by hostapd\n 2. via STA beacon parsing, recorded in sta.use_protection but never used\n    (other than printed in debugfs)\n\nProtection control should be implemented on a per-subif basis. For example,\na single physical device may be running a soft AP on one channel, and a STA\non another. The AP interface should use protection based on what hostapd told\nit, and the STA interface should use protection based on beacon parsing.\nThese should operate independantly: one subif using protection should not\ninfluence the other.\n\nTo implement this, I moved the use_protection flag into ieee80211_sub_if_data\nand removed the device-global cts_protect_erp_frames flag.\n\nI also made the PRISM2_PARAM_CTS_PROTECT_ERP_FRAMES write operation only\navailable for AP interfaces, to avoid any possibility of the user messing with\nthe behaviour of a STA.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9e3964638bada1657877fa4d43958168a2ad40f5",
      "old_mode": 33188,
      "old_path": "net/mac80211/debugfs_netdev.c",
      "new_id": "a3e01d76d503746cc0913d37a38bfdf0e7cd0dae",
      "new_mode": 33188,
      "new_path": "net/mac80211/debugfs_netdev.c"
    },
    {
      "type": "modify",
      "old_id": "fe32a2d16053195882cb7a06909d0f1d4ab41ffc",
      "old_mode": 33188,
      "old_path": "net/mac80211/ieee80211.c",
      "new_id": "2ddf4ef4065e7713604f814616b7d50fa47fd907",
      "new_mode": 33188,
      "new_path": "net/mac80211/ieee80211.c"
    },
    {
      "type": "modify",
      "old_id": "99ff7c5e920482761b95e0419e65bbf1ed61047c",
      "old_mode": 33188,
      "old_path": "net/mac80211/ieee80211_i.h",
      "new_id": "055a2a9121859f5d83be69a64544b98b789669c3",
      "new_mode": 33188,
      "new_path": "net/mac80211/ieee80211_i.h"
    },
    {
      "type": "modify",
      "old_id": "9bc209b72d4139dacf0a2378a5878e9e6805d098",
      "old_mode": 33188,
      "old_path": "net/mac80211/ieee80211_ioctl.c",
      "new_id": "5918dd079e12c8442de53ef59ccd6fdfc9257bcd",
      "new_mode": 33188,
      "new_path": "net/mac80211/ieee80211_ioctl.c"
    },
    {
      "type": "modify",
      "old_id": "df6c410de16179f25e5b4999bfeeb31a2e814f94",
      "old_mode": 33188,
      "old_path": "net/mac80211/ieee80211_sta.c",
      "new_id": "ba2bf8f0a347414928a3b187fe518b14cb71962b",
      "new_mode": 33188,
      "new_path": "net/mac80211/ieee80211_sta.c"
    }
  ]
}
