diff --git a/core/net/mac/contikimac/contikimac.c b/core/net/mac/contikimac/contikimac.c index 3c655314a..60e3d2569 100644 --- a/core/net/mac/contikimac/contikimac.c +++ b/core/net/mac/contikimac/contikimac.c @@ -614,7 +614,12 @@ send_packet(mac_callback_t mac_callback, void *mac_callback_ptr, return MAC_TX_ERR_FATAL; } #endif - + packetbuf_compact(); + + if(!NETSTACK_LLSEC.on_frame_created()) { + return MAC_TX_ERR_FATAL; + } + /* Make sure that the packet is longer or equal to the shortest packet length. */ transmit_len = packetbuf_totlen(); @@ -628,9 +633,6 @@ send_packet(mac_callback_t mac_callback, void *mac_callback_ptr, transmit_len = SHORTEST_PACKET_SIZE; } - - packetbuf_compact(); - #ifdef NETSTACK_ENCRYPT NETSTACK_ENCRYPT(); #endif /* NETSTACK_ENCRYPT */ diff --git a/core/net/mac/nullrdc.c b/core/net/mac/nullrdc.c index 7e7be6004..36565607c 100644 --- a/core/net/mac/nullrdc.c +++ b/core/net/mac/nullrdc.c @@ -120,7 +120,7 @@ send_one_packet(mac_callback_t sent, void *ptr) packetbuf_set_attr(PACKETBUF_ATTR_MAC_ACK, 1); #endif /* NULLRDC_802154_AUTOACK || NULLRDC_802154_AUTOACK_HW */ - if(NETSTACK_FRAMER.create() < 0) { + if((NETSTACK_FRAMER.create() < 0) || !NETSTACK_LLSEC.on_frame_created()) { /* Failed to allocate space for headers */ PRINTF("nullrdc: send failed, too large header\n"); ret = MAC_TX_ERR_FATAL;