static int prune_dcs(t30_state_t *s) { int i; /* Find the last octet that is really needed, set the extension bits, and trim the message length */ for (i = 18; i > 4; i--) { /* Strip the top bit */ s->dcs_frame[i] &= (DISBIT1 | DISBIT2 | DISBIT3 | DISBIT4 | DISBIT5 | DISBIT6 | DISBIT7); /* Check if there is some real message content here */ if (s->dcs_frame[i]) break; } s->dcs_len = i + 1; /* Fill in any required extension bits */ for (i-- ; i > 4; i--) s->dcs_frame[i] |= DISBIT8; #if 1 s->dcs_frame[0] = 0xFF; s->dcs_frame[1] = 0x13; s->dcs_frame[2] = 0x83; s->dcs_frame[3] = 0x00; s->dcs_frame[4] = 0xC6; s->dcs_frame[5] = 0x98; s->dcs_frame[6] = 0x00; s->dcs_len = 7; #endif t30_decode_dis_dtc_dcs(s, s->dcs_frame, s->dcs_len); return s->dcs_len; }