read_loop(fd, buf, len);
io_multiplex_write(MSG_DELETED, buf, len);
break;
+ case MSG_SUCCESS:
+ if (len != 4 || !am_generator) {
+ rprintf(FERROR, "invalid message %d:%d\n", tag, len);
+ exit_cleanup(RERR_STREAMIO);
+ }
+ read_loop(fd, buf, len);
+ io_multiplex_write(MSG_SUCCESS, buf, len);
+ break;
case MSG_INFO:
case MSG_ERROR:
case MSG_LOG:
log_delete(line, S_IFREG);
remaining = 0;
break;
+ case MSG_SUCCESS:
+ if (remaining != 4) {
+ rprintf(FERROR, "invalid multi-message %d:%ld\n",
+ tag, (long)remaining);
+ exit_cleanup(RERR_STREAMIO);
+ }
+ read_loop(fd, line, remaining);
+ successful_send(IVAL(line, 0));
+ remaining = 0;
+ break;
case MSG_INFO:
case MSG_ERROR:
if (remaining >= sizeof line) {