commit | 5e97a93bf0599037de37d45c33d4cdb902a5264e | [log] [tgz] |
---|---|---|
author | B. Scott Michel <scooter.phd@gmail.com> | Tue Sep 24 13:12:45 2024 -0700 |
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | Thu Sep 26 01:12:25 2024 +0200 |
tree | 4d252a6bbf0982180c68bcd899b64ca24accd7ca | |
parent | e61dbd459c8c06607b3a84694489427e8ec60f17 [diff] |
tcp_listen: Missing register_poll_fd Bug fix: tcpx_listen() needs to invoke the socket's register_poll_fd() callback so that platforms can add the socket to their collection of sockets-of-interest (primarily Windows, also platforms that use select() and not poll()). Same for udpx_listen(). Register the created socket! For Windows, host forwarding "now works gooder!" The socket is eventually unregistered via the two use cases in which tcpx_listen() is used: - slirp_add_hostfwd, slirp_add_hostxfwd: The corresponding "remove" functions (slirp_remove_hostfwd, slirp_remove_hostxfwd) invoke unregister_poll_fd(). - TCP emulation (tcp_emu() in tcp_subr.c): All calls to tcp_listen() set the SS_FACCEPTONCE flag, making the accept() a one-shot event. By carefully examining tcp_subr.c, lines 523-531, one sees that tcp_connect() unregisters the one-shot accept(). QED.
libslirp is a user-mode networking library used by virtual machines, containers or various tools.
A C compiler, meson and glib2 development libraries.
(see also .gitlab-ci.yml DEPS variable for the list of dependencies on Fedora)
You may build and install the shared library with meson:
meson build ninja -C build install
And configure QEMU with --enable-slirp=system to link against it.
(QEMU may build with the submodule static library using --enable-slirp=git)
Unfortunately, there are no automated tests available.
You may run QEMU -net user
linked with your development version.
Feel free to open issues on the project issues page.
You may clone the gitlab project and create a merge request.
Contributing with gitlab allows gitlab workflow, tracking issues, running CI etc.
Alternatively, you may send patches to slirp@lists.freedesktop.org mailing list.
We intend to use libtool's versioning for the shared libraries and use SemVer for project versions.
For the versions available, see the tags on this repository.
See the COPYRIGHT file for details.