lkml.org 
[lkml]   [2002]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
Subject[PATCH 2.5] : ir252_lap_unique_saddr.diff
From
ir252_lap_unique_saddr.diff :
---------------------------
o [CORRECT] Make sure LAP address is sane, which mean not NULL,
not BROADCAST and not already in use by another link.


diff -u -p linux/net/irda/irlap.d5.c linux/net/irda/irlap.c
--- linux/net/irda/irlap.d5.c Wed Aug 21 15:37:52 2002
+++ linux/net/irda/irlap.c Wed Aug 21 15:42:05 2002
@@ -139,7 +139,15 @@ struct irlap_cb *irlap_open(struct net_d
skb_queue_head_init(&self->wx_list);

/* My unique IrLAP device address! */
- get_random_bytes(&self->saddr, sizeof(self->saddr));
+ /* We don't want the broadcast address, neither the NULL address
+ * (most often used to signify "invalid"), and we don't want an
+ * address already in use (otherwise connect won't be able
+ * to select the proper link). - Jean II */
+ do {
+ get_random_bytes(&self->saddr, sizeof(self->saddr));
+ } while ((self->saddr == 0x0) || (self->saddr == BROADCAST) ||
+ (hashbin_find(irlap, self->saddr, NULL)) );
+ /* Copy to the driver */
memcpy(dev->dev_addr, &self->saddr, 4);

init_timer(&self->slot_timer);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:28    [W:0.024 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site