On Friday, 4 October 2019 07:43:32 CEST Szymon Janc wrote: > From: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxxxx> > > --- > monitor/control.c | 37 +++++++++++++++++++++---------------- > 1 file changed, 21 insertions(+), 16 deletions(-) > > diff --git a/monitor/control.c b/monitor/control.c > index 39a413be1..4022e7644 100644 > --- a/monitor/control.c > +++ b/monitor/control.c > @@ -1300,23 +1300,8 @@ static bool tty_parse_header(uint8_t *hdr, uint8_t > len, struct timeval **tv, return true; > } > > -static void tty_callback(int fd, uint32_t events, void *user_data) > +static void process_data(struct control_data *data) > { > - struct control_data *data = user_data; > - ssize_t len; > - > - if (events & (EPOLLERR | EPOLLHUP)) { > - mainloop_remove_fd(data->fd); > - return; > - } > - > - len = read(data->fd, data->buf + data->offset, > - sizeof(data->buf) - data- >offset); > - if (len < 0) > - return; > - > - data->offset += len; > - > while (data->offset >= sizeof(struct tty_hdr)) { > struct tty_hdr *hdr = (struct tty_hdr *) data->buf; > uint16_t pktlen, opcode, data_len; > @@ -1358,6 +1343,26 @@ static void tty_callback(int fd, uint32_t events, > void *user_data) } > } > > +static void tty_callback(int fd, uint32_t events, void *user_data) > +{ > + struct control_data *data = user_data; > + ssize_t len; > + > + if (events & (EPOLLERR | EPOLLHUP)) { > + mainloop_remove_fd(data->fd); > + return; > + } > + > + len = read(data->fd, data->buf + data->offset, > + sizeof(data->buf) - data- >offset); > + if (len < 0) > + return; > + > + data->offset += len; > + > + process_data(data); > +} > + > int control_tty(const char *path, unsigned int speed) > { > struct control_data *data; Applied. -- pozdrawiam Szymon Janc