case T38_FIELD_HDLC_FCS_OK_SIG_END:
if (len > 0)
{
span_log(&s->logging, SPAN_LOG_WARNING, "There is data in a T38_FIELD_HDLC_FCS_OK_SIG_END!\n");
/* The sender has incorrectly included data in this message. It is unclear what we should do
with it, to maximise tolerance of buggy implementations. */
}
/* Don't deal with repeats of the same field type. Some T.38 implementations send multiple T38_FIELD_HDLC_FCS_OK_SIG_END
packets, when they have sent no data for the body of the frame. */
span_log(&s->logging, SPAN_LOG_WARNING, "PKT %d %d %d %d - %d %d\n", t->current_rx_data_type, data_type, t->current_rx_field_type, field_type, s->rx_len, s->missing_data);
if (t->current_rx_data_type != data_type
||
t->current_rx_field_type != field_type)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Type %s - CRC OK, sig end (%s)\n", (s->rx_len >= 3) ? t30_frametype(s->rx_buf[2]) : "???", (s->missing_data) ? "missing octets" : "clean");
t30_hdlc_accept(&(s->t30_state), !s->missing_data, s->rx_buf, s->rx_len);
t30_hdlc_accept(&(s->t30_state), TRUE, NULL, PUTBIT_CARRIER_DOWN);
}
s->rx_len = 0;
s->missing_data = FALSE;
s->timeout_rx_samples = 0;
break;