priv->config &= ~CFG_STATIC_ESSID; if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) { 
if ((priv->config & CFG_STATIC_ESSID) && !(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) { 
static int ipw_wx_set_essid(struct net_device *dev,			    struct iw_request_info *info,			    union iwreq_data *wrqu, char *extra){	struct ipw_priv *priv = ieee80211_priv(dev);	char *essid = "";	/* ANY */	int length = 0;	down(&priv->sem);	if (wrqu->essid.flags && wrqu->essid.length) {		length = wrqu->essid.length - 1;		essid = extra;	}	if (length == 0) {		IPW_DEBUG_WX("Setting ESSID to ANY\n");		priv->config &= ~CFG_STATIC_ESSID;		if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) {			IPW_DEBUG_ASSOC("Attempting to associate with new "					"parameters.\n");			ipw_associate(priv);		}		up(&priv->sem);		return 0;	}	length = min(length, IW_ESSID_MAX_SIZE);	priv->config |= CFG_STATIC_ESSID;	if (priv->essid_len == length && !memcmp(priv->essid, extra, length)) {		IPW_DEBUG_WX("ESSID set to current ESSID.\n");		up(&priv->sem);		return 0;	}	IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_essid(essid, length),		     length);	priv->essid_len = length;	memcpy(priv->essid, essid, priv->essid_len);	/* Network configuration changed -- force [re]association */	IPW_DEBUG_ASSOC("[re]association triggered due to ESSID change.\n");	if (!ipw_disassociate(priv))		ipw_associate(priv);	up(&priv->sem);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/afbf30a2b78cac38e6ddae10a73063943b4783ee/ipw2200.c/clean/drivers/net/wireless/ipw2200.c