/* Dissect 802.11 with a variable-length link-layer header and with the FCS presence or absence indicated by the pseudo-header, if there is one.  */
static int dissect_ieee80211(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
/* Dissect 802.11 with a variable-length link-layer header and with the FCS presence or absence indicated by the pseudo-header, if there is one.  */
static int dissect_ieee80211(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
  struct ieee_802_11_phdr *phdr = (struct ieee_802_11_phdr *)data;
  struct ieee_802_11_phdr ourphdr;
  if (phdr == NULL) {
    memset(&ourphdr, 0, sizeof(ourphdr));
    ourphdr.fcs_len = -1;
    ourphdr.decrypted = FALSE;
    ourphdr.datapad = FALSE;
    ourphdr.phy = PHDR_802_11_PHY_UNKNOWN;
    phdr = &ourphdr;
  }
  return dissect_ieee80211_common(tvb, pinfo, tree, IEEE80211_COMMON_OPT_NORMAL_QOS, phdr);
}