On Wed, Feb 06, 2019 at 11:29:03AM -0800, Josh Steadmon wrote: > > + packet_reader_init(&reader, -1, d->buf, d->len, > > + PACKET_READ_CHOMP_NEWLINE | > > + PACKET_READ_DIE_ON_ERR_PACKET); > > + if (packet_reader_read(&reader) != PACKET_READ_NORMAL) > > + die("invalid server response; expected service, got flush packet"); > > This can also trigger on an EOF or a delim packet, should we clarify the > error message? Maybe, though I'd prefer to do it as a patch on top; these lines were moved straight from the existing code. > > + if (skip_prefix(reader.line, "# service=", &p) && !strcmp(p, service)) { > > + /* > > + * The header can include additional metadata lines, up > > + * until a packet flush marker. Ignore these now, but > > + * in the future we might start to scan them. > > + */ > > + for (;;) { > > + packet_reader_read(&reader); > > + if (reader.pktlen <= 0) { > > + break; > > + } > > + } > > Could we make this loop cleaner as: > > while (packet_reader_read(&reader) != PACKET_READ_NORMAL) > ; Likewise here. -Peff