diff --git a/repos/gems/src/server/tcp_terminal/main.cc b/repos/gems/src/server/tcp_terminal/main.cc index e4ef90b14c..c6700a01ba 100644 --- a/repos/gems/src/server/tcp_terminal/main.cc +++ b/repos/gems/src/server/tcp_terminal/main.cc @@ -159,7 +159,7 @@ class Open_socket : public Genode::List::Element socklen_t len = sizeof(addr); _sd = accept(_listen_sd, &addr, &len); - if (_sd > 0) + if (_sd != -1) Genode::printf("connection established\n"); /* @@ -209,6 +209,10 @@ class Open_socket : public Genode::List::Element if (_read_buf_bytes_read >= _read_buf_bytes_used) _read_buf_bytes_used = _read_buf_bytes_read = 0; + /* notify client if there are still bytes available for reading */ + if (_read_avail_sigh.valid() && !read_buffer_empty()) + Genode::Signal_transmitter(_read_avail_sigh).submit(); + return num_bytes; }