+ case MSG_ERROR_EXIT:
+ if (msg_bytes != 4)
+ goto invalid_msg;
+ data = perform_io(4, PIO_INPUT_AND_CONSUME);
+ val = IVAL(data, 0);
+ if (am_generator && protocol_version >= 31)
+ send_msg_int(MSG_ERROR_EXIT, val);
+ if (am_generator)
+ val = RERR_RCVR_ERROR; /* avoids duplicate errors */
+ exit_cleanup(val);