Skip to content
Snippets Groups Projects
Commit a5c9f959 authored by Martine Lenders's avatar Martine Lenders
Browse files

gnrc_ipv6: use gnrc_pktbuf_reverse_snips()

parent ac54a2d2
Branches
No related tags found
No related merge requests found
...@@ -839,8 +839,6 @@ static void _receive(gnrc_pktsnip_t *pkt) ...@@ -839,8 +839,6 @@ static void _receive(gnrc_pktsnip_t *pkt)
} }
/* TODO: check if receiving interface is router */ /* TODO: check if receiving interface is router */
else if (--(hdr->hl) > 0) { /* drop packets that *reach* Hop Limit 0 */ else if (--(hdr->hl) > 0) { /* drop packets that *reach* Hop Limit 0 */
gnrc_pktsnip_t *reversed_pkt = NULL, *ptr = pkt;
DEBUG("ipv6: forward packet to next hop\n"); DEBUG("ipv6: forward packet to next hop\n");
/* pkt might not be writable yet, if header was given above */ /* pkt might not be writable yet, if header was given above */
...@@ -856,23 +854,14 @@ static void _receive(gnrc_pktsnip_t *pkt) ...@@ -856,23 +854,14 @@ static void _receive(gnrc_pktsnip_t *pkt)
if (netif_hdr != NULL) { if (netif_hdr != NULL) {
gnrc_pktbuf_remove_snip(pkt, netif_hdr); gnrc_pktbuf_remove_snip(pkt, netif_hdr);
} }
pkt = gnrc_pktbuf_reverse_snips(pkt);
/* reverse packet snip list order */ if (pkt != NULL) {
while (ptr != NULL) { _send(pkt, false);
gnrc_pktsnip_t *next; }
ptr = gnrc_pktbuf_start_write(ptr); /* duplicate if not already done */ else {
if (ptr == NULL) { DEBUG("ipv6: unable to reverse pkt from receive order to send "
DEBUG("ipv6: unable to get write access to packet: dropping it\n"); "order; dropping it\n");
gnrc_pktbuf_release(reversed_pkt);
gnrc_pktbuf_release(pkt);
return;
}
next = ptr->next;
ptr->next = reversed_pkt;
reversed_pkt = ptr;
ptr = next;
} }
_send(reversed_pkt, false);
return; return;
} }
else { else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment