Commit Diff


commit - 130676c5756bf721a759241c354cbf4518c19a76
commit + 915d0dc77c554f96ec65d9007a6ab7fb1fee4758
blob - 6ef826b0e9f5c884304b6f5ae2c4a089c654bcc9
blob + 82515867e99f3e9690350237c4788b87d29cfda9
--- main.c
+++ main.c
@@ -538,6 +538,25 @@ extends_dispatch_agentx(int fd, short event, void *arg
 				free(cache);
 			}
 			break;
+		case IMSG_FAIL:
+			cmd->running = 0;
+			TAILQ_FOREACH_SAFE(cache, &output1cache,
+			    entry, tcache) {
+				if (cache->cmdid != cmd->id)
+					continue;
+				agentx_varbind_error(cache->vb);
+				TAILQ_REMOVE(&output1cache, cache, entry);
+				free(cache);
+			}
+			TAILQ_FOREACH_SAFE(cache, &output2cache,
+			    entry, tcache) {
+				if (cache->cmdid != cmd->id)
+					continue;
+				agentx_varbind_error(cache->vb);
+				TAILQ_REMOVE(&output2cache, cache, entry);
+				free(cache);
+			}
+			break;
 		default:
 			fatalx("%s: unexpected imsg: %d", __func__, r);
 		}