+static int receive_status(int in)
+{
+ char line[1000];
+ int ret = 0;
+ int len = packet_read_line(in, line, sizeof(line));
+ if (len < 10 || memcmp(line, "unpack ", 7)) {
+ fprintf(stderr, "did not receive status back\n");
+ return -1;
+ }
+ if (memcmp(line, "unpack ok\n", 10)) {
+ fputs(line, stderr);
+ ret = -1;
+ }
+ while (1) {
+ len = packet_read_line(in, line, sizeof(line));
+ if (!len)
+ break;
+ if (len < 3 ||
+ (memcmp(line, "ok", 2) && memcmp(line, "ng", 2))) {
+ fprintf(stderr, "protocol error: %s\n", line);
+ ret = -1;
+ break;
+ }
+ if (!memcmp(line, "ok", 2))
+ continue;
+ fputs(line, stderr);
+ ret = -1;
+ }
+ return ret;
+}
+