Dear Wolf-Bastian, if you have several patches for the same topic - please send them once in one patch-set, do not annoy other developers by updating their mailbox once per 15 minutes.
Alex 2013/3/13 Wolf-Bastian Pöttner <poett...@ibr.cs.tu-bs.de>: > This patch lets dgram_sendmsg determine the destination address > based on if the socket has been connect()ed before. If so, the > address passed to connect() is used. Otherwise, the address > passed to sendto() is used as destination. > > Signed-off-by: Wolf-Bastian Pöttner <poett...@ibr.cs.tu-bs.de> > --- > net/ieee802154/dgram.c | 11 ++++++++++- > 1 files changed, 10 insertions(+), 1 deletions(-) > > diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c > index 94df6b1..955c30b 100644 > --- a/net/ieee802154/dgram.c > +++ b/net/ieee802154/dgram.c > @@ -46,6 +46,7 @@ struct dgram_sock { > > unsigned int bound:1; > unsigned int want_ack:1; > + unsigned int connected:1; > }; > > static inline struct dgram_sock *dgram_sk(const struct sock *sk) > @@ -76,6 +77,7 @@ static int dgram_init(struct sock *sk) > ro->dst_addr.addr_type = IEEE802154_ADDR_LONG; > ro->dst_addr.pan_id = 0xffff; > ro->want_ack = 1; > + ro->connected = 0; > memset(&ro->dst_addr.hwaddr, 0xff, sizeof(ro->dst_addr.hwaddr)); > return 0; > } > @@ -181,6 +183,8 @@ static int dgram_connect(struct sock *sk, struct sockaddr > *uaddr, > goto out; > } > > + ro->connected = 1; > + > memcpy(&ro->dst_addr, &addr->addr, sizeof(struct ieee802154_addr)); > > out: > @@ -197,6 +201,8 @@ static int dgram_disconnect(struct sock *sk, int flags) > ro->dst_addr.addr_type = IEEE802154_ADDR_LONG; > memset(&ro->dst_addr.hwaddr, 0xff, sizeof(ro->dst_addr.hwaddr)); > > + ro->connected = 0; > + > release_sock(sk); > > return 0; > @@ -211,6 +217,9 @@ static int dgram_sendmsg(struct kiocb *iocb, struct sock > *sk, > struct dgram_sock *ro = dgram_sk(sk); > int hlen, tlen; > int err; > + struct sockaddr_ieee802154 *saddr; > + > + saddr = (struct sockaddr_ieee802154 *)msg->msg_name; > > if (msg->msg_flags & MSG_OOB) { > pr_debug("msg->msg_flags = 0x%x\n", msg->msg_flags); > @@ -253,7 +262,7 @@ static int dgram_sendmsg(struct kiocb *iocb, struct sock > *sk, > mac_cb(skb)->flags |= MAC_CB_FLAG_ACKREQ; > > mac_cb(skb)->seq = ieee802154_mlme_ops(dev)->get_dsn(dev); > - err = dev_hard_header(skb, dev, ETH_P_IEEE802154, &ro->dst_addr, > + err = dev_hard_header(skb, dev, ETH_P_IEEE802154, ro->connected ? > &ro->dst_addr : &saddr->addr, > ro->bound ? &ro->src_addr : NULL, size); > if (err < 0) > goto out_skb; > -- > 1.7.5.4 > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_mar > _______________________________________________ > Linux-zigbee-devel mailing list > Linux-zigbee-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel