if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) 
if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY && ext->alg != IW_ENCODE_ALG_WEP) 
int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee,			       struct iw_request_info *info,			       union iwreq_data *wrqu, char *extra){	struct iw_point *encoding = &wrqu->encoding;	struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;	struct ieee80211_security *sec = &ieee->sec;	int idx, max_key_len;	max_key_len = encoding->length - sizeof(*ext);	if (max_key_len < 0)		return -EINVAL;	idx = encoding->flags & IW_ENCODE_INDEX;	if (idx) {		if (idx < 1 || idx > WEP_KEYS)			return -EINVAL;		idx--;	} else		idx = ieee->tx_keyidx;	if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY)		if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA)			return -EINVAL;	encoding->flags = idx + 1;	memset(ext, 0, sizeof(*ext));	if (!sec->enabled) {		ext->alg = IW_ENCODE_ALG_NONE;		ext->key_len = 0;		encoding->flags |= IW_ENCODE_DISABLED;	} else {		if (sec->encode_alg[idx] == SEC_ALG_WEP)			ext->alg = IW_ENCODE_ALG_WEP;		else if (sec->encode_alg[idx] == SEC_ALG_TKIP)			ext->alg = IW_ENCODE_ALG_TKIP;		else if (sec->encode_alg[idx] == SEC_ALG_CCMP)			ext->alg = IW_ENCODE_ALG_CCMP;		else			return -EINVAL;		ext->key_len = sec->key_sizes[idx];		memcpy(ext->key, sec->keys[idx], ext->key_len);		encoding->flags |= IW_ENCODE_ENABLED;		if (ext->key_len &&		    (ext->alg == IW_ENCODE_ALG_TKIP ||		     ext->alg == IW_ENCODE_ALG_CCMP))			ext->ext_flags |= IW_ENCODE_EXT_TX_SEQ_VALID;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e189277a3f1cbb0f1282e0f4b8fa8c91e004c286/ieee80211_wx.c/clean/net/ieee80211/ieee80211_wx.c