Skip to contentSkip to conversation

libertas: let get nick return what set nick has set

PATCH In review Holger Schurig 2 participants 2 messages Oct 9, 2007 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libertas: let get nick return what set nick has set

Make the get-nickname wireless extension actually work. Before this patch, I could do "iwconfig eth1 nick BLAH" but "iwconfig eth1" would have still showed "MRVL-USB8388" to me. Hey, and that was wrong anyway, I'm on a CF card, not on USB :-)

drivers/net/wireless/libertas/wext.c +7 -27
Index: libertas-2.6/drivers/net/wireless/libertas/wext.c
===================================================================
@@ -251,37 +251,16 @@ static int wlan_set_nick(struct net_devi
 static int wlan_get_nick(struct net_device *dev, struct iw_request_info *info,
 			 struct iw_point *dwrq, char *extra)
 {
-	const char *cp;
-	char comm[6] = { "COMM-" };
-	char mrvl[6] = { "MRVL-" };
-	int cnt;
+	wlan_private *priv = dev->priv;
+	wlan_adapter *adapter = priv->adapter;
 
 	lbs_deb_enter(LBS_DEB_WEXT);
 
-	/*
-	 * Nick Name is not used internally in this mode,
-	 * therefore return something useful instead. Jean II
-	 */
-
-	strcpy(extra, mrvl);
-
-	cp = strstr(libertas_driver_version, comm);
-	if (cp == libertas_driver_version)	//skip leading "COMM-"
-		cp = libertas_driver_version + strlen(comm);
-	else
-		cp = libertas_driver_version;
-
-	cnt = strlen(mrvl);
-	extra += cnt;
-	while (cnt < 16 && (*cp != '-')) {
-		*extra++ = toupper(*cp++);
-		cnt++;
-	}
+	dwrq->length = strlen(adapter->nodename);
+	memcpy(extra, adapter->nodename, dwrq->length);
+	extra[dwrq->length] = '\0';
 
-	/*
-	 * Push it out !
-	 */
-	dwrq->length = cnt;
+	dwrq->flags = 1;	/* active */
 
 	lbs_deb_leave(LBS_DEB_WEXT);
 	return 0;
@@ -311,6 +290,7 @@ static int mesh_get_nick(struct net_devi
 	lbs_deb_leave(LBS_DEB_WEXT);
 	return 0;
 }
+
 static int wlan_set_rts(struct net_device *dev, struct iw_request_info *info,
 			struct iw_param *vwrq, char *extra)
 {
Acked-by on v1 1/1
#1 lore raw
Quoted 6 lines · Holger Schurig

Make the get-nickname wireless extension actually work. Before this patch, I could do "iwconfig eth1 nick BLAH" but "iwconfig eth1" would have still showed "MRVL-USB8388" to me. Hey, and that was wrong anyway, I'm on a CF card, not on USB :-)

Quoted 57 lines

Index: libertas-2.6/drivers/net/wireless/libertas/wext.c
===================================================================

drivers/net/wireless/libertas/wext.c +7 -27
@@ -251,37 +251,16 @@ static int wlan_set_nick(struct net_devi
 static int wlan_get_nick(struct net_device *dev, struct iw_request_info *info,
 			 struct iw_point *dwrq, char *extra)
 {
-	const char *cp;
-	char comm[6] = { "COMM-" };
-	char mrvl[6] = { "MRVL-" };
-	int cnt;
+	wlan_private *priv = dev->priv;
+	wlan_adapter *adapter = priv->adapter;
 
 	lbs_deb_enter(LBS_DEB_WEXT);
 
-	/*
-	 * Nick Name is not used internally in this mode,
-	 * therefore return something useful instead. Jean II
-	 */
-
-	strcpy(extra, mrvl);
-
-	cp = strstr(libertas_driver_version, comm);
-	if (cp == libertas_driver_version)	//skip leading "COMM-"
-		cp = libertas_driver_version + strlen(comm);
-	else
-		cp = libertas_driver_version;
-
-	cnt = strlen(mrvl);
-	extra += cnt;
-	while (cnt < 16 && (*cp != '-')) {
-		*extra++ = toupper(*cp++);
-		cnt++;
-	}
+	dwrq->length = strlen(adapter->nodename);
+	memcpy(extra, adapter->nodename, dwrq->length);
+	extra[dwrq->length] = '\0';
 
-	/*
-	 * Push it out !
-	 */
-	dwrq->length = cnt;
+	dwrq->flags = 1;	/* active */
 
 	lbs_deb_leave(LBS_DEB_WEXT);
 	return 0;
@@ -311,6 +290,7 @@ static int mesh_get_nick(struct net_devi
 	lbs_deb_leave(LBS_DEB_WEXT);
 	return 0;
 }
+
 static int wlan_set_rts(struct net_device *dev, struct iw_request_info *info,
 			struct iw_param *vwrq, char *extra)
 {