+static void afterpoll_monitor(struct polypath *st, struct pollfd *fd,
+ polypath_ppml_callback_type *callback)
+{
+ enum async_linebuf_result alr;
+ const char *emsg;
+
+ while ((alr=async_linebuf_read(fd,&st->lbuf,&emsg)) == async_linebuf_ok)
+ polypath_process_monitor_line(st,st->lbuf.base,callback);
+
+ if (alr==async_linebuf_nothing)
+ return;
+
+ subproc_problem(st,alr,emsg);
+}
+
+static void polypath_afterpoll_monitor(void *state, struct pollfd *fds,
+ int nfds)
+{
+ struct polypath *st=state;
+ if (nfds<1) return;
+ afterpoll_monitor(st,fds,polypath_record_ifaddr);
+}
+