When send_insertion_packet() function handles a full-sized packet with INS_DISC_MD5 flag on, send the insertion packet will cause a "Message too long" error, since the the packet length is greater than MTU size.
if (flags & INS_DISC_MD5) {
u_char bytes[20] = {0x13,0x12,0xf9,0x89,0x5c,0xdd,0xa6,0x15,0x12,0x83,0x3e,0x93,0x11,0x22,0x33,0x44,0x55,0x66,0x01,0x01};
memcpy(vars->tcp_opt + vars->tcp_opt_len, bytes, 20);
vars->tcp_opt_len += 20;
}
payload_len may need to be fixed after the injection.