diff -r 27a1aee7e254 -r 60b2aad9d40b master/ethernet.c --- a/master/ethernet.c Thu Sep 28 08:31:33 2006 +0000 +++ b/master/ethernet.c Fri Oct 13 10:07:10 2006 +0000 @@ -362,7 +362,7 @@ void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */) { size_t rec_size, data_size; - uint8_t *data, frame_type, last_fragment, time_appended; + uint8_t *data, frame_type, last_fragment, time_appended, mbox_prot; uint8_t frame_number, fragment_offset, fragment_number; off_t offset; #if EOE_DEBUG_LEVEL > 1 @@ -376,7 +376,13 @@ } if (!(data = ec_slave_mbox_fetch(eoe->slave, &eoe->datagram, - 0x02, &rec_size))) { + &mbox_prot, &rec_size))) { + eoe->stats.rx_errors++; + eoe->state = ec_eoe_state_tx_start; + return; + } + + if (mbox_prot != 0x02) { // EoE eoe->stats.rx_errors++; eoe->state = ec_eoe_state_tx_start; return;